For agents

letmepost speaks MCP natively.

One install line. Twenty-one MCP tools. Your agent publishes to eight social platforms (text, image, video, scheduled, replied, quoted) without you shipping a per-platform SDK. OAuth 2.1 with Dynamic Client Registration, so the agent registers itself.

Your agentClaudeChatGPTCursorZed
Twitter / X
LinkedIn
Bluesky
Instagram
Facebook Pages
Threads
Pinterest
TikTok
~/.config/mcp.json
{
  "mcpServers": {
    "letmepost": {
      "command": "npx",
      "args":    ["@letmepost/mcp@latest"],
      "env":     { "LMP_API_KEY": "lmp_live_…" }
    }
  }
}
ClaudeCursorClaude Codeopencodeany MCP client

Two ways in

Hosted, or in your own process.

Hosted server

api.letmepost.dev/mcp. Streamable HTTP, stateless, OAuth 2.1 with dynamic client registration. Nothing to run: point your client at the URL and authenticate.

streamable http · oauth 2.1 + dcr

stdio binary

npx @letmepost/mcp@latest. Runs in-process next to your agent for local-first or air-gapped setups. Same 21 tools, same auth as the HTTP API.

npm · stdio transport

The tool surface

Twenty-one tools, generated from OpenAPI.

The MCP surface is generated from the same OpenAPI spec as the SDKs at startup, so it never drifts from the HTTP API. A representative slice:

posts.create
Publish or schedule across one or many platforms
posts.validate
Run preflight without sending
posts.get
Fetch a post and its per-target outcomes
posts.reschedule
Move a queued post's scheduledAt
posts.cancel
Cancel before the worker picks it up
media.upload
Upload bytes, get a reusable mediaId
accounts.connect
Start an OAuth connect flow for a platform
accounts.list
List connected accounts and their pinned versions
webhooks.create
Register an HMAC-signed endpoint
platforms.status
Live / pending state per platform
quota.get
Current usage against the org's cap
versions.list
Pinned upstream API versions + upcoming sunsets

Prefer a shell?

There's a CLI too.

Same auth, same surface, scriptable in CI.

terminal
npm i -g @letmepost/cli
lmp posts create --target bluesky --target x \
  --text "Shipped multi-target publishing today."
# → req_01HXY… · bluesky published · x published

Fine print, agents

Questions an agent-builder would ask.

What does my agent need to know about MCP?

Nothing letmepost-specific. If your client speaks MCP, it can talk to us. Add the install line, restart the client, and the tools appear in the model's tool surface automatically.

API key vs OAuth, which should my agent use?

API key for local development and CI. OAuth 2.1 + DCR for production agents that should not embed a long-lived shared secret. Both work over the same MCP endpoints.

What happens if my agent retries a posts.create call?

If the same idempotency key was used, the cached response comes back (within 24h). No double-post. If a different idempotency key was used, you get an idempotency_conflict response (HTTP 409).

Can my agent self-host the MCP server?

Yes. The MCP server is part of the open-source Docker image. docker compose up runs it locally on port 4001. Same tool surface, your platform credentials.

What about audit logs?

Every tool call is logged with the agent's client_id (for OAuth) or last-4 of the API key. Visible in the dashboard. 30-day retention on Pro, 180 on Business.

Where do I report bugs in the MCP server?

Open an issue on the repo and tag it mcp. We respond within 24h on weekdays during alpha.

Give your agent a publishing primitive.

Free during alpha. No credit card. Wire up the MCP server and your agent posts everywhere in one tool call.