Skip to main content

dc-mcp

Stdio MCP (Model Context Protocol) client for the DoControl multi-agent assistant. Connect Cursor (or any MCP-compatible client) to your DoControl tenant in under 60 seconds.

Quick start

1. Install uv (one-time, if not already installed)

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Authenticate with your DoControl refresh token

uvx dc-mcp login

3. Add to ~/.cursor/mcp.json

{
  "mcpServers": {
    "docontrol": {
      "command": "uvx",
      "args": ["dc-mcp"],
    },
  },
}

Then restart Cursor. The DoControl tools will appear in the chat sidebar.

Available tools

Tool Access What it does
ask_dot Read-only Natural-language question answered by Dot's multi-agent orchestrator
search_api_schema Read-only Search the DoControl GraphQL schema by intent
list_connected_integrations Read-only List which SaaS integrations are connected for the tenant
read_api_query_builder_guide Read-only Fetch static GraphQL query-authoring guidance
execute_api_call Read-only Run a GraphQL query against the tenant API — mutations rejected
search_documentation Read-only Search DoControl's GitBook user documentation

All tools are read-only and cannot mutate tenant data. Each advertises this via the standard MCP readOnlyHint annotation in tools/list.

Get your refresh token

Log in to https://app.docontrol.io, navigate to Settings → Integrations → MCP Token, and click Generate. The token is valid for 30 days; you can regenerate it at any time.

When your token expires, simply run uvx dc-mcp login again with the new refresh token.

CLI reference

Command What it does
dc-mcp Run the stdio MCP server (this is what Cursor invokes)
dc-mcp login Store a refresh token in your OS keychain
dc-mcp logout Clear the stored refresh token
dc-mcp whoami Show your current authentication info
dc-mcp --version Print the installed version
dc-mcp --help Show CLI help

CI / headless / corporate environments

For environments where the OS keychain is unavailable (CI runners, headless Linux containers, devcontainers without Secret Service), set the refresh token via environment variable:

export DOCONTROL_REFRESH_TOKEN="..."

Then configure your MCP server to pass it through:

{
  "mcpServers": {
    "docontrol": {
      "command": "uvx",
      "args": ["dc-mcp"],
      "env": {
        "DOCONTROL_REFRESH_TOKEN": "${env:DOCONTROL_REFRESH_TOKEN}",
      },
    },
  },
}

The environment variable takes priority over the keychain when both are set.

Troubleshooting

error: Refresh token expired or revoked
Your refresh token is older than 30 days or has been revoked. Generate a new one in the DoControl webapp and run dc-mcp login again.

Network error contacting Cognito ... Check your internet connection or corporate proxy
You're behind a corporate firewall. Set HTTPS_PROXY to your proxy URL (e.g., export HTTPS_PROXY=http://proxy.company.com:8080).

Keychain unavailable: ... On headless Linux, set DOCONTROL_REFRESH_TOKEN env var instead
Your environment doesn't have a usable OS keychain (common in headless Linux or devcontainers). Use the environment variable approach from the CI section above.

No refresh token found
Either run dc-mcp login to store a token in your keychain, or set the DOCONTROL_REFRESH_TOKEN environment variable.

No DoControl tools appear in Cursor
Verify the syntax of ~/.cursor/mcp.json, restart Cursor, then check Cursor Settings → MCP for connection errors. Run dc-mcp whoami to confirm your authentication is healthy.

MCP connection fails / proxy crashes after a successful login (AttributeError: ... list_tools, Connection closed)
Your local uvx cache may be on a broken package resolve. Force a refresh, then reconnect the MCP server in Cursor:

uvx --refresh dc-mcp@latest

You do not need to run dc-mcp login again if your refresh token is still valid.

uvx: command not found
Install uv with curl -LsSf https://astral.sh/uv/install.sh | sh and restart your shell.

Privacy and security

Refresh tokens are stored in your OS keychain (macOS Keychain, Windows Credential Vault, or Linux Secret Service). They never leave your machine other than to be exchanged with Cognito for short-lived access tokens.

Each request to DoControl uses a fresh access token with a one-hour time-to-live (TTL). All traffic is HTTPS to AWS-hosted endpoints. No telemetry is collected by the package.

To revoke access, run dc-mcp logout to clear the local token, and revoke server-side via the DoControl webapp's Integrations panel.

Development & contributing

This package is part of the docontrol-io/dot repository. To report issues, file a GitHub issue in the main repo. For implementation details and testing, see the package source in packages/docontrol-mcp/src/ and tests in packages/docontrol-mcp/tests/.

License

MIT — see LICENSE.

Metadata

Release files for dc-mcp 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dc-mcp 0.1.7
File Size Uploaded Provenance
dc_mcp-0.1.7.tar.gz 47.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dc-mcp 0.1.7
File Interpreter ABI Platform
dc_mcp-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 76.2 kB

Release files / dc_mcp-0.1.7.tar.gz

Download URL dc_mcp-0.1.7.tar.gz
Size 47.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f7a4e9f0ac9b2f01d8bfaca5b4c94ddf93d34db2562da96dca43bd67876c4cab
BLAKE2b-256 checksum
How to use checksums
97ce27b8fa7f66efa5036e11157a458e0075f67905239e4296e5eb7f2e45714b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / dc_mcp-0.1.7-py3-none-any.whl

Download URL dc_mcp-0.1.7-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f7d9d7779822522658ea11d05c8b2e1886f7aa02dfce1740aa2ad83ac6bd72a
BLAKE2b-256 checksum
How to use checksums
5ad522f979aefb0b8000bed403abab0840463123cb79fb42bffe040b5bdc9d15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for dc-mcp 0.1.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page