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
readOnlyHintannotation intools/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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dc_mcp-0.1.7.tar.gz | 47.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.