
OrchestrateMCP
An evidence-backed workflow-design advisor for AI agents. Connect it to ChatGPT, Claude (web), Cursor, or Claude Desktop and it plans safer, more grounded AI workflows β grounded in a registry of tested components, edges, and golden-path playbooks. Read-only, stateless, holds no secrets.
Status: registry of 47 components, 78 edges, 4 workers, 1 stack, 6 routes, 6 playbooks; 17 tools; available over stdio and as a free hosted endpoint (https://mcp.orchestratemcp.dev/mcp).
What it does
OrchestrateMCP exposes a structured registry of:
components β the building blocks of AI workflows
edges β tested relations between components (requires, safer_with, conflicts_with, β¦)
stacks β opinionated technology choices for different deployment contexts
routes β tested paths through the component graph
playbooks β golden-path routes with full implementation guidanceWhen a user describes a workflow goal, the MCP can:
- Match the goal to required capabilities and components.
- Traverse tested component relationships.
- Reuse sections of known golden-path playbooks.
- Compose a candidate route when no exact playbook exists.
- Score route confidence (coverage, tested edges, stack fit, safety, simplicity).
- Return the route as structured implementation context for Cursor or Claude.
What works right now
- MCP server runs on stdio (Cursor, Claude Desktop) and over Streamable HTTP / a Cloudflare Worker (ChatGPT, claude.ai) β 17 registered tools.
health_checkreturns{ name, version, registry: { component_count, edge_count, stack_count, route_count, playbook_count, untested_edge_pct } }.- Registry loaded from YAML: 47 components, 78 edges, 1 stack, 5 routes, 5 playbooks.
pnpm verify(typecheck + lint + tests) passes from a clean clone and install.
Connect from Cursor
Copy examples/cursor-mcp.json content into your Cursor workspace MCP config at .cursor/mcp.json. Replace the cwd value with the absolute path to this directory.
{
"mcpServers": {
"orchestratekit": {
"command": "npx",
"args": ["tsx", "src/server.ts"],
"cwd": "/absolute/path/to/orchestratekit-mcp"
}
}
}Connect from Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"orchestratekit": {
"command": "npx",
"args": ["tsx", "src/server.ts"],
"cwd": "/absolute/path/to/orchestratekit-mcp"
}
}
}Connect from ChatGPT or claude.ai (hosted)
No install, no terminal β point your AI client at the free hosted endpoint:
https://mcp.orchestratemcp.dev/mcpFull walkthrough (ChatGPT Developer-Mode connector + claude.ai): docs/CHATGPT_USAGE.md.
Connecting your workflow's services
Connecting the MCP to your client takes no auth (it's a read-only advisor). But the workflows it plans need your credentials for Gmail, Slack, Stripe, your CRM, and so on. For how to provision those safely β least-privilege scopes, secret managers, and managed-auth brokers β see docs/CONNECTION_SETUP.md. OrchestrateMCP never holds a credential.
Scripts
| Script | Description |
|---|---|
pnpm dev | Run server directly with tsx (no build step) |
pnpm build | Compile to dist/ with tsup |
pnpm typecheck | TypeScript type-check only (no emit) |
pnpm test | Run unit tests with vitest |
pnpm verify | Run typecheck then test |
Project structure
orchestratekit-mcp/
src/
server.ts Entry point β wires MCP server to stdio transport
config.ts Server name and version constants
tools/
index.ts Tool registration (17 tools: health_check + 16 graph/advisor tools)
composeWorkflowRoute.ts
listGraphComponents.ts / getGraphComponent.ts
listGraphEdges.ts / getGraphEdge.ts
getStackRecommendation.ts
listKnownRoutes.ts / getRoute.ts
registry/
registryLoader.ts YAML loader with validation, status filtering, cross-ref checks
componentSchema.ts / edgeSchema.ts / stackSchema.ts / routeSchema.ts / playbookSchema.ts
registryTypes.ts / registryValidation.ts
graph/
capabilityMatcher.ts Keyword + token matching: goal text β components
routeComposer.ts Orchestrates all graph modules into a composed route
routeScoring.ts Deterministic 0-100 score with breakdown
routeOrdering.ts Topological sort via Kahn's algorithm
safetyAugmenter.ts Auto-adds approval gates and audit log
playbookOverlap.ts Detects overlap with known playbooks/routes
docs-index/ Supplementary docs loader (future)
lib/
errors.ts McpToolError class and toErrorResult helper
logger.ts Stderr-only logger (stdout reserved for transport)
registry/
components/ component YAML files (47 active)
edges/ edge/relation YAML files (78 active)
stacks/ stack YAML files
routes/ route YAML files (5 validated)
playbooks/ golden-path playbook YAML files (5)
docs-index/ Supplementary context documents
examples/
cursor-mcp.json Example Cursor MCP config
claude-desktop-config.json Example Claude Desktop config
tests/
health-check.test.tsNon-goals (by design)
- No first-party credential storage β it recommends secret managers / managed-auth brokers, never holds a secret
- No auth / OAuth / accounts β the hosted endpoint is read-only and stateless, nothing to log into
- No vector database
- No graph database (Neo4j etc.)
- No automatic registry updates
- No LLM API calls inside MCP tools
- No SaaS dashboard
- No dependency on OrchestrateLab at runtime
Build order
MAR-35 β
Scaffold β done
MAR-37 β
Graph registry schemas: components, edges, stacks, routes, playbooks
MAR-38 β
Seed workflow graph: 30 components, 47 edges, 1 stack, 5 playbooks
MAR-77 β
Graph lookup tools: list/get components, edges, stacks, routes
MAR-78 β
compose_workflow_route β deterministic route composer
MAR-49 β
Benchmark setup β see docs/BENCHMARKING.md
MAR-88 β
Domain-gated capability matcher β eliminates cross-domain false positives
MAR-92 β
Registry lint + untested_edge_pct in health_check
MAR-95 β
crm_note_write component + researchβcontent bridge edge
MAR-96 β
Benchmark protocol v2 β rubric, prompts-v2.yaml, PROTOCOL.md
MAR-97 β
Docs truth pass β registry counts, tool count, verify pathBenchmarking
To validate that the workflow graph improves planning quality over vanilla Cursor/Claude, run the manual benchmark described in docs/BENCHMARKING.md.
Quick start:
# v2 protocol β print session guide for all 7 prompts
pnpm tsx scripts/benchmark-template.ts --prompts benchmarks/prompts-v2.yaml --all
# v2 β single prompt
pnpm tsx scripts/benchmark-template.ts --prompts benchmarks/prompts-v2.yaml --prompt p6_email_lead_crm
# v1 (legacy)
pnpm tsx scripts/benchmark-template.tsResults go in benchmarks/results-YYYY-MM-DD.md.
cd orchestratekit-mcp
pnpm install
pnpm verify # typecheck + tests β must pass before anything else
pnpm dev # starts the MCP server on stdioRequirements
- Node.js β₯ 20
- pnpm
Local setup
cd orchestratekit-mcp
pnpm install
pnpm verify # typecheck + tests β must pass before anything else
pnpm dev # starts the MCP server on stdioThe server reads from stdin and writes JSON-RPC to stdout. All log output goes to stderr.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.