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 โ DevelopersEndpoint
A remote, Streamable-HTTP MCP server. Point any MCP client at it and pass your API key as a bearer token.
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
claude mcp add --transport http postme https://postme.live/api/mcp \
--header "Authorization: Bearer $POSTME_API_KEY"Cursor: ~/.cursor/mcp.json
{
"mcpServers": {
"postme": {
"url": "https://postme.live/api/mcp",
"headers": { "Authorization": "Bearer ${env:POSTME_API_KEY}" }
}
}
}VS Code: .vscode/mcp.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).
| Area | Tools |
|---|---|
| Identity | postmelive_whoami |
| Workspaces | postmelive_list_workspaces, postmelive_get_workspace |
| Brand | postmelive_get_brand_kit |
| Captions | postmelive_tailor_captions |
| Channels | postmelive_list_channels, postmelive_get_channel, postmelive_get_channel_insights |
| Media | postmelive_list_media, postmelive_get_media, postmelive_create_media_upload, postmelive_upload_media |
| Posts | postmelive_list_posts, postmelive_get_post, postmelive_get_post_insights, postmelive_create_post, postmelive_update_post, postmelive_delete_post |
| Suggested posts | postmelive_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.