Roundtable MCP
Roundtable MCP
Role-Based Multi-Model Orchestration Server — Turn multiple AI models into a coordinated expert council.
🏛️ What is Roundtable?
Roundtable MCP is a Model Context Protocol (MCP) server designed for role-based multi-model council orchestration.
Instead of asking several models the same question and voting on their answers, Roundtable assigns each model a specialized role, equips them with custom skill guidelines, runs them across a 3-tier priority execution pipeline (Antigravity CLI, Local Ollama, Cloud APIs), and synthesizes their findings into unified reports automatically persisted to your Obsidian Vault.
┌── Architect (Gemini 3.7 Flash) ────┐
├── Developer (Gemma 4 Local GPU) ───┤
Prompt ──────────┼── QA Tester (Claude Sonnet 4.6) ───┼──> Synthesis Report
└── DevOps (GPT-OSS 120B) ───────────┘
PARALLEL ROUNDTABLE💡 Key Capabilities
👥 Parallel Expert Panels (
roundtable_start): Execute multiple specialized LLMs (Gemini, Claude, Gemma, GPT-OSS) simultaneously for multi-dimensional problem solving.⚡ Host Delegation & Exclusion: Automatically skips spawning redundant background CLI/API subprocesses for the active host model, delegating lead synthesis directly to the live session.
🌊 Sequential Cascade Relays (
roundtable_cascade): Pipeline tasks across multi-stage handoffs (Architect$\rightarrow$Developer$\rightarrow$QA$\rightarrow$DevOps).🛡️ 3-Tier Execution Pipeline: Prioritizes zero-config Antigravity CLI (leveraging your subscription Google OAuth), falls back to Local Ollama GPU, and routes to direct Cloud APIs when needed.
🎯 Dynamic Roles & Skills Engine (
roundtable_roles,roundtable_assign_role): Assign models distinct roles (ROLES.md) with dynamic.skillandSKILL.mdrules.📓 Persistent Obsidian Memory & Graph Hubs (
roundtable_save,roundtable_search): Automatically log sessions, search past memories, and ingest documents/folders with 30-minute auto-save throttling and automatic Graph View clustering.🔍 Honest Execution (Zero Faked Personas): No single-model roleplay simulations. If a model is offline or out of quota, Roundtable honestly reports the connectivity diagnostic.
🛠️ Official Tools Catalog
Official Tool Name | Mode / Category | Description |
| 👥 Parallel Council | Starts a multi-model council advisory discussion across registered expert models. |
| 🌊 Sequential Relay | Runs multi-stage sequential relay ( |
| 🎯 Single Router | Routes a specialized prompt to a single target model or role. |
| 📋 Project Roles | Displays active project model roles, aliases, and |
| ✍️ Assign Role | Dynamically assigns a custom role to a model & persists in |
| 🧠 Assign Skill | Associates a |
| 🏛️ List Experts | Lists all registered expert models, their roles, and provider status. |
| 📋 Preset Catalog | Lists all built-in expert roles ( |
| 📓 Vault Search | Searches past session notes in Obsidian memory. |
| ✍️ Save Vault Note | Saves custom notes or ingests files/folders into your Obsidian Vault. |
| 📖 Read Vault Note | Reads full markdown content of an Obsidian note. |
| ❓ Help & Cheatsheet | Displays the complete quickstart cheatsheet directly in chat. |
🚀 Quick Start
1. Clone & Build
git clone https://github.com/hardc0l2e/roundtable-mcp.git
cd roundtable-mcp
npm install
npm run build2. Configure Models (config.json)
{
"models": [
{
"id": "gemini-flash",
"name": "Gemini 3.7 Flash (Antigravity)",
"role_preset": "architect",
"aliases": ["gemini", "flash", "lead", "architect"],
"provider": "antigravity-cli",
"model": "gemini-3.7-flash-medium",
"enabled": true
},
{
"id": "claude-sonnet",
"name": "Claude Sonnet 4.6 (Antigravity)",
"role_preset": "qa_tester",
"aliases": ["claude", "sonnet", "qa"],
"provider": "antigravity-cli",
"model": "claude-sonnet-4-6",
"enabled": true
},
{
"id": "gpt-oss",
"name": "GPT-OSS 120B (Antigravity)",
"role_preset": "cicd_engineer",
"aliases": ["gpt", "gpt-oss", "devops"],
"provider": "antigravity-cli",
"model": "gpt-oss-120b-medium",
"enabled": true
},
{
"id": "gemma-local",
"name": "Gemma4 26B 128k (Local GPU)",
"role": "Primary Implementation Engineer",
"aliases": ["gemma", "gemma4", "local", "coder"],
"provider": "ollama",
"endpoint": "http://localhost:11434/api/generate",
"model": "gemma4-26b-128k:latest",
"enabled": true
}
],
"obsidian": {
"enabled": true,
"vault_path": "C:/Users/username/Documents/Obsidian Vault",
"folder": "roundtable-mcp/Sessions",
"auto_save": true
}
}For detailed provider settings and environment variables, see docs/configuration.md.
🏗️ Architecture & Execution Pipeline
Roundtable MCP resolves every model query through a resilient 3-tier priority execution pipeline:
flowchart TD
Client["MCP Client Host (OpenCode / Antigravity / Codex)"] -->|"JSON-RPC (STDIO)"| Server["Roundtable Server (dist/index.js)"]
subgraph CoreManagers["Core Managers"]
Server --> Roles["RolesManager (ROLES.md Override)"]
Server --> Skills["SkillResolver (.skill / SKILL.md)"]
Server --> Obsidian["ObsidianManager (Vault Search & Ingestion)"]
end
Roles --> Pipeline["Provider Routing Engine"]
Skills --> Pipeline
Obsidian --> Pipeline
subgraph ExecutionPipeline["Execution Pipeline"]
Pipeline --> Tier1["Tier 1: agy.exe (Google OAuth)"]
Tier1 -.-> Gemini["Gemini / Claude / GPT-OSS"]
Pipeline --> Tier2["Tier 2: Local GPU (llama.cpp / Ollama)"]
Tier2 -.-> Gemma["Qwen / Gemma 4 / GPT-OSS"]
Pipeline --> Tier3["Tier 3: Cloud APIs (OpenCode Zen / OpenRouter / Direct)"]
Tier3 -.-> OpenRouter["Direct REST API Providers"]
end
Tier1 --> ErrorCheck["Fault Isolation & Root Cause Extraction"]
Tier2 --> ErrorCheck
Tier3 --> ErrorCheck
ErrorCheck --> Output["Council Synthesis & Obsidian Vault Auto-Save"]🔌 Client Integration Setup
OpenCode (~/.config/opencode/opencode.jsonc)
{
"mcp": {
"roundtable": {
"type": "local",
"command": [
"node",
"C:\\projects\\roundtable-mcp\\dist\\index.js",
"--config",
"C:\\projects\\roundtable-mcp\\config.json"
]
}
}
}Google Antigravity (~/.gemini/config/mcp_config.json)
{
"mcpServers": {
"roundtable-mcp": {
"command": "node",
"args": ["c:/projects/roundtable-mcp/dist/index.js"],
"env": {
"ROUNDTABLE_CONFIG_PATH": "c:/projects/roundtable-mcp/config.json"
}
}
}
}💡 Practical Examples
Run a Parallel Council Discussion:
roundtable_start(prompt: "Design high-concurrency authentication microservice for 1M DAU")Run a Multi-Stage Feature Cascade:
roundtable_cascade(prompt: "Build JWT Authentication Endpoint", pipeline: ["architect", "coder", "qa_tester", "cicd_engineer"])Ingest Documentation to Obsidian Graph Hub:
roundtable_save(source_path: "docs/architecture.md", target_folder: "roundtable-mcp", target_base: "ROUNDTABLE MCP", tags: ["architecture", "roundtable"])Search Past Decision Memory:
roundtable_search(query: "circuit breakers")
📄 License
This project is licensed under the MIT License.
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/hardc0l2e/roundtable-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server