Connect Duvo and your agent gets 360 tools, among them acceptClarityCaptureSuggestion, acceptClarityLandscapeNode, acceptClarityProcessJoin. It answers at https://api.duvo.ai/v1/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 22 October 2026, succeeded.
Governed retail, FMCG, and CPG operational tools: runs, cases, approvals, audit-ready execution.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
acceptClarityCaptureSuggestion | Accept a pending Process Landscape capture suggestion and create the durable capture request (manager+). Inputs: nodeId, suggestionId |
acceptClarityLandscapeNode | Accept a proposed area folder into the active process landscape, so it stops being a proposal and becomes part of the real structure (organization admin+). Only area folders can be accepted; a proposed process becomes real through assignCla Inputs: orgId, nodeId |
acceptClarityProcessJoin | Accept a clarity interview invite link and gain process access. Inputs: token |
acceptClarityTeamAssignmentSuggestion | Accept a pending Process Landscape team-assignment suggestion and durably assign the suggested team (manager+). Inputs: nodeId, suggestionId |
addClarityLandscapeNodePerson | Add a person involved in the process behind a process landscape node. Name only records a placeholder; supplying an email also gives that person access to the process and emails them an invitation, so only pass an email the user asked you t Inputs: orgId, nodeId, teamId, name, email, role |
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. Inputs: artifactId, toolCallId, answers |
assignCaseLabels | Assign one or more labels to a case. Creates the labels on the queue if they don't already exist. Inputs: queue_id, case_id, labels |
assignClarityExtraCaptureRequest | Assign (or unassign, with `user_id: null`) a team member to fulfil an extra-capture request. Restricted to admins and managers. Inputs: process_id, transformation_proposal_id, request_id, user_id |
assignClarityLandscapeCaptureRequest | Assign an open Process Landscape capture request to a team member, or unassign it by sending userId: null (manager+). Inputs: nodeId, requestId, userId |
assignClarityLandscapeNodeTeam | Set the owning team of a process in the process landscape (organization admin+). On a proposed process this accepts the proposal and creates the real process for that team; on an existing process it moves the process, its captures and its b Inputs: orgId, nodeId, teamId, intent |
assignClarityProcessLabels | Assign process tags to a process. Inputs: id, labelIds, labels |
attachPulseDashboardConnection | Attach one of your connections (data sources) to a Duvo Pulse dashboard so the agent can use its tools (requires edit access). Inputs: artifactId, connection_id |
attachQueueJsonSchema | Put a queue on an existing Case schema, so both queues share one document and a later change moves them together. The queue must not already have a schema. Inputs: queue_id, family_id |
attachRevisionIntegrations | Attach one or more integrations to an agent revision. To pin specific connections after attachment, use pinRevisionIntegrationConnection. IMPORTANT for the case-queue-producer and case-queue-consumer integrations: attaching the integration Inputs: agent_id, build_id, integration_ids, selected_automation_revision_id |
attachRevisionLogin | Attach a login to a revision so the agent can use it during Runs spawned from that revision. Personal logins can only be attached by their owner; team-shared logins require builder permissions. Inputs: agentId, buildId, exposedCredentialId |
attachRevisionSecret | Attach an env-var secret to a revision so its keys are injected into Runs spawned from that revision. Personal secrets can only be attached by their owner; team-shared secrets require builder permissions. Inputs: agentId, buildId, credentialId |
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 browse Inputs: team_id, mcp_server_url, name, custom_integration_id, return_url, integration_type |
batchAddClarityLandscapeNodePeople | Add one or more people to multiple Process Landscape nodes in a bounded batch. Email entries can create invitations; each node-person outcome reports success, conflict, or delivery failure. Inputs: orgId, nodeIds, people |
buildClarityAutomation | Hand an automation proposal for a v2 clarity process off to the workflow-builder pipeline. Builds from `transformation_proposal_id` when supplied, otherwise from the process's live proposal. The proposal id is the durable idempotency key, s Inputs: process_id, transformation_proposal_id |
bulkCreateTeamInvites | Invite several people to a team in one call, emailing each invitation immediately. Returns per-batch counts: `succeeded` were invited, `skipped` were already on the team, already had a pending invitation, or were a duplicate of an earlier e Inputs: team_id, members, frontendUrl |
bulkReprocessCases | Re-process multiple cases on a chosen agent. Any active runs on the selected cases are interrupted first; the cases are then reset to pending and assigned to the chosen agent for the next dispatcher tick. The chosen agent must already be co Inputs: queue_id, case_ids, all_matching, filters, search, agent_id |
bulkUpdateCasePriority | Set the priority of multiple cases. Priority only affects the order pending cases are picked up in: due postponed cases are handled first, then higher priority. It never interrupts runs or changes case status. Set `none` to clear priority b Inputs: queue_id, case_ids, all_matching, filters, search, priority |
bulkUpdateCaseStatus | Update the status of multiple cases to pending, completed, failed, or canceled. Interrupts any active runs and releases their case ownership, but never cancels their human-in-the-loop state — pending requests and open approval batches stay Inputs: queue_id, case_ids, all_matching, filters, search, status |
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 ` Inputs: mcp_server_url |
completeClarityArtifactImport | Complete a Miro artifact import after uploading to the signed URL. The uploaded bytes are validated before the import becomes a usable Clarity capture. Inputs: process_id, capture_id, file_name, content_type |
completeClarityDocumentUpload | Complete a document capture after uploading to GCS via signed URL Inputs: id, captureId, fileName |
completeClarityImageUpload | Complete an image capture after uploading it to GCS via a signed URL Inputs: id, captureId, fileName |
completeClarityOrganizationDocumentUpload | Complete an organization document capture after uploading to GCS; extracts text and stores it as a transcript so it feeds Process Landscape generation Inputs: orgId, interviewId, fileName |
completeClarityTeamDocumentUpload | Complete a team document capture after uploading to GCS; extracts text and stores it as a transcript so it feeds Process Landscape generation Inputs: interviewId, team_id, fileName |
completeClarityVideoUpload | Complete a video capture after uploading to GCS via signed URL Inputs: id, captureId, fileName |
consumeAgentSuggestion | Apply a suggestion: stage its change into the Agent's draft revision, then auto-clear any pending suggestions it makes moot. Inputs: id, revision_id, create_new_draft, selected_automation_revision_id |
createAgent | Create a new agent. Optionally include a build configuration to create the first build in the same request. |
createAgentCaseTrigger | Create a case trigger for an agent. An agent may have at most one case trigger; this returns 409 if one already exists. Inputs: agent_id, case_queue_id, enabled, concurrency |
createAgentFolder | Create a new agent folder. Inputs: team_id, name, parent_folder_id |
createAgentSlackTrigger | Create a Slack channel trigger on an agent (Agent in the Duvo UI): the agent starts a Run whenever a matching message is posted in the channel. An agent can carry one trigger per channel, so call this once per channel. The Slack workspace m Inputs: agent_id, trigger_type, slack_team_id, channel_id, channel_name, match_rule |
createAutomation | Create a new automation. Its first agent is created alongside it so the caller lands on something editable. On a team on revision semantics the automation holds a single draft revision and no live revision, with the agent's default build bo Inputs: team_id, name |
createCaseAttachmentUploadUrl | Issue a signed URL for uploading a file to a case. The client must PUT the bytes to the returned URL with the returned Content-Type, then call the finalize endpoint so the attachment becomes visible on the case. Inputs: queue_id, case_id, filename, mime_type, size_bytes |
createCaseQueueEvalRubric | Add one case-level evaluation rubric to a queue's current rubric set. Case-level rubrics judge the whole case (across every Run that touched it) as a Pass/Fail question at settlement. The rubric is added to the queue's current version (buil Inputs: queue_id, title, description |
createCases | Create one or more cases in a queue. Provide either a single `case` object or a `cases` array (1-100); providing both returns 400. Each case takes a title (max 500 chars), optional labels that will be assigned to the case on creation (missi Inputs: queue_id, case, cases |
createClarityArtifactImportUploadUrl | Create a signed upload URL for importing a Miro export into a Clarity v2 process. Supports SVG, XML, PNG, and JPEG exports. The caller must upload the file to the returned URL, then complete the import. Inputs: process_id, file_name, content_type, extra_capture_request_id |
createClarityDocumentUploadUrl, createClarityFolder, createClarityGuidance, createClarityImageUploadUrl, createClarityInviteLink, createClarityLandscapeNode, createClarityOrganizationDocumentUploadUrl, createClarityProcess, createClarityProcessLabel, createClarityProcessLink, createClarityProcessNode, createClarityTeamDocumentUploadUrl, createClarityVideoUploadUrl, createConnection, createCredential, createCustomIntegration, createEvalRubric, createFileUploadUrl, createOrgTeam, createPulseDashboard, createPulseDashboardAttachmentUploadUrl, createPulseDashboardComment, createPulseDashboardCommentReply, createQueue, createQueueAggregation, createQueueJsonSchema, createQueueLabel, createRevision, createSandbox, createSandboxUploadUrl, createSchedule, createSecret, createSkill, createSkillRevision, createTeamInvite, createTeamInviteLink, declineClarityLandscapeNode, deleteAgent, deleteAgentCaseTrigger, deleteAgentFolder, deleteAgentTrigger, deleteAllNotifications, deleteAutomation, deleteCase, deleteCaseAttachment, deleteCaseQueueEvalRubric, deleteClarityArtifactChatConversation, deleteClarityCapture, deleteClarityFolder, deleteClarityLandscapeNode, deleteClarityLandscapeNodeInterview, deleteClarityOrganizationInterview, deleteClarityProcess, deleteClarityProcessInviteLink, deleteClarityProcessLabel, deleteClarityProcessLink, deleteClarityTeamInterview, deleteConnection, deleteCredential, deleteCustomIntegration, deleteEvalRubric, deleteFile, deletePulseDashboard, deletePulseDashboardComment, deleteQueue, deleteQueueAggregation, deleteQueueLabel, deleteReadNotifications, deleteSchedule, deleteSecret, deleteSkill, deleteSkillRevision, deleteSlackTrigger, deleteTeamInvite, deleteTeamInviteLink, detachPulseDashboardConnection, detachQueueJsonSchema, detachRevisionLogin, detachRevisionSecret, dismissClarityCaptureSuggestion, dismissClarityTeamAssignmentSuggestion, dismissNotification, downloadSkill, duplicateAgent, duplicateClarityProcess, duplicatePulseDashboard, evaluateQueueAggregation, exportCases, exportPulseDashboardHtml, fileSuggestedClarityProcesses, finalizeCaseAttachment, finalizeClarityOrganizationInterview, generateClarityPortfolioIntelligence, generateClarityProcessLandscape, generateClarityProcessSnapshot, getAgent, getAgentCaseTrigger, getAgentMemoryFile, getAgentSuggestion, getAutomation, getAutomationCurrent, getAutomationCurrentFlow, getAutomationTabs, getBatchQueueStats, getCase, getCaseAttachmentDownloadUrl, getCaseQueueEvalRubrics, getClarityArtifactChatMessages, getClarityCapture, getClarityExport, getClarityHierarchyPeople, getClarityOrganizationInterview, getClarityPortfolioIntelligence, getClarityProcess, getClarityProcessInviteLink, getClarityProcessJoinInfo, getClarityProcessLandscape, getClarityProcessSharing, getClarityProcessSnapshot, getClarityProcessTree, getClarityTeamSettings, getConnection, getConnectionCredentials, getCredential, getEvalRubrics, getEvalScores, getFileContent, getFileDownloadUrl, getLegacyClarityProcess, getNotification, getNotificationBatch, getNotificationCounts, getNotificationFeed, getOrgInsightsHeadline, getOrgInsightsMetrics, getOrgInsightsUsageChart, getProfile, getPulseDashboard, getPulseDashboardAttachmentDownloadUrl, getPulseDashboardHtml, getPulseDashboardPdf, getPulseDashboardVersionHtml, getQueue, getQueueAggregationResult, getQueueJsonSchema, getRevision, getRevisionCaseQueueSetup, getRun, getRunEvaluation, getSecret, getSkillFileContent, getSkillRevisionFileContent, getTeam, getTeamInviteLink, getUnreadNotificationCount, inviteClarityMeetingNotetaker, inviteClarityOrganizationNotetaker, inviteOrgMember, listActiveClarityExports, listAgentCaseTriggers, listAgentFolders, listAgentMemoryFiles, listAgentRevisions, listAgentSchedules, listAgentSlackBoundWorkspaces, listAgentSlackTriggers, listAgentSuggestions, listAgentTriggerTypes, listAgentTriggers, listAgents, listAutomations, listAvailableClarityProcessLabels, listCaseAttachments, listCaseLabels, listCaseRunRecentMessages, listCaseRuns, listCases, listClarityArtifactChatConversations, listClarityExtraCaptureRequests, listClarityFolders, listClarityLandscapeCaptures, listClarityLandscapeNodeInterviews, listClarityLandscapeNodePeople, listClarityOrganizationInterviews, listClarityProcessAssignedLabels, listClarityProcessLabels, listClarityProcessLinks, listClarityProcessMembers, listClarityProcessSnapshots, listClarityProcessSummaries, listClarityProcesses, listClarityStepFrames, listClarityTeamInterviews, listConfigFields, listConnections, listCredentials, listFiles, listIntegrations, listMyOrganizations, listMyTeams, listNotifications, listOrgAgents, listOrgRuns, listOrgTeams, listPluginCatalog, listPulseDashboardComments, listPulseDashboardConnections, listPulseDashboardMessages, listPulseDashboardVersions, listPulseDashboards, listQueueAgents, listQueueAggregations, listQueueLabels, listQueues, listRevisionIntegrationConnections, listRevisionIntegrationQueues, listRevisionIntegrations, listRevisionLogins, listRevisionSecrets, listRunMessages, listRuns, listSandboxFiles, listSecrets, listSkillAssignments, listSkillFiles, listSkillRevisionFiles, listSkillRevisions, listSkills, listSystemSkills, listTeamInvites, listTeamMembers, markAllNotificationsRead, markNotificationBatchRead, markNotificationRead, moveAgent, moveAgentsToFolder, moveClarityProcessesToFolder, movePulseDashboard, organizeClarityProcessLandscape, pinRevisionIntegrationConnection, postRunMessage, postprocessClaritySnapshot, previewAgentCaseTriggerConflicts, probeMcpServer, promoteClarityProcessSnapshot, promoteRevision, promoteSkillRevision, proposeClarityLandscapeProcess, publishPulseDashboard, refreshPulseDashboard, refreshQueueAggregation, rejectAgentSuggestion, removeClarityLandscapeNodePerson, removeClarityProcessMember, removeRevisionIntegration, removeTeamMember, renameFile, reorderClarityFolders, reorderClarityLandscapeAreas, replaceCaseQueueEvalRubrics, replaceEvalRubrics, replaceQueueJsonSchema, replaceRevisionIntegrationQueues, respondToHumanRequest, restorePulseDashboardVersion, revertClarityProcessSnapshot, saveClarityProcessSnapshot, searchCases, sendPulseDashboardMessage, sendTeamInviteEmail, setClarityLandscapeNodePlacement, setClarityLandscapePriorities, setPulseDashboardCommentResolution, setupClarityFoldersFromLandscape, startClarityExport, startNativeOAuth, startRun, stopClarityArtifactChatConversation, stopClarityProcessSnapshot, stopPulseDashboardMessage, stopRun, unlinkCaseLabels, unlinkClarityProcessLabels, unpinRevisionIntegrationConnection, updateAgent, updateAgentCaseTrigger, updateAgentFolder, updateAutomation, updateCase, updateCaseQueueEvalRubric, updateClarityFolder, updateClarityGuidance, updateClarityLandscapeNode, updateClarityLandscapeNodePerson, updateClarityOrganizationInterview, updateClarityProcess, updateClarityProcessLabel, updateClarityProcessLink, updateClarityProcessSharing, updateClarityTeamSettings, updateConnection, updateCredential, updateEvalRubric, updateFileContent, updatePulseDashboard, updateQueue, updateQueueJsonSchemaSettings, updateQueueLabel, updateRevision, updateSchedule, updateSecret, updateSkillFile, updateSkillRevision, updateSkillRevisionFile, updateSlackTrigger, updateTeamInvite, updateTeamMemberRole, upgradeClarityProcess, uploadSandboxFile, upsertAgentTrigger
Every block below points at https://api.duvo.ai/v1/mcp. Pick your client and copy.
claude mcp add --transport http duvo https://api.duvo.ai/v1/mcp
{
"mcpServers": {
"duvo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.duvo.ai/v1/mcp"]
}
}
}{
"mcpServers": {
"duvo": {
"url": "https://api.duvo.ai/v1/mcp"
}
}
}{
"servers": {
"duvo": {
"type": "http",
"url": "https://api.duvo.ai/v1/mcp"
}
}
}{
"context_servers": {
"duvo": {
"url": "https://api.duvo.ai/v1/mcp"
}
}
}{
"mcpServers": {
"duvo": {
"serverUrl": "https://api.duvo.ai/v1/mcp"
}
}
}{
"mcpServers": {
"duvo": {
"url": "https://api.duvo.ai/v1/mcp"
}
}
}name: Duvo
version: 0.0.1
schema: v1
mcpServers:
- name: Duvo
type: streamable-http
url: https://api.duvo.ai/v1/mcp{
"mcpServers": {
"duvo": {
"httpUrl": "https://api.duvo.ai/v1/mcp"
}
}
}{
"mcpServers": {
"duvo": {
"type": "http",
"url": "https://api.duvo.ai/v1/mcp"
}
}
}{
"mcpServers": {
"duvo": {
"url": "https://api.duvo.ai/v1/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.duvo.ai%2Fv1%2Fmcp&type=streamable_http&id=duvo&name=Duvo
It answered our last check on 22 October 2026 in 64 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
360, as returned by the server's own tools/list on 14 September 2026: acceptClarityCaptureSuggestion, acceptClarityLandscapeNode, acceptClarityProcessJoin, acceptClarityTeamAssignmentSuggestion, addClarityLandscapeNodePerson, answerPulseDashboardQuestion, assignCaseLabels, assignClarityExtraCaptureRequest, and 352 more.
It answered our last check on 22 October 2026 in 64 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.duvo.ai/v1/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.github.duvoai. Endpoint host: api.duvo.ai. ARD identifier: urn:air:io.github.duvoai:mcp:duvo.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.