mcp-registry/dev.postlake/social · v1.1.0
Also listed as glama/crumblelake/postlake, glama/postlake/postlake
As of 2026-10-19 04:42 UTC, the Postlake Social MCP server is up (it requires sign-in) with a Glimind reliability score of 77/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks.
Post, schedule, reply and measure across X, LinkedIn, Instagram, TikTok, YouTube, Threads, Bluesky
Claude Code
claude mcp add --transport http postlake-social-mcp-server https://api.postlake.dev/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"postlake-social-mcp-server": {
"type": "http",
"url": "https://api.postlake.dev/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
34 of 34 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
11 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.
Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Requires authentication (Bearer); tool definitions could not be read anonymously.
If discovery should be public, allow initialize + tools/list without credentials and gate only tools/call. Directories and routers can then list your tools.
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. All of them as JSON: /v1/readiness/mcp-registry%2Fdev.postlake%2Fsocial/fixes
{
"name": "cancel_post",
"description": "Cancel a scheduled post so it never fires. Only works while it is still in 'scheduled' state. Once it has gone out, use delete_post to retract it from the networks instead. Cancelling is free and refunds nothing because nothing was spent.",
"inputSchema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The scheduled post id (post_…)."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": true
}
}{
"name": "create_api_key",
"description": "Create a new PostLake API key. Useful when you are setting up another agent or service that needs its own credentials rather than sharing yours. The key has full access to this account and is shown ONCE, in this response. It cannot be retrieved again, so pass it on or store it immediately. Give it a name that says what will use it, because the name is all anyone has later when deciding whether a key is still needed.",
"inputSchema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "What this key is for, e.g. 'nightly digest worker'. Shown in the dashboard."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false
}
}{
"name": "create_post",
"description": "Publish (or schedule) one post to one or more connected accounts. Call validate_post first: it is free and catches caption, media and option problems before anything is queued. TikTok photo posts need JPEG or WebP (PNG is rejected), at most 1080x1920, and a title via platformOptions.tiktok.title. Say WHERE to post the simple way, `profile` (a profile name) optionally narrowed with `platforms`, or the precise way, explicit `accounts` ids. Provide at least one. Returns a normalised result with per",
"inputSchema": {
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The post body (the master caption)."
},
"media": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional media ids (med_…) from a prior upload. Required by image/video-only platforms (Instagram, Pinterest, TikTok, YouTube)."
},
"thread": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional follow-on post bodies, published as posts 2..n in a thread. Check platform capabilities or validate first."
},
"profile": {
"type": "string",
"description": "A profile name (from list_profiles) posts to every account that profile owns. The simplest way to address accounts; combine with `platforms` to narrow it."
},
"accounts": {
"type": "array",
"items": {
"type": "string"
},
"description": "Connected account ids (acc_…) from list_social_accounts. An alternative (or addition) to `profile`."
},
"mediaAlt": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional alt text (accessibility) per media item, aligned by index to `media`. Used by platforms that support it (Bluesky, X); others ignore it."
},
"timezone": {
"type": "string",
"description": "Optional IANA timezone (e.g. Europe/London). Interprets a naive scheduledAt as wall time in that zone. Stored fire time is always UTC."
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional filter: keep only these networks from the resolved set. e.g. with profile \"my-brand\", platforms [\"bluesky\"] posts to just its Bluesky account."
},
"scheduledAt": {
"type": "string",
"description": "Optional ISO 8601 time to publish later. UTC with a trailing Z, or a naive local time together with `timezone`. Omit to publish now."
},
"firstComment": {
"type": "string",
"description": "Optional 'first comment' posted as a reply the moment the post goes live. Classic use: keep hashtags/links out of the main caption. Instagram, TikTok and Pinterest have no comment API we can use, so they publish the post WITHOUT it, so check `firstComment` in get_platform_capabilities, or dry-run with validate_post, before relying on it. Best-effort: a failed comment does not fail the post, and each target reports what happened in its own `firstComment` field."
},
"textOverrides": {
"type": "object",
"description": "Optional per-platform caption overrides, keyed by platform. e.g. { \"x\": \"short punchy version\", \"linkedin\": \"the long professional version\" }. Any platform without an override uses `text`. A blank override falls back to `text`.",
"additionalProperties": {
"type": "string"
}
},
"idempotencyKey": {
"type": "string",
"description": "Optional. Reuse the same key to safely retry without double-posting."
},
"mediaOverrides": {
"type": "object",
"description": "Optional per-platform media, keyed by platform, e.g. { \"tiktok\": [\"med_vertical\"], \"instagram\": [\"med_square\"] }. A platform with an override publishes ITS media instead of `media`; others fall back to `media`.",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"platformOptions": {
"type": "object",
"description": "Optional per-platform extras, namespaced by platform. e.g. { \"pinterest\": { \"boardId\": \"...\" }, \"youtube\": { \"privacyStatus\": \"unlisted\" } }.",
"additionalProperties": true
},
"mediaAltOverrides": {
"type": "object",
"description": "Optional alt text for the override media, keyed by platform, aligned to mediaOverrides[platform].",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"firstCommentOverrides": {
"type": "object",
"description": "Optional per-platform first-comment overrides, keyed by platform (mirrors textOverrides). e.g. { \"instagram\": \"#tags here\" }.",
"additionalProperties": {
"type": "string"
}
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/dev.postlake/social"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/dev.postlake/social"}) over MCP.
create_post ~1,179 tokensvalidate_post ~760 tokensengage ~292 tokensupload_media ~284 tokensconnect_account ~280 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fdev.postlake%2Fsocial?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fdev.postlake%2Fsocial?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fdev.postlake%2Fsocial.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fdev.postlake%2Fsocial.svg :target: https://glimind.com/server/mcp-registry%2Fdev.postlake%2Fsocial?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:23f65498c70c0203…, first seen 2026-10-17, included at leaf 12645 of 25,014. Version history · verify what your client received.
Compare: most reliable productivity servers · most reliable other servers · most reliable security servers · most reliable communication servers · most reliable analytics servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-19 04:42 UTC, the Postlake Social MCP server is up (it requires sign-in) with a Glimind reliability score of 77/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks.
Postlake Social MCP server advertises 34 tools, including cancel_post, connect_account, create_api_key, create_post, create_profile.
Point your MCP client at this streamable-http endpoint: https://api.postlake.dev/mcp
Glimind scanned all 34 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.