MCP server
The @pocketping/mcp server connects PocketPing to any
Model Context Protocol client — Claude Desktop,
Cursor, and a growing list of AI tools — so your assistant can triage your inbox and
actually reply to visitors.
Unlike read-only support integrations, a PocketPing reply sent through the MCP fans out to the chat widget and every connected bridge (Telegram/Discord/Slack) — your assistant closes the loop, it doesn't just summarize.
Setup
First, create an API key: dashboard → Settings → API keys → Create key. Copy it (it's shown once).
Hosted (recommended)
The fastest path — no install. Add a custom connector pointing at the hosted server and authenticate with your key as a Bearer token.
- Connector URL:
https://app.pocketping.io/api/mcp - Auth:
Authorization: Bearer ppk_…
For config-file clients (Claude Desktop, Cursor):
{
"mcpServers": {
"pocketping": {
"url": "https://app.pocketping.io/api/mcp",
"headers": { "Authorization": "Bearer ppk_your_key_here" }
}
}
}
The endpoint speaks Streamable HTTP (the current MCP transport; legacy SSE is disabled) and authenticates with your API key as a Bearer token — so it works in any client that lets you set a header or token: Cursor, Claude Desktop, the Claude API connector, ChatGPT, or the local option below. (Claude's web "Add connector" UI expects an OAuth flow rather than a Bearer header, so use one of those clients there.)
Local (npx)
Prefer to run it on your machine, or self-hosting PocketPing? Use the
@pocketping/mcp package over stdio:
{
"mcpServers": {
"pocketping": {
"command": "npx",
"args": ["-y", "@pocketping/mcp"],
"env": {
"POCKETPING_API_KEY": "ppk_your_key_here",
"POCKETPING_API_URL": "https://app.pocketping.io"
}
}
}
}
Self-hosting? Point POCKETPING_API_URL at your own instance.
Tools
| Tool | Read/write | What it does |
|---|---|---|
list_projects | read | List your projects |
list_sessions | read | List conversations — filter by projectId, status, unanswered, or a search q |
get_conversation | read | Full transcript + visitor details for one session |
get_stats | read | Mini support stats — conversations, response rate, median first reply, CSAT% (projectId?, period 7d/30d) |
send_reply | write | Send a real reply to a visitor (widget + all bridges) |
send_reply is the only write tool and is marked non-read-only, so well-behaved clients
ask you to confirm before it sends.
Prompts
| Prompt | What it does |
|---|---|
triage_unanswered | Summarize chats awaiting a reply and propose drafts |
draft_reply | Draft (but not send) a reply for a specific conversation |
Example
You: Summarize my unanswered PocketPing chats and draft a reply to each.
The assistant calls
list_sessions(unanswered=true), thenget_conversationon each, summarizes, and proposes drafts. You approve one, and it callssend_reply— the visitor sees it in the widget, and it lands in your Telegram/Slack thread too.
Security
- Keys are organization-scoped, hashed at rest, and revocable at any time from the dashboard (Settings → API keys).
- The server talks to the authenticated
/api/v1management API over HTTPS. - Rate-limited to 600 requests/minute per key.
Behind the scenes
Both modes expose the same tools. The hosted endpoint (/api/mcp) runs in-process; the
npx package is a thin stdio wrapper over the same /api/v1 management API. So
anything the MCP can do, your own scripts and agents can do too with the same API key.