Skip to main content
Glama

🏛️ Roundtable MCP (roundtable-mcp)

역할 기반 하이브리드 멀티 모델 오케스트레이션 MCP 서버

roundtable-mcp는 오픈소스 Model Context Protocol (MCP) 서버로, 전문 AI 모델 패널을 오케스트레이션합니다. 로컬 무료 모델(Ollama 기반)과 클라우드 API(Anthropic Claude, Google Gemini, OpenAI, DeepSeek 등)를 결합합니다.

Roundtable은 각 모델에 고유한 전문가 역할(아키텍트, 구현 엔지니어, 내러티브 전문가, 시스템 리팩토링 전문가, 심층 추론 전문가)을 할당하고, 일반적인 답변에 투표하는 대신 이들의 통찰력을 통합하여 자문 위원회 보고서를 생성합니다.


✨ 주요 기능

  • 역할 기반 패널: 각 모델은 일반적인 중복 응답 대신 지정된 도메인 관점에서 활동합니다.

  • 하이브리드 실행: 로컬 모델(Ollama Gemma 4, Qwen Coder, Llama 3)과 클라우드 API(Claude 3.7/4.6, Gemini 3.5, DeepSeek R1, GPT-4o)를 원활하게 혼합합니다.

  • 병렬 팬아웃: run_roundtable은 Promise.allSettled()를 사용하여 모든 활성 패널 모델을 병렬로 쿼리하여 빠른 실행과 높은 내결함성을 제공합니다.

  • 설정 기반: 코드 수정 없이 config.json을 편집하여 언제든지 모델을 추가하거나 조정할 수 있습니다.

  • 크로스 플랫폼 MCP: Claude Code, Cursor, Windsurf, Antigravity, OpenCode, VS Code와 기본 호환됩니다.


Related MCP server: AI Orchestrator

📦 빠른 시작

1. 설치

git clone https://github.com/YOUR_USERNAME/roundtable-mcp.git
cd roundtable-mcp
npm install
npm run build

2. 설정

config.example.json을 config.json으로 복사합니다:

cp config.example.json config.json

클라우드 모델에 필요한 환경 변수를 설정합니다:

export ANTHROPIC_API_KEY="sk-ant-..."
export DEEPSEEK_API_KEY="sk-..."
export OPENAI_API_KEY="sk-..."
export GEMINI_API_KEY="AIzaSy..."

🛠️ MCP 도구 참조

도구 이름

설명

run_roundtable

모든 활성화된 Roundtable 전문가에게 프롬프트를 병렬로 실행하고 구조화된 자문 위원회 보고서를 출력합니다. 활성화된 경우 Obsidian에 자동 로깅됩니다.

route_prompt

특정 전문가 모델로 프롬프트를 라우팅하거나 키워드 트리거("gemma", "claude", "deepseek", "gpt")를 기반으로 자동 감지합니다.

list_roundtable_models

등록된 모든 전문가 모델, 해당 역할 및 현재 제공자 상태를 나열합니다.

list_preset_roles

내장된 사전 설정 역할(QA 테스터, CI/CD 엔지니어, 보안 감사자, 데이터베이스 아키텍트 등)을 나열합니다.

search_obsidian_memory

Obsidian Vault에서 과거 Roundtable 세션 노트를 검색하여 관련 컨텍스트 스니펫을 찾습니다.

save_to_obsidian

사용자 정의 노트 및 세션을 Obsidian Vault에 수동 또는 자동으로 직접 로깅합니다.


📋 사전 구축 역할 카탈로그 (role_preset)

사용자 정의 역할 설명을 작성하는 대신 config.json에서 "role_preset"을 통해 내장된 사전 설정 키를 사용할 수 있습니다:

  • qa_tester: QA 및 엣지 케이스 테스트 전문가

  • cicd_engineer: DevOps 및 CI/CD 파이프라인 전문가

  • security_auditor: 사이버 보안 및 취약점 감사자

  • database_architect: 데이터베이스 아키텍트 및 쿼리 최적화 전문가

  • architect: 리드 시스템 아키텍트 및 오케스트레이터

  • performance_tuner: 저수준 성능 및 리팩토링 전문가

  • frontend_ux: 프론트엔드 및 UI/UX 접근성 전문가

  • game_engineer: 게임 엔진 및 메커니즘 전문가

  • tech_writer: 기술 문서 및 API 작성자

{
  "id": "claude-qa",
  "name": "Claude Sonnet 4.6",
  "role_preset": "qa_tester",
  "provider": "anthropic",
  "model": "claude-3-7-sonnet-20250219",
  "enabled": true
}

🎯 모델에 전문 기술 할당 (skill)

네! 각 모델의 역할에 따라 특정 도메인 기술 지침, 코딩 표준 또는 체크리스트를 할당할 수 있습니다.

config.json에서 "skill"(또는 "skill_prompt") 속성을 사용하여 해당 모델의 시스템 프롬프트에 사용자 정의 지침을 주입합니다:

{
  "id": "gemma-godot",
  "name": "Gemma 4 (Local)",
  "role": "GDScript Implementation Specialist",
  "skill": "Follow Godot 4 GDScript standards: strict static typing, signal decoupling, and node path verification.",
  "provider": "ollama",
  "endpoint": "http://localhost:11434/api/generate",
  "model": "gemma4-26b-128k:latest",
  "enabled": true
}

📓 Obsidian Vault 통합 (장기 메모리)

roundtable-mcp는 로컬 Obsidian Vault에 직접 연결하여 세션 노트를 자동으로 로깅하고, 더 작은 컨텍스트 창을 가진 로컬 모델에서도 세션 간 지속적인 메모리를 제공합니다!

config.json 설정:

{
  "obsidian": {
    "enabled": true,
    "vault_path": "C:/Users/yourname/Documents/ObsidianVault",
    "folder": "Roundtable/Sessions",
    "auto_save": true,
    "max_context_notes": 3
  }
}
  • 자동 세션 로깅: 모든 run_roundtable 세션은 메타데이터, 날짜 및 태그(#roundtable #council #gemma #claude)가 포함된 깔끔한 Markdown 노트로 포맷됩니다.

  • 메모리 검색: search_obsidian_memory를 사용하여 간결한 과거 노트 스니펫을 가져와 더 작은 컨텍스트 창을 가진 모델도 컨텍스트 오버플로우 없이 정보를 유지할 수 있습니다!


🔧 AI 코딩 플랫폼과 통합

Claude Code / Claude Desktop / Antigravity / OpenCode

MCP 설정 파일(mcpServers 섹션)에 roundtable-mcp를 추가합니다:

{
  "mcpServers": {
    "roundtable": {
      "command": "node",
      "args": ["/path/to/roundtable-mcp/dist/index.js"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "DEEPSEEK_API_KEY": "sk-...",
        "OPENAI_API_KEY": "sk-...",
        "GEMINI_API_KEY": "AIzaSy..."
      }
    }
  }
}

⚙️ config.json에 새 모델 추가

OpenAI 호환 제공자(DeepSeek, Groq, Together AI, Mistral, LM Studio, vLLM)를 쉽게 추가할 수 있습니다:

{
  "id": "qwen-coder-local",
  "name": "Qwen 2.5 Coder (Local)",
  "role": "Low-Level Shader & GPU Optimization Specialist",
  "provider": "ollama",
  "endpoint": "http://localhost:11434/api/generate",
  "model": "qwen2.5-coder:32b",
  "enabled": true
}

💡 100% 무료 멀티 모델 스택 예시

로컬 Ollama 모델과 무료 클라우드 API 티어(GitHub Models, Google AI Studio, Groq)를 결합하여 완전히 무료로 멀티 모델 Roundtable 설정을 실행할 수 있습니다:

{
  "models": [
    {
      "id": "gpt4o-free",
      "name": "GPT-4o (GitHub Free)",
      "role": "Systems Performance & Refactoring Specialist",
      "provider": "openai-compatible",
      "endpoint": "https://models.github.ai/inference/chat/completions",
      "model": "gpt-4o",
      "api_key_env": "GITHUB_TOKEN",
      "enabled": true
    },
    {
      "id": "gemini-free",
      "name": "Gemini 2.5 Flash (Google Free)",
      "role": "Lead Architect & Synthesizer",
      "provider": "google",
      "model": "gemini-2.5-flash",
      "api_key_env": "GEMINI_API_KEY",
      "enabled": true
    },
    {
      "id": "gemma-local",
      "name": "Gemma 4 (Local Ollama)",
      "role": "Primary Implementation Engineer",
      "provider": "ollama",
      "endpoint": "http://localhost:11434/api/generate",
      "model": "gemma4-26b-128k:latest",
      "enabled": true
    },
    {
      "id": "deepseek-free",
      "name": "DeepSeek R1 (Groq Free)",
      "role": "Deep Reasoning & Math Specialist",
      "provider": "openai-compatible",
      "endpoint": "https://api.groq.com/openai/v1/chat/completions",
      "model": "deepseek-r1-distill-llama-70b",
      "api_key_env": "GROQ_API_KEY",
      "enabled": true
    }
  ]
}

📄 라이선스

MIT 라이선스. 자유롭게 사용, 수정 및 배포하세요!

Available Tools

6 tools
list_preset_rolesA

Lists all pre-built preset roles available to assign in Roundtable (e.g., qa_tester, cicd_engineer, security_auditor).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It states the tool lists *all* pre-built roles, which indicates a complete, unfiltered read operation, and adds examples to clarify what types of roles are included. However, it does not mention the return format or any potential for empty results, which would be even more transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the action and resource with helpful examples. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description covers the essential purpose and gives concrete examples. It could mention whether the list is exhaustive or just a subset, but 'all' addresses that. It lacks explicit return format details, but that is not critical for such a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so the baseline is 4. The description provides contextual value by giving examples of valid role names, which helps the agent understand what to expect. No parameter details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Lists' and clearly identifies the resource as 'all pre-built preset roles available to assign in Roundtable'. It includes concrete examples, which distinguishes it from sibling tools like list_roundtable_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used when you need to see available preset roles, but it does not explicitly state when to use it over alternatives or provide exclusions. The sibling tool list_roundtable_models exists for models, not roles, but the description does not make this differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_roundtable_modelsA

Lists all registered expert models and their roles on the Roundtable.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It correctly identifies the tool as read-only ('lists'), which implies no destructive side effects. However, it does not state whether results are cached, require authentication, or reflect real-time changes. A 3 is appropriate as it meets the minimum for a safe read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words, concise and front-loaded with the verb 'lists.' Every word earns its place, and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no annotations, and no output schema, the description is reasonably complete for a simple listing operation. It explains what is listed (models and roles). A missing piece is whether the list is of all available models or only those currently activated, but 4 is fair given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0 parameters with 100% coverage, so the baseline is 3. The description adds value beyond the schema by specifying that the output includes not just model names but also 'their roles,' giving context about what each model does. This justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'lists' and specifies the resource ('all registered expert models and their roles on the Roundtable'), providing a clear and specific purpose. It distinguishes itself from siblings like 'run_roundtable' and 'route_prompt' by focusing on listing models, not executing or routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'list_preset_roles' (which likely lists roles rather than model-role mappings). There is no mention of prerequisites, such as whether the Roundtable must be initialized first, or when listing models is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_promptA

Routes prompt to a single specific expert model or auto-detects target based on prompt triggers.

NameRequiredDescriptionDefault
promptYes
target_model_idNoID of the target model (e.g., 'gemma-local', 'claude-sonnet', 'deepseek-r1').

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It only states the core action and auto-detection, but omits details like what happens when both parameters are provided, error handling, authentication requirements, or how auto-detection triggers work.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence of 16 words that conveys the essential function without any redundancy. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no output schema, the description covers the basic purpose but leaves gaps around auto-detection behavior, error scenarios, and parameter interaction. It is minimally adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (prompt missing description). The description adds context that 'prompt' is the input to be routed, which is helpful but does not specify format or constraints. For 'target_model_id', the schema already provides a clear description with examples, so the description adds no extra value. Baseline 3 is appropriate given borderline coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('routes prompt') and resource ('specific expert model'), distinguishing it from siblings like 'run_roundtable' which likely sends to multiple models. The mention of 'auto-detects' further clarifies the tool's dual mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly suggests when to use this tool (single model routing vs. auto-detection) but does not explicitly contrast with alternatives like 'run_roundtable' or state when not to use it. No exclusions or prerequisites are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_roundtableA

Executes a prompt across the Roundtable of expert models in parallel and synthesizes a role-based council report. Automatically logs session notes to Obsidian vault if configured.

NameRequiredDescriptionDefault
promptYesThe task or question to submit to the Roundtable panel.
include_modelsNoOptional filter: array of model IDs to include (e.g. ['gemma-local', 'claude-sonnet']). Omit to run all enabled models.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full transparency burden. It discloses the parallel execution and automatic logging side-effect, but does not cover failure modes, required permissions, rate limits, or whether the tool modifies any state. The logging behavior is useful but partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The main action is front-loaded and the optional side-effect is stated clearly. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should explain return values more clearly. While it states the output is a 'role-based council report', it does not specify format, structure, or how the agent can use it. The description is adequate but leaves ambiguity about the result, which is important for a tool that produces synthesized output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers both parameters (prompt and include_models) with descriptions, achieving 100% schema description coverage. The tool description itself adds no additional meaning for either parameter beyond what the schema already provides. Baseline 3 is appropriate as no extra semantic value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a prompt across multiple expert models in parallel and synthesizes a role-based report, with an optional side-effect of logging to Obsidian. This is a specific verb+resource combination that distinguishes it from siblings like route_prompt (single model) or list_roundtable_models (listing only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for parallel multi-model queries and mentions automatic logging, but it does not explicitly state when to use this tool versus route_prompt or other alternatives. There are no exclusion criteria or prerequisites, though the context of sibling tools provides indirect guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_to_obsidianB

Saves a session summary or custom markdown note directly into the configured Obsidian Vault.

NameRequiredDescriptionDefault
titleYesTitle of the note.
contentYesMarkdown content to save.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose all behavioral traits. It does not mention that this tool is a write operation (could overwrite existing files), schema constraints (e.g., content size limits, character limits), or whether it requires specific configuration or authentication. This leaves the agent with critical unknowns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that front-loads the key action and resource. It is concise with no wasted words, though it could benefit from minor behavioral disclosure without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (2 params, no nested objects, no enums, no output schema) and lack of annotations, the description should be more complete. It does not explain return behavior, overwrite semantics, or note location, leaving significant gaps for an agent to determine success or errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters: 'title' is 'Title of the note' and 'content' is 'Markdown content to save.' The description itself does not add new meaning beyond the schema, so a baseline score of 3 is appropriate given perfect schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves a session summary or custom markdown note into a configured Obsidian Vault. The verb 'saves' and the resource 'Obsidian Vault' are specific, and the description distinguishes it from siblings like search_obsidian_memory which searches rather than saves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for saving notes, but it does not explicitly state when to use it versus alternatives like search_obsidian_memory. No exclusions or when-not-to-use guidance is provided, which would help the agent avoid misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_obsidian_memoryB

Searches past Roundtable session notes in the configured Obsidian Vault for relevant memory snippets.

NameRequiredDescriptionDefault
queryYesKeywords or topic to search for in past Obsidian vault notes.
max_resultsNoMaximum number of past note snippets to return (default: 3).

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It does not mention result format (snippets vs full notes), limitations (e.g., scope of vault, recency, required setup), or error conditions. The agent lacks critical context about what a 'memory snippet' contains or how results are ordered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the core action. Every word is functional with no redundancy. Achieves maximum conciseness while remaining clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite few parameters and no output schema, the description omits essential context: what a 'memory snippet' looks like, whether results are ranked by relevance, and prerequisites (e.g., must have configured Obsidian vault). This forces the agent to guess the tool's behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described. The description adds no extra semantic value beyond the schema's own descriptions (e.g., 'Keywords or topic' and 'Maximum number of past note snippets'). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches Roundtable session notes in Obsidian Vault for memory snippets. The verb 'searches' and resource are explicit, distinguishing it from sibling tools like save_to_obsidian (write) or run_roundtable (conversational).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The sibling list includes other tools but no contrast or exclusion criteria (e.g., 'use this when you need specific facts, otherwise use route_prompt'). The agent must infer use case from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedlist_preset_roles
    • First observedlist_roundtable_models
    • First observedroute_prompt
    • First observedrun_roundtable
    • First observedsave_to_obsidian
    • First observedsearch_obsidian_memory

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation4/5

Tools are mostly distinct: run_roundtable vs route_prompt target different execution modes (parallel council vs single expert), while list_roundtable_models and list_preset_roles list different types of entities. However, save_to_obsidian and run_roundtable's auto-logging could slightly overlap in concept, though descriptions clarify separate intents.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (run_roundtable, route_prompt, list_roundtable_models, etc.), with verbs like 'run', 'route', 'list', 'search', 'save' clearly indicating the action. No mixing of conventions.

Tool Count4/5

6 tools is a reasonable size for a niche server focused on AI council orchestration and Obsidian integration. The count feels slightly lean (no tool for managing models directly), but it's well within the optimal range and each tool serves a distinct function.

Completeness3/5

Core workflows (listing models/roles, running roundtables, routing prompts, and saving/searching notes) are covered. However, missing operations like registering/updating custom models or deleting roundtable history leave notable gaps for a fully autonomous workflow.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers