Skip to main content
A self-hosted PostQueen serves MCP from its own backend, with no extra service to run. AI agents connect to it the same way they connect to PostQueen Cloud, with your own address in place of api.postqueen.ai.

Your addresses

The backend’s address is NEXT_PUBLIC_BACKEND_URL, which on a standard install is your domain plus /api: Connections in your own install builds the key address from NEXT_PUBLIC_BACKEND_URL and shows it on every agent card with the key filled in. Each agent’s page under AI agents says where the address goes.
Where the API key is: in the app, open Connections > API Keys. Only a workspace Admin or Super Admin can reveal or rotate it; other members see it masked. A workspace has one key, and each agent card on Connections shows your MCP address with the key already filled in.
Clients that only speak the older SSE transport can use https://postqueen.example.com/api/sse/YOUR_API_KEY. Prefer the addresses above: an SSE connection stays open, and proxies with short idle timeouts cut it.

What the proxy needs

Nothing beyond what the web app needs. MCP requests are ordinary POST requests that go to the backend under /api/, and each answer is a single JSON response, not a stream, so buffering settings do not matter. Two things to keep:
  • The proxy passes the Authorization header through, which every proxy on these pages does by default.
  • The request body limit allows uploads: agents can attach media, and PostQueen accepts files up to 1 GB.

Check it from outside

From your own computer, not the server:
Errors come back as plain text, not JSON, so some agents show only a generic server error. Read the raw response before changing settings. Both addresses also answer a browser’s OPTIONS preflight with 200 before any key is checked, so an agent that reports it connected has not yet proved the key works: the first tool call does.

The sign-in address

Agents that sign in to MCP, instead of taking the key, use /mcp-oauth-dynamic. They register themselves, open PostQueen for a workspace Admin or Super Admin to approve, and the access lasts until it is revoked under Connections > Approved Apps. PostQueen has not tested this sign-in end to end yet. Signing in needs discovery to work: the agent looks for the authorization server’s metadata at the root of the backend’s host. With the backend under /api, that lookup reaches the web app and fails. So:
1

Give the backend a host of its own

For example api.postqueen.example.com, routed to the backend at its root. Split deployments has the proxy configuration.
2

Advertise that host

Recreate the container. The discovery documents then name that host.
3

Give agents the sign-in address on that host

https://api.postqueen.example.com/mcp-oauth-dynamic, with no slash at the end. An agent checks that the address it connected to matches the one the discovery names.

Settings

MCP works with none of these set. MCP_URL is passed to the web app but not used. Configuration reference has every variable.
Last modified on September 23, 2026