Developers

MCP server

Connect an AI agent to postme.live over the Model Context Protocol. The server mirrors the REST API one-to-one and authenticates with the same API key, no OAuth.

Already have an account? Issue an API key and follow the connect-your-agent quick start in Settings โ†’ Developers.

Open Settings โ†’ Developers

Endpoint

A remote, Streamable-HTTP MCP server. Point any MCP client at it and pass your API key as a bearer token.

text
https://postme.live/api/mcp

Authorization: Bearer pml_live_<lookupId>_<secret>

Every tool maps to an endpoint documented in the rest of this reference, so scopes, plan rate limits, idempotency, and audit logging behave identically. Mint a key at Settings โ†’ Developers.

Connect a client

Store the key in an environment variable and reference it. Most clients support ${env:VAR} interpolation, so the key never sits in plaintext in a config file.

Claude Code

bash
claude mcp add --transport http postme https://postme.live/api/mcp \
  --header "Authorization: Bearer $POSTME_API_KEY"

Cursor: ~/.cursor/mcp.json

json
{
  "mcpServers": {
    "postme": {
      "url": "https://postme.live/api/mcp",
      "headers": { "Authorization": "Bearer ${env:POSTME_API_KEY}" }
    }
  }
}

VS Code: .vscode/mcp.json

json
{
  "servers": {
    "postme": {
      "type": "http",
      "url": "https://postme.live/api/mcp",
      "headers": { "Authorization": "Bearer ${env:POSTME_API_KEY}" }
    }
  }
}

Windsurf and other clients that accept a remote MCP URL with custom headers work the same way: set serverUrl and an Authorization header.

Client support

Clients that let you set a bearer header on a remote server work today: Claude Code, Cursor, VS Code, and Windsurf.

ChatGPT and the Claude Desktop / claude.ai connector UI currently require OAuth for remote servers and cannot attach a static key, so they can't connect to this server yet. We'll add OAuth and a local (stdio) package if there's demand.

Tools

Twenty-two tools, one per API operation. A tool returns the same JSON the corresponding endpoint does, and a failure surfaces the API's structured error (e.g. a missing scope is the same 403 you'd get over REST).

AreaTools
Identitypostmelive_whoami
Workspacespostmelive_list_workspaces, postmelive_get_workspace
Brandpostmelive_get_brand_kit
Captionspostmelive_tailor_captions
Channelspostmelive_list_channels, postmelive_get_channel, postmelive_get_channel_insights
Mediapostmelive_list_media, postmelive_get_media, postmelive_create_media_upload, postmelive_upload_media
Postspostmelive_list_posts, postmelive_get_post, postmelive_get_post_insights, postmelive_create_post, postmelive_update_post, postmelive_delete_post
Suggested postspostmelive_list_suggested_posts, postmelive_approve_suggested_post, postmelive_create_video_card, postmelive_get_generation

Uploading a local file takes three tool calls: postmelive_create_media_upload mints a presigned PUT URL, your agent sends the bytes to that URL with any HTTP client, then postmelive_upload_media registers the object by its key. A file that's already at a public HTTPS URL skips straight to postmelive_upload_media with a url โ€” the server fetches it. The bytes never travel through the tool call itself.

Start a session with postmelive_whoami to discover the key's workspace, plan, and scopes.

MCP server: Public API