ai-multiagent-orchestrator-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ai-multiagent-orchestrator-mcpWhat do our documents say about Q3 performance, and what's the latest market news?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AI Multi-Agent Orchestrator
A LangGraph-based supervisor that coordinates three independent AI specialists — a SQL database agent, a document RAG agent, and a live web research agent — routing each question to whichever specialist(s) it actually needs, and synthesizing their results into one answer.
Live demo: https://ai-multiagent-archestrator.onrender.com/demo MCP endpoint: https://ai-multiagent-archestrator.onrender.com/mcp
This is Project 3 in a portfolio series. The two specialists it coordinates are themselves independently deployed, production projects:
ai-sql-agent-mcp— Project 1ai-document-mcp— Project 2
Why this project
Most "agent" demos show a single LLM calling a single tool. This project demonstrates something closer to production multi-agent systems: a supervisor that must decide which of several independent, already-deployed services to call, potentially several at once, and combine their results honestly — including saying when a specialist's answer is incomplete or low-confidence, rather than papering over gaps.
Related MCP server: Knowledge Assistant MCP Server
Architecture
A user question comes in to the LangGraph Supervisor (Claude Sonnet 5).
The supervisor decides which specialist(s) the question needs, and calls one, several, or none:
ask_database-> a live MCP call to ai-sql-agent-mcp (Project 1, deployed independently on Render)search_documents-> a live MCP call to ai-document-mcp (Project 2, deployed independently on Render)search_web-> a live call to the Tavily Search API
Specialist results return to the supervisor, which synthesizes one final answer -- citing which specialist(s) it used, and flagging low-confidence or missing information honestly rather than guessing.
The supervisor and both MCP client wrappers run in this service. ask_database and search_documents are thin clients making real network calls to two other, independently deployed services -- not local functions pretending to be remote.
Features
Multi-specialist fan-out: a single question can trigger multiple specialists in parallel (e.g. "what do our documents say about X, and what's the latest news on X?" correctly calls both
search_documentsandsearch_webin one supervisor turn — verified live, see Proof section below).Judgment, not blind routing: the supervisor recognizes when a question needs no specialist at all and answers directly from general knowledge (verified live — see Proof section).
Triple exposure: the same orchestration logic is reachable three ways — as an MCP tool (
orchestrate), as a REST endpoint (/demo/query), and via a browser demo (/demo) — all sharing one code path so they can't drift out of sync.Graceful degradation: if a specialist errors or returns low-confidence results, the supervisor says so explicitly rather than fabricating certainty.
Live demo -- real, unedited output
Three real queries run against the live public deployment:
1. Document specialist, correctly scoped
"What does the Q3 report say about Acme Corp?"
Routed to search_documents only. Returned the real management-fee figures from the ingested report, and honestly flagged low retrieval confidence rather than overstating certainty.

2. SQL specialist, with an honest limitation
"What tables are in the database?"
Routed to ask_database. Correctly identified the customers and orders tables, and explicitly explained what it could not determine (no system-catalog access) instead of guessing.

3. No specialist needed
"what is AI"
Correctly recognized this needed no tool call at all, answered directly, and proactively offered to use a specialist if the question had actually been about the org's own data.

Tech stack
Layer | Technology |
Orchestration | LangGraph (supervisor + tool-calling graph) |
LLM | Claude Sonnet 5 (Anthropic API) |
Specialist transport | MCP (Model Context Protocol) over streamable HTTP |
Web research | Tavily Search API |
Server | FastMCP 3 (MCP server + custom REST/HTML routes) |
Testing | pytest, pytest-asyncio, unittest.mock |
CI | GitHub Actions |
Deployment | Docker on Render (free tier) |
Project structure
orchestrator/
config.py - centralized, validated settings (pydantic-settings)
mcp_clients.py - MCP client wrappers for ai-sql-agent-mcp and ai-document-mcp
web_agent.py - Tavily-based web research specialist
graph.py - LangGraph supervisor + tool-calling loop
server.py - FastMCP server: orchestrate tool, /health, /demo, /demo/query
tests/ - pytest suite, all external calls mocked
.github/workflows/ci.yml - runs the test suite on every push and PR
DockerfileRunning locally
Requires Python 3.12+ and API keys for Anthropic and Tavily.
git clone https://github.com/rajmyagentit-del/AI-MULTIAGENT-ARCHESTRATOR.git
cd AI-MULTIAGENT-ARCHESTRATOR
pip install -r requirements.txt
cp .env.example .env # then fill in your real keys
python orchestrator/server.pyThe server starts on http://localhost:8000. Visit /demo in a browser, or:
curl -X POST http://localhost:8000/demo/query \
-H "Content-Type: application/json" \
-d '{"question": "How many customers do we have?"}'Running with Docker
docker build -t ai-multiagent-orchestrator .
docker run -p 8000:8000 --env-file .env ai-multiagent-orchestratorEnvironment variables
Variable | Required | Description |
| Yes | Claude API key |
| Yes | Tavily search API key |
| No | Defaults to the live Project 1 deployment |
| No | Defaults to the live Project 2 deployment |
| No | Defaults to 8000; Render sets this automatically |
Testing
python -m pytest tests/ -v10 tests, all passing, all external services (Anthropic, Tavily, both MCP servers) mocked -- CI runs standalone with no real secrets required. Tests cover:
Correct MCP tool-call argument names (regression coverage for two real bugs found during development -- see Engineering Notes)
Error handling when a specialist fails or is unreachable
The supervisor's routing decision logic
The full supervisor<->tools loop end-to-end (mocked LLM + mocked specialist)
Deployment
Deployed on Render via the included Dockerfile, free tier. Auto-deploys on every push to main. Note: free tier spins down on inactivity -- the first request after idle time can take up to ~50 seconds while it cold-starts.
Engineering notes: real problems hit and fixed
Documenting these because working through them honestly is more useful than pretending the build was frictionless:
MCP client library version gap: the initial
mcpSDK pin (1.1.3) predated thestreamable_httpclient transport needed to actually call the two live specialist servers. Diagnosed via a realModuleNotFoundError, resolved by upgrading to 1.29.0 (not the newest 2.0.0 major, which introduced its own unrelated dependency conflicts).Wrong tool parameter name: assumed
ask_database's parameter wasquery; the real signature usesquestion. Found via a live test against the deployed server, confirmed against the Project 1 source, fixed, and locked in with a regression test.Claude Sonnet 5 content shape: with extended thinking enabled by default, message content is a list of typed blocks (thinking plus text), not a plain string like older models. The first live deployment leaked a raw thinking block into the public /demo/query response. Fixed with an explicit text-extraction helper and verified on the redeployed live service.
Unused dependency causing a real conflict chain: fastapi and uvicorn were added early on a guess, before settling on the FastMCP framework pattern. Neither was ever actually imported. They silently pinned starlette too old for fastmcp to install, causing a multi-layer version conflict. Root-caused by checking actual imports rather than chasing version numbers indefinitely, then removed entirely.
CI failing on every historical commit: config.py's fail-fast validation (a deliberate design choice) correctly blocked test collection in CI because no secrets exist there. Fixed with obviously-fake placeholder env vars in the workflow, safe because every test mocks the real API calls.
License
MIT -- see LICENSE.
Credits
Built on top of two other original projects in this portfolio series (ai-sql-agent-mcp, ai-document-mcp), coordinated via LangGraph, Anthropic's Claude API, Tavily, and FastMCP.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA unified MCP server for querying and managing multiple database types (PostgreSQL, MySQL, SQL Server, etc.) via natural language through AI assistants.GPL 3.0
- FlicenseAqualityDmaintenanceA multi-agent RAG MCP server that answers questions from your documents with a human-in-the-loop approval step, using a coordinator, retriever, and synthesizer agents.4
- AlicenseAqualityAmaintenanceA multi-agent Retrieval-Augmented Generation system exposed as an MCP server. Ask a question and a LangGraph pipeline plans the retrieval, pulls evidence from a pgvector knowledge base, optionally augments it with live web research, drafts a cited answer, and then self-critiques it for grounding — revising until the answer is supported by the sources.31MIT
- Flicense-qualityBmaintenanceMCP server for a modular RAG system that enables natural language question answering over enterprise documents with intent-aware routing, adaptive retrieval, and citation-backed responses.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.
GibsonAI MCP server: manage your databases with natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rajmyagentit-del/AI-MULTIAGENT-ARCHESTRATOR'
If you have feedback or need assistance with the MCP directory API, please join our Discord server