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.
Endpoint
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
Sixteen 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 |
| Channels | postmelive_list_channels, postmelive_get_channel, postmelive_get_channel_insights |
| Media | postmelive_list_media, postmelive_get_media, postmelive_upload_media |
| Posts | postmelive_list_posts, postmelive_get_post, postmelive_get_post_insights, postmelive_create_post, postmelive_create_draft, postmelive_delete_post, postmelive_delete_draft |
postmelive_upload_media takes a public URL or a presigned key. It's the only tool that doesn't map to a single endpoint, because the raw three-step upload flow isn't usable from a tool call. Start a session with postmelive_whoami to discover the key's workspace, plan, and scopes.