Skip to main content
Your endpoint is an HTTP JSON-RPC MCP server. Any client that speaks MCP over HTTP can connect. Before you start, check the two preconditions from the overview: your plan is Growth or above, and the agent channel is enabled with the kill switch off. Confirm with a GET:
A discovery card with a tools count means you are ready. An {"error": "not_available"} means one of the preconditions is unmet.

Claude

Add the server in Claude’s connector settings, pointing at your endpoint URL:
or the friendly form:
For a per-user grant, use the /u/{contactId} URL and supply the pv_grant_… token as a bearer credential.

Cursor

In ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
With a per-user grant:
A grant token in a config file is a credential in a file. Do not commit .cursor/mcp.json with a real token in it.

Any MCP client

If your client needs the details spelled out:

Verifying by hand

Troubleshooting

The endpoint is working, but nothing is projected. Every tool must come from a capability that is in the current production map, verified, marked agent-accessible, and not disabled. Check those four in the dashboard.A workspace with no production map version at all projects nothing — run the baseline capture first.
One of: the workspace id is wrong; the plan is below Growth; the agent channel is switched off; the kill switch is on. The message is deliberately the same for all of them, so work through them in that order.
Per-user endpoint only. The token is missing, malformed, revoked, expired, or bound to a different contact or workspace than the URL. Check the Authorization: Bearer header is actually being sent — some clients drop custom headers silently.
You are above your plan’s ceiling. Honour the retry-after header. If a client is polling tools/list, stop — the list does not push changes, and re-listing on a timer is what usually causes this.
It did not. tools/call returns guidance only. If an assistant reports having performed a write through this server, that is the assistant over-claiming — nothing on the Peeve side executed. See the overview.