API reference · MCP
MCP Endpoint
POST /v1/mcp
Model Context Protocol JSON-RPC endpoint for API-key clients. The same tool registry as the OAuth /mcp endpoint covers publishing, scheduling, validation, media, notifications, comments, direct messages, engagement, profile and channel management, and analytics. See https://docs.postlake.dev/mcp for the full toolset and authentication options.
Request
Authenticate with a bearer API key. Agents calling over MCP authorise with OAuth instead and never handle the key.
curl -X POST https://api.postlake.dev/v1/mcp \
-H "Authorization: Bearer $POSTLAKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"…","method":"…","params":"…","id":"…"}'Body
| Field | Type | Required | What it is |
|---|---|---|---|
jsonrpc | string | Yes | |
method | string | Yes | |
params | object | No | |
id | string or number or null | No |
Response
Success (200).
| Field | Type | Required | What it is |
|---|---|---|---|
jsonrpc | string | Yes | |
result | object | No | |
error | object | No | |
error.code | integer | Yes | |
error.message | string | Yes | |
error.data | object | No | |
id | string or number or null | No |
Example
{
"jsonrpc": "…",
"result": {},
"error": {
"code": 0,
"message": "…",
"data": {}
},
"id": "…"
}Limits
Write operations are limited per account, and every response carries X-RateLimit-Remaining and X-RateLimit-Reset. A 429 includes Retry-After. Send an Idempotency-Key so a retry after a timeout cannot duplicate the work.
Calling this from an agent
This operation is part of the REST surface. Agents working over the hosted MCP server reach the same product through tools instead, and authorise with OAuth so your API key is never pasted into a chat. See the MCP server.
Errors
Every failure uses one shape: a stable type, a granular code, the field at fault in param, and a plain-language fix. An agent can act on it without a person reading the message. See Errors and retries.
Idempotency-Key and a call that already succeeded returns its original result rather than repeating it.Common questions
Is it safe to retry this call?
Yes. Send the same Idempotency-Key and a call that already succeeded returns its original result instead of repeating the work. That is what makes it safe to hand to an agent that retries on its own.
What happens when it fails?
You get one error shape: a stable type, a granular code you can branch on, the offending field in param, and a fix written so an agent can correct itself rather than stop. Full list on Errors and retries.