Skip to main content

Overview

Polpo exposes a remote Model Context Protocol server at https://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. The unscoped URL targets Development for environment projects. Use https://api.polpo.sh/environments/production/v1/mcp when the client must be fixed to Production.

Transport

Streamable HTTP. A single endpoint handles both directions:
  • POST /v1/mcp — client → server JSON-RPC requests
  • GET /v1/mcp — server → client SSE stream for progress and notifications
  • GET|POST /environments/{development|production}/v1/mcp — fixed environment endpoint
No stdio, no WebSocket. Any client that supports Streamable HTTP MCP transport works.

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

Edit your Claude Desktop config:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop. A browser window opens for OAuth — approve, and polpo_* tools appear in the tool picker.

Available tools

Databases

The following tools manage Databases through the same Data API as the dashboard and SDK. They are also available to the in-product builder. Every call takes projectId (UUID) and optional environment (development, the default, or production). resource is the logical database UUID or name. The project must have Data enabled. MCP uses the authenticated Polpo account. Existing OAuth read/write scopes apply: read-only clients can discover and call the read-only tools, including SQL query; mutations require write access. Account membership and roles still apply. Members can read/write records, while owner/admin accounts manage schemas, migration history, backend state and agent grants. For example, call polpo_databases_query with:
Use mutate for SQL record writes and migrate for schema changes. Retain the same idempotency key or migration ID and exact input when retrying an uncertain result. These tools use account permissions; the runtime agents’ database_* tools and custom tools’ ctx.data continue to use independent agent grants.

Resources

Polpo exposes resource URIs for deep context without tool calls:
Returns the full project config — agents, skills, tools, environment, deploy status — as a single JSON document. Useful for letting an MCP client load a project into context in one shot.

Prompts

Reusable prompt templates are exposed under the prompts/ 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.