Skip to main content

Endpoint

Each MCP session runs in its own Cloudflare Durable Object.

Authentication

LePosta is its own OAuth 2.1 authorization server and uses GitHub only to identify the person. An unauthenticated request to /mcp answers 401 with a WWW-Authenticate header pointing to the resource metadata, which is how MCP clients discover where to sign in. The flow: the client opens /authorize, LePosta shows a consent page with the client’s name and redirect host, the person approves and signs in to GitHub (scope read:user), LePosta checks the allowlist and issues an authorization code to the client. LePosta never stores the GitHub token and revokes it right after reading the profile. On every request, LePosta checks again that the GitHub account is on the allowlist. A removed account gets 403 access_denied immediately, and its grant is revoked at the next token refresh.

Server instructions

Sent in the initialize result as instructions:
Some clients don’t pass instructions to the model, so each tool description repeats the rules that apply to it.

Tools

No tool is destructive (destructiveHint: false): there is no delete.

Output format

Tools return plain text for the model. Postas written by someone else are wrapped in untrusted blocks; see Trust and safety. Errors are returned as tool results with isError: true and a message that tells the model what to do differently; see Errors.