Duvo
Hosted MCP server for Duvo — start runs, inspect approvals, and expose grocery/retail execution tools to compatible agents.
Documentation
Connect to the Duvo MCP server
Connect Claude, Cursor, or ChatGPT to the Duvo MCP server. Every Public API endpoint becomes an LLM-callable tool.
Connecting an MCP host to the Duvo MCP server is the main way teams use MCP with Duvo — it's the conversational counterpart to the Duvo CLI.
Duvo exposes a hosted MCP server at https://api.duvo.ai/v2/mcp. Connect to it from any MCP-compatible host — Claude, Cursor, ChatGPT connectors, your own client — and every Duvo Public API endpoint becomes a tool the host can call.
[!TIP]
Using Claude? Duvo is listed in Claude's connector directory, so you don't need the server URL. Open Customize → Connectors, select the Discover tab, search for Duvo, and click Connect. See Setup by host.
Use this to:
- Drive Duvo Agents from an AI assistant chat ("Start the invoice processor on yesterday's batch and tell me when it's done.")
- Inspect Runs, Cases, and Files conversationally
- Build hybrid workflows where one assistant orchestrates Duvo Agents alongside other tools
What you can do
Every endpoint registered in the Public API is auto-exposed as an MCP tool. That includes:
- Agents — list, get, create, update
- Runs — start, get status, send messages, respond to human-in-the-loop requests, stop
- Connections — list and inspect your authorized accounts
- Files — list, read, write, rename, delete
- Cases and Queues — inspect, delegate, label
- Clarity — create a process, invite people to interviews, see who has done theirs, and read the process summaries
- Skills, Plugins, Sandboxes — list and reference
See the full list of available tools on the Available MCP Tools page.
When Duvo ships a new Public API endpoint, it automatically becomes an MCP tool on the next deploy. There's no separate maintenance step.
Server URL
https://api.duvo.ai/v2/mcp
The server uses MCP's Streamable HTTP transport (POST /v2/mcp). Most modern MCP hosts support this transport out of the box.
[!NOTE]
The earlier
https://api.duvo.ai/v1/mcpendpoint still works and serves the same tools as/v2/mcp, so existing setups keep running unchanged — including after the/v1API sunset. New connections should use/v2/mcp.
Authentication
The Duvo MCP server accepts two credential types:
Option 1 — OAuth (recommended for personal use)
Recommended for hosts that prompt you to sign in (Claude, Cursor, ChatGPT connectors). The host runs a one-time browser-based sign-in to Duvo, then handles token refresh and revocation for you. No API key to copy or rotate.
The exact steps depend on the host. In general:
1. Add the server URL
Add https://api.duvo.ai/v2/mcp as the MCP server URL in your host's settings. In Claude, skip this step: connect Duvo from the connector directory instead.
2. Trigger the OAuth challenge
The host detects the OAuth challenge and opens a browser tab to Duvo's sign-in page.
3. Sign in and approve
Sign in and approve the connection.
4. Tokens stored automatically
The host stores the OAuth tokens and uses them automatically on every tool call.
Duvo's MCP server publishes its OAuth metadata at https://api.duvo.ai/.well-known/oauth-protected-resource/v2/mcp (RFC 9728). Compliant MCP hosts use this to discover the authorization server and register themselves via Dynamic Client Registration automatically.
Option 2 — API key (recommended for scripts and service accounts)
Use API keys when the host doesn't support OAuth, or for non-interactive use (CI, service accounts).
1. Generate an API key
Generate a key in the Duvo dashboard at Your Profile → API keys, scoped to a single team or to all teams you can access. Users with the Manager role or above can also create keys that work only in one team at Team Settings → API keys.
2. Send the key as a bearer token
Configure the MCP host to send the key as a bearer token in the Authorization header:
Authorization: Bearer <your-api-key>
3. Call tools
The host can then call Duvo MCP tools without any further sign-in.
API keys are scoped to a single team or to all teams the owner can access. A key acts as the user who created it: it has their permissions and can use their personal Connections, Logins and Secrets.
Setup by host
In Claude, connect Duvo from the connector directory. Every other compliant host uses the same Duvo URL. Configuration syntax differs slightly between products, so check your host's MCP setup guide for the exact field names. Common patterns:
[tab] Claude
Duvo is an official connector in Claude's connector directory (see the Duvo listing), so there's no URL to paste. The steps are the same on claude.ai and in the Claude desktop app.
1. Open Connectors
In Claude, open Customize → Connectors.
2. Open the directory
Select the Discover tab.
3. Find Duvo
Search for Duvo.
4. Connect
Click Connect.
5. Sign in to Duvo
Sign in with your Duvo account in the browser tab that opens. Claude then uses the connection whenever it calls a Duvo tool.
[!NOTE]
On Team and Enterprise plans, an Owner or Primary Owner must first enable the Duvo connector for your organization under Organization settings → Connectors. Each person then connects and signs in to Duvo individually.
Need a manual setup instead? You can still add a custom connector with the URL
https://api.duvo.ai/v2/mcp.
[tab] Claude Code
Add the Duvo server from your terminal with the
claude mcp addcommand:claude mcp add --transport http duvo https://api.duvo.ai/v2/mcpThe first time you call a Duvo tool, Claude Code runs the browser-based OAuth sign-in. To use an API key instead (for CI or service accounts), pass it as a bearer header:
claude mcp add --transport http duvo https://api.duvo.ai/v2/mcp \ --header "Authorization: Bearer <your-api-key>"
[tab] Cursor
In Cursor settings, open the MCP servers section, add a new server with the URL
https://api.duvo.ai/v2/mcp, and let Cursor run the OAuth flow.
[tab] ChatGPT (Custom Connector)
Add a Custom Connector pointing to
https://api.duvo.ai/v2/mcp. ChatGPT handles Dynamic Client Registration and the OAuth flow automatically.
[tab] Custom MCP host or script
Any MCP-compatible client library (TypeScript, Python, etc.) can connect — point it at
https://api.duvo.ai/v2/mcp, supply either an OAuth token or an API key, and calltools/listto discover what's available.
Tool ergonomics
Tools follow the underlying Public API:
- Tool names map to OpenAPI
operationIds (for example,listAgents,startRun,getConnection). - Tool descriptions come from each endpoint's OpenAPI description.
- Input schemas are flat — path parameters, query parameters, and request body are merged into a single object so calls read naturally (
startRun({ agent_id: "...", input: "..." })rather than wrapping each section). - Responses match the corresponding API response. Use the Public API Reference for the exact shapes.
- Every tool carries MCP annotations (
readOnlyHint,destructiveHint,idempotentHint,openWorldHint), so hosts can tell a read from a write and know which tools reach outside Duvo — for examplestartRun,probeMcpServer, or the OAuth start tools. - Not-found errors name the id parameter that failed and echo the value you sent (for example
case_queue_id), so a call that takes several ids tells you which one to check.
Built-in skills
The server also ships Duvo's Agent Skills as MCP resources, so your host has the same guidance without installing anything. Each skill is a markdown file under duvo://skills/:
| Resource | Use it to |
|---|---|
duvo://skills/aop-writer/SKILL.md | Draft, rewrite, or critique an Agent's AOP |
duvo://skills/run-debugger/SKILL.md | Find out why a Run failed or produced the wrong outcome |
duvo://skills/workflow-debugger/SKILL.md | Audit an Agent or a Queue-connected workflow across many Runs |
duvo://skills/improve-agent/SKILL.md | Take one Agent from where it is to an applied improvement |
duvo://skills/improve-queue/SKILL.md | Do the same for a Queue and the producer/consumer workflow around it |
duvo://skills/connection-doctor/SKILL.md | Diagnose the Connections and Logins an Agent relies on |
duvo://skills/clarity-mapping/SKILL.md | Map how a process works with Clarity, from interviews to analysis |
duvo://skills/operate-module/SKILL.md | Answer questions about a running Module and change it safely, as Ask Duvo does |
The server's instructions tell the host when to read each skill, and reference files sit next to each SKILL.md under references/. Hosts that surface MCP resources (Claude Desktop, Claude Code, Cursor) list them automatically.
[!NOTE]
The skills are the same content as the public
duvoai/skillsrepository, which you can still install locally to use with the Duvo CLI.
Limits and behavior
- All Public API rate limits apply to MCP tool calls.
- Every tool call respects the permissions of the authenticating user, just like a direct API call.
- Long-running Runs are not streamed over MCP today — start the Run via the tool, then poll
getRunorlistRunMessagesto monitor progress.
Troubleshooting
[!WARNING]
401 Unauthorized — Your token is missing, expired, or for a different audience. Re-run OAuth, or regenerate the API key in the dashboard.
[!WARNING]
403 Forbidden — Your account doesn't have permission to call this endpoint. Check your team role and Connection permissions.
[!WARNING]
OAuth doesn't open a browser — The host may not support Dynamic Client Registration. Fall back to API key authentication, or check the host's docs for OAuth setup steps.
Privacy and terms
- Privacy Policy — how Duvo handles data accessed through the MCP server.
- Terms of Use — the terms that apply to Duvo API and MCP usage.
For platform-wide details (SOC 2 certification, encryption, Anthropic Zero Data Retention, sub-processors), see Security & Privacy.
Related
[card] Available MCP Tools
The full catalog of tools this server exposes.
[card] Connect a custom MCP to Duvo
The other direction: bring your own MCP server into Duvo.
[card] Public API Reference
The API the Duvo MCP server wraps.
[card] Duvo CLI
Terminal-first wrapper over the same API.
This documentation is built and hosted on Mintlify, a developer documentation platform.