# Duvo and the Model Context Protocol

The [Model Context Protocol (MCP)](https://modelcontextprotocol.io) is an open standard that lets AI assistants and platforms exchange tools, context, and data. Duvo speaks MCP in both directions:

* **Duvo as MCP server** — Connect tools like Claude Desktop, Cursor, or ChatGPT directly to Duvo. Every Duvo Public API endpoint becomes an MCP tool the host can call. See [Connect to the Duvo MCP server](/mcp/duvo-mcp-server.md).
* **Custom MCP servers as Duvo Connections** — Bring your own MCP server into Duvo and let your Assignments call its tools alongside built-in Connections like Gmail or Snowflake. See [Custom MCP Connections](/mcp/custom-mcp-servers.md).

If you're not yet familiar with MCP, the [official MCP documentation](https://modelcontextprotocol.io/docs/getting-started/intro) is a good starting point.

## Which direction do you need?

| You want to…                                                                | Use                                                             |
| --------------------------------------------------------------------------- | --------------------------------------------------------------- |
| Drive Duvo from Claude Desktop, Cursor, ChatGPT connectors, or another host | [Duvo MCP server](/mcp/duvo-mcp-server.md)                      |
| Let your Duvo Assignments call tools from a custom internal system          | [Custom MCP Connections](/mcp/custom-mcp-servers.md)            |
| Build an MCP server from scratch to expose your tools                       | [Building an MCP server for Duvo](/mcp/building-mcp-servers.md) |

## Quick comparison

|                             | Duvo as MCP server                                                 | Custom MCP Connections                              |
| --------------------------- | ------------------------------------------------------------------ | --------------------------------------------------- |
| **Who runs the server**     | Duvo                                                               | You                                                 |
| **Endpoint**                | `https://api.duvo.ai/v1/mcp`                                       | A public HTTPS URL you provide                      |
| **What tools it exposes**   | Every Duvo Public API endpoint                                     | Whatever your MCP server implements                 |
| **Who's the client (host)** | Claude Desktop, Cursor, ChatGPT connectors, any MCP-compatible app | Duvo Assignments                                    |
| **Authentication**          | OAuth or API key                                                   | None, API key, custom headers, or OAuth (DCR-aware) |
| **Setup time**              | Minutes — paste the URL into your MCP host                         | Minutes once your server is deployed and reachable  |

## How it fits with the rest of Duvo

* The Duvo MCP server is a thin layer over the [Public API](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/api-reference/README.md). The same authentication, rate limits, and permissions apply.
* Custom MCP Connections appear in the Duvo dashboard alongside other Connections, and Assignments use them the same way they use Gmail or Slack.
* The Duvo CLI is the third way to drive the Public API from outside Duvo. See [CLI](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/cli/README.md) for terminal-first workflows.

## Related

* [Public API Reference](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/api-reference/README.md) — full endpoint reference for the API the MCP server wraps
* [Duvo CLI](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/cli/README.md) — terminal-first wrapper over the same API
* [Custom MCP connection page](https://github.com/duvoai/monorepo/blob/gitbook-prod/knowledge-base/connections/available-connections/custom-mcp.md) — Custom MCP in the Available Connections catalog


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duvo.ai/mcp/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
