Overview
Polpo exposes a remote Model Context Protocol server athttps://api.polpo.sh/v1/mcp. It’s OAuth 2.0 protected and lets any MCP client — Claude Desktop, Cursor, MCP Inspector, custom agents — list projects, run tasks, manage agents, and call chat completions against your Polpo workspace. Point a client at the URL, complete the OAuth flow, and your agents become callable tools.
Transport
Streamable HTTP. A single endpoint handles both directions:POST /v1/mcp— client → server JSON-RPC requestsGET /v1/mcp— server → client SSE stream for progress and notifications
Authentication
OAuth 2.0 with Dynamic Client Registration (RFC 7591). Clients auto-register on first connect — there is nothing to pre-provision.Standard MCP clients (Claude Desktop, Cursor, Inspector) discover both endpoints automatically. You’ll see a browser window pop up once to authorize; the client stores the token locally and refreshes it silently.
Client setup
- Claude Desktop
- Cursor
- MCP Inspector
Edit your Claude Desktop config:Restart Claude Desktop. A browser window opens for OAuth — approve, and
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
polpo_* tools appear in the tool picker.Available tools
Resources
Polpo exposes resource URIs for deep context without tool calls:Prompts
Reusable prompt templates are exposed under theprompts/ namespace:
polpo_setup_project({ goal })— guides the creation of a new Polpo project end-to-end. Takes a free-form goal (e.g. “customer support agent with Zendesk access”) and walks through project creation, agent definition, tool selection, and deploy.
Troubleshooting
401 Unauthorized — OAuth token expired. Re-authorize from your client (Claude Desktop: toggle the server off/on; Cursor: re-open the MCP config).
403 Forbidden — Token is valid but missing scope for the resource. Check the org/project you’re targeting matches the authorized session (
polpo_whoami, polpo_orgs_current).Project 404 — The project ID doesn’t exist in the current org. Call
polpo_projects_list first to get a valid ID.Tool call timeout —
polpo_tasks_run and polpo_missions_run start asynchronous work. Poll polpo_tasks_get until a task is done or failed, or polpo_missions_get for mission status.