Dott MCP
The Model Context Protocol interface to Dott. Connect Claude Desktop, claude.ai connectors, or any agent that speaks MCP. This page covers two servers: the public, accountless knowledge + discovery MCP (Dott's published concepts, the open scoring methodology, and the event directory), just below, and the authenticated portfolio MCP that follows it (read-only access to your own events, scores, budgets, speakers, attendance, tier recommendations, and tasks).
Both are read-only in v0.1.
Public MCP: knowledge + discovery (accountless)
Dott runs a public, read-only MCP (no account, no API key) covering two layers: knowledge (the concepts Dott defines and the published scoring methodology, always available) and discovery (the public event directory). It's a separate surface from the operator MCP below: server dott-public, endpoint https://www.usedott.com/api/mcp/public (remote, streamable HTTP). Everything this page says about keys, rate-limit headers, org scoping, and the audit log applies to the operator server only.
Knowledge tools
Discovery tools
Connect (Claude Desktop)
{
"mcpServers": {
"dott-public": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://www.usedott.com/api/mcp/public"]
}
}
}On claude.ai, add https://www.usedott.com/api/mcp/public as a custom connector, auth None. Quick test from the command line, no key:
curl -X POST https://www.usedott.com/api/mcp/public \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Running Dott locally or on a preview deploy without DOTT_DIRECTORY_PUBLIC? The two discovery tools answer with a not-open-yet notice and no event data until that flag is set. The knowledge tools always answer: that content is public everywhere.
Quickstart
1. Generate an API key from Settings → API Keys. The raw key appears once. Copy it then. Org-management capability is required to generate or revoke keys.
2. Add the MCP server to your Claude Desktop config (typically ~/Library/Application Support/Claude/claude_desktop_config.json on macOS). We use mcp-remote as the stdio↔HTTP bridge (Anthropic's recommended adapter for any HTTP-based MCP server):
{
"mcpServers": {
"dott": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://www.usedott.com/api/mcp",
"--header",
"x-dott-api-key:${DOTT_API_KEY}"
],
"env": {
"DOTT_API_KEY": "dott_sk_..."
}
}
}
}3. Restart Claude Desktop. Test the connection with any of the 8 tools below. From the command line:
curl -X POST https://www.usedott.com/api/mcp \
-H "x-dott-api-key: dott_sk_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Authentication
Every request must include an x-dott-api-key header. Keys are org-scoped: a key generated in one workspace returns only that workspace's data. The hash is stored; the raw key is never recoverable after generation.
Keys can be revoked at any time from Settings → API Keys. Revocation is immediate.
Rate limits
Each key has a per-hour request quota (defaults to 100/hour; contact support for higher). When you hit the limit you'll get an HTTP 429 with a Retry-After header. Counts reset on a rolling hour window.
Handle the 429 by waiting the number of seconds in the Retry-After header before retrying. Example handling pattern:
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get('Retry-After') || '60', 10);
await new Promise(r => setTimeout(r, retryAfter * 1000));
// retry
}The 8 tools
v0.1 exposes 8 read-only tools. All take an authenticated request and return JSON. All are scoped to the org tied to the API key. There is no cross-org access by design.
The Dott Score
The Dott Score is a composite 0–100 score that captures the full lifecycle of an event: what was planned, what was delivered, and what was proven. It folds three returns into one number: ROI (return on investment), ROO (return on objective), and ROX (return on experience).
get_score exposes the final score and the intent category the event was scored against. The internal weights, the per-component breakdowns, and the intent-specific weight tables are proprietary and not exposed via the MCP. Agents have everything they need to compare events, rank a portfolio, or explain a verdict, without the methodology that produced the verdict.
Audit log
Every authenticated MCP call writes a row to mcp_audit_log: api_key_id, org_id, response status, timestamp. Org operators with manage capability can review it via Supabase (a UI view ships in a later release). The log exists for incident response and abuse detection; it never contains the request payload or response body.
What MCP does not expose
v0.1 is read-only and intentionally scoped. The MCP layer never returns:
- Scoring formula, weight tables, or intent-specific weight distributions
- Per-component score breakdowns (pre-event signals, post-event evidence components)
- Forecast targets, registration targets, show-rate targets, or the score-history time series
- Retro narrative content, internal team notes, or learning capture
- PII fields (submitter email, submitted-by user IDs)
- Agent runtime state or conversation history
These boundaries are enforced in lib/mcp/blocked-fields.ts as a canonical sentinel list, separate from each tool's safe-field selection.
Errors
The MCP returns generic error messages: {"error": "..."} with an appropriate HTTP status. Server-side details aren't echoed back to clients (security posture).
401: missing or invalidx-dott-api-key429: rate limit exceeded; checkRetry-After500: internal error; we'll see it in audit + logs
Support
MCP issues, integration help, security disclosures: email hello@usedott.com. Meet the team behind Dott at /team.
Use & legal
Use of the Dott MCP is governed by our Terms and Privacy Policy. Keys are scoped to a single org. Sharing one across orgs, reselling access, or wrapping the MCP into a competing product is not permitted. Rate limits, audit logs, and revocation are operator-facing controls; abuse triggers automatic key suspension while we follow up.
Dott, the Dott Score, and the Event Portfolio Intelligence System are proprietary. No copying, scraping, reverse-engineering, or reproduction without written permission. The MCP exposes a deliberately scoped read-only surface; everything outside that surface is part of the proprietary methodology and isn't available for export.
v0.2: August 13, 2026 (public server dott-public 0.2.0: knowledge tools added; authed server unchanged at 0.1). The MCP surface is versioned; we'll publish a changelog before changing existing shapes.