Daco Framework
Declarative Agent & MCP Orchestration β single MCP endpoint orchestrating multiple backends
Ask AI about Daco Framework
Powered by Claude Β· Grounded in docs
I know everything about Daco Framework. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
DACO β Declarative Agent & MCP Orchestration
One MCP endpoint to rule them all.

Instead of configuring N separate MCP servers in Claude Desktop, you configure one: DACO. It routes tool calls to the right backend, executes them in parallel when possible, and returns structured results.
The pattern is backend-agnostic. You define backends as simple modules (name prefix β handler function). DACO handles routing, parallel execution, error recovery, and the full MCP protocol over HTTP.
The LLM poses questions. DACO executes.
How It Works
Claude Desktop / Any MCP Client
|
| (single MCP connection)
v
+---------+
| DACO | Cloudflare Worker
| Router | MCP Streamable HTTP
+----+----+
|
+----+----+----+----+
| | | | |
v v v v v
Backend A B C D ...
Each backend is a JS module exporting:
TOOLSβ array of MCP tool definitionscallBackend(name, args, env)β handler function
DACO merges all tool lists, dispatches by name prefix, and adds meta-tools on top (daco_execute_parallel, daco_list_backends).
Current Backends (reference implementation)
This repo ships with 4 backends as a working example:
| Backend | Prefix | What it does |
|---|---|---|
| Smart Rabbit | smart_rabbit_* | AI fitness program generation |
| PubMed | pubmed_* | Scientific literature search (NCBI) |
| Brave Search | brave_* | Real-time web search |
| FitLexicon | fitlexicon_* | Exercise database (873 exercises, 8 languages) |
To adapt DACO to your own use case, replace these with your own backends. The orchestration layer doesn't care what the backends do.
Deploy
npm install
npx wrangler secret put BRAVE_API_KEY
npx wrangler secret put RAPIDAPI_KEY
npx wrangler deploy
Configure in Claude Desktop
{
"mcpServers": {
"daco": {
"url": "https://your-worker.workers.dev/mcp",
"transport": "http"
}
}
}
Or via local proxy:
{
"mcpServers": {
"daco": {
"command": "npx",
"args": ["mcp-remote", "https://your-worker.workers.dev/mcp"]
}
}
}
Adding a Backend
- Create
backends/my-service.js:
export const MY_SERVICE_TOOLS = [{
name: 'myservice_do_thing',
description: 'Does the thing',
inputSchema: { type: 'object', properties: { query: { type: 'string' } }, required: ['query'] }
}];
export async function callMyService(name, args, env) {
const res = await fetch('https://api.example.com/...', { ... });
return JSON.stringify(await res.json());
}
- Import in
worker.js, add toALL_TOOLS, add prefix routing indispatchTool()
That's it. No config files, no plugin system. Just functions.
Parallel Execution
daco_execute_parallel fires multiple tool calls simultaneously:
daco_execute_parallel([
{ tool: "pubmed_search", arguments: { query: "hypertrophy" } },
{ tool: "brave_search", arguments: { query: "gym prices 2026" } },
{ tool: "myservice_do_thing", arguments: { query: "..." } }
])
β All results returned in a single response
Related Projects
- immune β Adaptive memory system β learns patterns from every scan (+85% code quality)
- chimera β Bio-inspired 3-stage pipeline (Slime Mold β PRISM β Immune)
- spinal-loop β Neuromuscular-inspired agent routing (cheap models first)
- prism-framework β Multi-agent synthesis via native LLM stochasticity
- smartrabbit-mcp β AI workout generator MCP server (smartrabbitfitness.com)
MIT License β by Jacques Chauvin
