Duvo MCP
by duvo.ai in Developer tools
Governed retail, FMCG, and CPG operational tools: runs, cases, approvals, audit-ready execution.
https://api.duvo.ai/v1/mcp
Last 30 days
- Uptime
- 100%
- Response time
- 200 ms typical, 200 ms slowest 5%
- Last check
- 7 h ago
- Next check
- in 2 min
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"duvo-mcp": {
"type": "http",
"url": "https://api.duvo.ai/v1/mcp"
}
}
}400 tools
- listAgentMemoryFiles
List the memory files stored for an agent.
- getAgentMemoryFile
Get the contents of a single memory file for an agent.
- listPluginCatalog
List plugins that can be referenced by name in a build's plugins array. Builds may also reference any public GitHub repository URL (https://github.com/owner/repo) as a plugin; those are not enumerated here.
- createSchedule
Create a schedule for an agent. The schedule fires against the agent's live build. The authenticated user owns the schedule. On a team with versions, a repeating schedule for an Agent in an automation joins that automation's versions: one matching a schedule the automation alread
- updateSchedule
Update fields on an existing schedule. Only supplied fields are changed; omitted fields retain their current values. Owners may update their own schedules; team superadmins may update any schedule on agents in the current team. A schedule that belongs to an automation with versio
- deleteSchedule
Delete a schedule. Owners may delete their own schedules; team superadmins may delete any schedule on agents in the current team. Deleting a schedule that belongs to an automation with versions stops it for its owner at once; the automation's versions keep the schedule for anyone
- getTeam
Get a team by ID. The caller must be scoped to the requested team.
- startNativeOAuth
Start an OAuth-based connection with a native provider (Gmail, Google Sheets, Outlook, etc.). Returns an authorization URL that must be opened in a browser by a human end-user; once they grant consent, Duvo creates the matching connection and redirects the browser to the optional
- authorizeMcpOAuth
Start an OAuth-based connection with a remote MCP server using Dynamic Client Registration. Returns an authorization URL the user must open in a browser; once they grant consent, Duvo creates the matching connection and redirects the browser to the optional `returnUrl`.
- checkMcpOAuth
Probe an MCP server URL to discover whether it supports OAuth Dynamic Client Registration. Returns the authorization endpoint and required scopes when supported. Useful as a precursor to `/v2/teams/:team_id/connections/oauth/mcp/start` or `/v2/teams/:team_id/connections`. Perform
- listPulseDashboards
List your Duvo Pulse dashboards (live, agent-generated visualizations of your Duvo data). Ordered most recently updated first, except scope=automation, which is ordered by creation time (then id) so the whole scope can be read with the after_id cursor without a concurrent change
- createPulseDashboard
Create a new Duvo Pulse dashboard from a natural-language prompt (e.g. 'open cases by queue this week') and dispatch the first generation turn. Generation is asynchronous — poll GET /artifacts/{artifactId} until status is completed. The dashboard is private to you unless you set
- getPulseDashboard
Get a Duvo Pulse dashboard's metadata and generation status. When status is completed and html_code_present is true, fetch the rendered HTML from GET /artifacts/{artifactId}/render; the conversation is served by GET /artifacts/{artifactId}/messages.
- listPulseDataSources
Discover queues the current editor may connect to this team-created Pulse before sampling data. Requires live dashboard edit permission and ordinary team data access. Module sources are installed with the Module. A queue ID in generated code does not grant access.
- connectPulseDataSource
Connect an authorized same-team queue to a team-created Pulse before sampling it. Idempotent. This bounds dashboard data access; it never grants Process membership or case-action authority. Requires both edit permission and ordinary team source access.
- disconnectPulseDataSource
Disconnect a source from a team-created dashboard. Subsequent dashboard reads and writes immediately lose access. Idempotent; does not delete the queue or cases.
- getPulseDashboardHtml
Serve a Duvo Pulse dashboard's rendered HTML document (text/html, not JSON). 404 until the first generation turn has produced HTML.
- getPulseDashboardPdf
Render a Duvo Pulse dashboard to a PDF document (application/pdf, not JSON). 404 until the first generation turn has produced HTML; 409 for an openui dashboard, whose substrate this exporter cannot render.
- exportPulseDashboardHtml
Render a Duvo Pulse dashboard to a self-contained static HTML snapshot (text/html, data baked in). 404 until the first generation turn has produced HTML; 409 for an openui dashboard, whose substrate this exporter cannot render.
- updatePulseDashboard
Update a Duvo Pulse dashboard's settings — rename it. Only the creator can update it.
- publishPulseDashboard
Publish (share) a Duvo Pulse dashboard to your whole team or your whole organization, or revert it to private (creator only). When publishing, set permission to 'view' (teammates see the dashboard) or 'edit' (teammates can also iterate on it); organization-wide viewers outside th
- deletePulseDashboard
Delete a Duvo Pulse dashboard. Only the creator can delete it.
- duplicatePulseDashboard
Duplicate a Duvo Pulse dashboard, producing an idle clone of the current rendered dashboard. The conversation history, shares, and connections are not copied.
- sendPulseDashboardMessage
Send an instruction to iterate on a Duvo Pulse dashboard (e.g. 'make it a bar chart', 'filter to last 14 days'). The creator can always iterate; teammates can too when the Pulse is published to the team with edit access. The agent regenerates asynchronously — poll GET /artifacts/
- createPulseDashboardAttachmentUploadUrl
Issue a presigned upload URL for a file to attach to a Duvo Pulse dashboard message (e.g. an HTML dashboard to copy, or a screenshot to match). POST the file bytes to the returned upload_url as multipart form data under the field name 'file', then pass the returned attachment_id
- getPulseDashboardAttachmentDownloadUrl
Mint a short-lived presigned URL to download or preview a file attached to a Duvo Pulse dashboard message. Returns 404 once the dashboard's sandbox has expired and the file is gone (about 12 hours).
- refreshPulseDashboard
Trigger an on-demand data refresh of a Duvo Pulse dashboard. The dashboard regenerates its connection-sourced values in the background — poll GET /artifacts/{artifactId} for status.
- stopPulseDashboardMessage
Stop an in-flight Duvo Pulse generation turn. Requires edit access to the dashboard. Flips the dashboard to 'interrupted' and keeps any streamed-so-far reply; stopping when nothing is generating is a successful no-op.
- listPulseDashboardConnections
List the connections (data sources) attached to a Duvo Pulse dashboard (requires edit access).
- attachPulseDashboardConnection
Attach one of your connections (data sources) to a Duvo Pulse dashboard so the agent can use its tools (requires edit access).
- detachPulseDashboardConnection
Detach a connection (data source) from a Duvo Pulse dashboard (requires edit access).
- answerPulseDashboardQuestion
Answer a pending question the Duvo Pulse agent asked and resume the paused run (creator or team editors). Use the toolCallId from the dashboard's message transcript.
- listPulseDashboardMessages
List the chat transcript of a Duvo Pulse dashboard's live version (requires edit access). Returns the most recent page by default, oldest first within the page; pass `before` (a message id from a previous page) to walk back through older messages. Messages from other version bran
- listPulseDashboardComments
List the comment threads on a Duvo Pulse dashboard (requires view access). Each thread carries its author, the dashboard element it is pinned to, its replies oldest-first, and whether it has been marked complete.
- createPulseDashboardComment
Start a comment thread on a Duvo Pulse dashboard (requires view access). Pass `element` — captured from the dashboard canvas — to pin the thread to one element; omit it for a comment on the dashboard as a whole.
- createPulseDashboardCommentReply
Reply to a comment thread on a Duvo Pulse dashboard (requires view access). `commentId` must be a thread root; threads are one level deep. A thread already marked complete still accepts replies and stays complete.
- setPulseDashboardCommentResolution
Mark a Duvo Pulse dashboard comment thread complete, or reopen it (requires view access). Pass the target state in `resolved`; the call is idempotent, and the response carries the thread with `resolved_at` and `resolved_by` set or cleared.
- deletePulseDashboardComment
Delete a comment or reply on a Duvo Pulse dashboard. Allowed for the comment's author and for the dashboard's creator. Deleting a thread root keeps its replies, rendered under a deleted opening comment.
- listPulseDashboardVersions
List the version history of a Duvo Pulse dashboard, newest first (requires edit access). Use the version id with the restore and version-render endpoints.
- getPulseDashboardVersionHtml
Serve a specific version's rendered HTML document for a Duvo Pulse dashboard (text/html, requires edit access).
Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 7 h ago | Passed | 200 | 200 ms |