multi-agent-mcp
Allows use of the multi-agent MCP server with GitHub Copilot Chat in VS Code for automated software development workflows including planning, architecture, implementation, QA, and code review.
Click on "Deploy 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., "@multi-agent-mcpExecute full development workflow for a JWT authentication module in Node.js"
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.
Multi-Agent MCP Server
A sophisticated Model Context Protocol (MCP) server that orchestrates multiple AI agents to collaborate on software development projects. This system enables automated, multi-agent workflows for planning, architecture design, implementation, quality assurance, and code review.
š Features
Multi-Agent Collaboration
Product Manager: Analyzes requirements, creates user stories, prioritizes features
Software Architect: Designs system architecture, APIs, and data models
Software Engineer: Implements features with clean, efficient code
QA Engineer: Reviews code for bugs, edge cases, and vulnerabilities
Code Reviewer: Suggests improvements for readability and maintainability
MCP Tools
plan_feature- Generate detailed feature plans with user storiesdesign_architecture- Create system architecture and technical specificationsimplement_code- Generate production-ready code implementationsreview_code- Perform quality assurance and testing reviewssuggest_improvements- Provide code refactoring and optimization suggestionscollaborate- Enable multi-agent discussions and consensus buildingfull_workflow- Execute complete development lifecycle from planning to review
Automated Workflows
Full Development Cycle: Planning ā Architecture ā Implementation ā QA ā Review
Terminal Automation: Auto-executes build, test, and deployment commands
Conversation History: Maintains context across multi-agent interactions
Error Handling: Robust error recovery and retry mechanisms
Related MCP server: agent-team-mcp
š Prerequisites
Node.js 18+ and npm
TypeScript 5.3+
VS Code with GitHub Copilot Chat extension
Claude Desktop (optional, for alternative MCP client)
š ļø Installation
Clone the repository
git clone <repository-url> cd multi-agent-mcpInstall dependencies
npm installBuild the project
npm run build
āļø Configuration
VS Code Settings (Recommended)
For full automation without terminal prompts, add these settings to your VS Code User Settings:
{
"chat.tools.terminal.autoApprove": {
"/.*/": true
},
"chat.mcp.autostart": "newAndOutdated"
}Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"multi-agent": {
"command": "node",
"args": ["C:\\path\\to\\multi-agent-mcp\\build\\index.js"]
}
}
}š Usage
Starting the Server
npm startUsing with GitHub Copilot
Open VS Code with GitHub Copilot Chat
Start the MCP server in a terminal:
npm startUse the full workflow tool:
Use the full_workflow tool with:
{
"requirement": "Create a user authentication system with JWT tokens",
"language": "typescript"
}Individual Agent Tools
Plan a Feature:
Use plan_feature with:
{
"requirement": "Build a REST API for user management"
}Design Architecture:
Use design_architecture with:
{
"feature_plan": "User management API with CRUD operations",
"tech_stack": "Node.js, Express, PostgreSQL"
}Implement Code:
Use implement_code with:
{
"architecture": "REST API with Express router pattern",
"language": "typescript"
}Review Code:
Use review_code with:
{
"code": "your code here",
"context": "User authentication module"
}Multi-Agent Collaboration:
Use collaborate with:
{
"topic": "Database schema design for e-commerce platform",
"agents": "architect,engineer",
"rounds": 3
}š Project Structure
multi-agent-mcp/
āāā src/
ā āāā index.ts # Main MCP server implementation
āāā build/ # Compiled JavaScript output
āāā package.json # Dependencies and scripts
āāā tsconfig.json # TypeScript configuration
āāā OPTIMIZATIONS.md # Performance optimizations
āāā README.md # This fileš§ Development
Building
npm run buildWatch Mode
npm run watchTesting
npm testš¤ Agent Capabilities
Product Manager Agent
Requirements analysis and prioritization
User story creation with acceptance criteria
Feature planning and roadmap development
Success metrics definition
Software Architect Agent
System architecture design
Component and API specification
Data model design
Technology stack recommendations
Scalability and performance considerations
Software Engineer Agent
Clean code implementation
Algorithm optimization
Error handling and edge cases
Best practices adherence
Documentation generation
QA Engineer Agent
Code quality assessment
Bug detection and vulnerability scanning
Test case recommendations
Edge case identification
Performance bottleneck analysis
Code Reviewer Agent
Code readability evaluation
Maintainability improvements
Refactoring suggestions
Best practices validation
Performance optimizations
š Workflow Example
Input: "Create a task management web app"
1. PM Agent ā Analyzes requirements, creates user stories
2. Architect Agent ā Designs React + Node.js architecture
3. Engineer Agent ā Implements components and API endpoints
4. QA Agent ā Reviews code, suggests test cases
5. Reviewer Agent ā Recommends code improvements
Output: Complete, production-ready applicationš”ļø Security & Best Practices
Terminal Command Safety: Configurable auto-approval for development commands
Error Recovery: Robust error handling with retry mechanisms
Conversation Context: Maintains state across multi-agent interactions
Type Safety: Full TypeScript implementation with strict typing
š¤ Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/new-agentMake your changes and test thoroughly
Submit a pull request with detailed description
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š Troubleshooting
Server Won't Start
Ensure Node.js 18+ is installed:
node --versionCheck dependencies:
npm installVerify build:
npm run build
MCP Tools Not Available
Restart VS Code after configuration changes
Check VS Code settings for MCP configuration
Verify server is running:
npm start
Terminal Commands Not Auto-Executing
Update VS Code settings with terminal auto-approve rules
Restart VS Code to apply settings changes
š Performance
Response Time: < 2 seconds for typical requests
Concurrent Agents: Supports multiple simultaneous workflows
Memory Usage: Optimized for long-running sessions
Error Recovery: Automatic retry with exponential backoff
š® Future Enhancements
Additional specialized agents (DevOps, Security, UX/UI)
Integration with external APIs and services
Custom agent training and fine-tuning
Workflow templates and presets
Real-time collaboration features
Plugin system for extensibility
Built with ā¤ļø using the Model Context Protocol
Available Tools
13 toolsanalyze_codebaseC
Analyze existing codebase structure, patterns, and quality metrics
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to analyze (default: current directory) | . |
| exclude_patterns | No | File patterns to exclude (e.g., ['node_modules', 'dist']) | |
| include_patterns | No | File patterns to include (e.g., ['*.ts', '*.js']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. It doesn't indicate whether the analysis is read-only, what permissions are needed, how long it might take, or any side effects. It also doesn't describe the return format or output structure, which is important since there's no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It is appropriately sized for a tool of this complexity, though it could be slightly more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analysis of codebase), lack of annotations, and no output schema, the description is incomplete. It doesn't cover usage context, behavioral traits, or what the analysis returns. An agent would need to infer much to use it correctly among many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the three parameters including defaults and examples. The description adds no parameter details beyond what's in the schema. Per the rules, when coverage is high (>80%), the baseline score is 3 even with no parameter information in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Analyze') and resource ('codebase') with the scope of analysis (structure, patterns, quality metrics). It distinguishes itself from siblings like review_code or suggest_improvements by focusing on analysis rather than modification or review. However, it doesn't name any sibling alternatives explicitly, so it's a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like review_code or suggest_improvements. It simply states what the tool does without context for selection. This is a significant gap given the many sibling tools available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_historyB
Clear the current session's conversation history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Clear' implies destruction, but nothing states whether the wipe is permanent or reversible, whether it affects persisted history or just in-session context, or whether confirmation is required. For an irreversible-sounding mutation, that is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is tight, though its brevity is partly the under-specification problem rather than pure efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations, no output schema, and no stated permanence or side effects, the definition is too thin. An agent cannot judge blast radius or whether to confirm before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Clear') and resource ('conversation history') with scope narrowed to 'the current session'. It does not explicitly distinguish itself from the sibling get_conversation_history, but the destructive intent makes the difference inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when this should be invoked, what triggers it, or what alternatives exist (e.g., list_sessions for switching context). The agent must infer use entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
collaborateC
Multi-agent collaboration where agents discuss a topic and reach consensus through multiple rounds
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | The topic or problem to discuss (min 10 characters) | |
| agents | Yes | Comma-separated list of agents: pm, architect, engineer, qa, reviewer | |
| rounds | No | Number of discussion rounds (1-10, default: 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers very little. It does not say whether the call blocks until consensus (potentially long-running given up to 10 rounds), whether it can fail to reach consensus, whether it consumes tokens/cost, or what the consensus output looks like. 'Reach consensus' is asserted without any mechanism or failure-mode detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though arguably so terse that it leaves the operational picture incomplete; still, nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an orchestration tool with three parameters, no annotations, and no output schema, the description is too thin. It should at minimum indicate the shape of the result (consensus text, transcript, per-agent output) and whether the call is synchronous, since no structured field communicates any of that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% ā topic, agents (with pattern), and rounds (with range and default) are all documented in the schema itself. The description adds nothing about parameter behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific capability: multi-agent discussion of a topic toward consensus across multiple rounds. That is more than a restated name and an agent can form a mental model of the operation. It does not, however, contrast itself with workflow siblings like full_workflow or plan_feature, which also orchestrate multiple agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this tool versus the many workflow siblings (full_workflow, plan_feature, design_architecture). No prerequisites, no indication of whether it is a standalone discussion or a step inside a larger pipeline. The agent must guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
design_architectureC
Architect designs the system architecture, data models, APIs, and scalability approach
| Name | Required | Description | Default |
|---|---|---|---|
| tech_stack | No | Preferred technology stack or constraints | |
| constraints | No | Technical constraints or requirements | |
| feature_plan | Yes | The feature plan from the Product Manager (min 20 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden, yet it says nothing about whether this mutates state, what it costs, how long it takes, or what form the design output takes. It only implies a pipeline role via the word 'Architect'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing the design outputs, with no filler or repetition. It is efficient, though it spends its words on a broad noun list rather than operationally useful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the definition is too thin: it does not explain the return artifact, prerequisites, or downstream handoff to implement_code. The agent gets the topic but not enough to invoke it confidently in a multi-step workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, including the feature_plan provenance and minLength. The description adds no extra syntax, format, or interaction detail beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names concrete deliverables (system architecture, data models, APIs, scalability approach), so an agent can tell what artifact this tool produces. However, it never contrasts itself with siblings like plan_feature or implement_code, and the leading 'Architect designs...' reads as a role statement rather than a distinct verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no precondition beyond the schema's 'feature plan from the Product Manager' hint, and no mention of when to prefer this over plan_feature or implement_code. The agent must infer its place in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_effortC
Product Manager estimates story points and development time for a requirement
| Name | Required | Description | Default |
|---|---|---|---|
| complexity | No | Estimated complexity level (default: unknown) | unknown |
| requirement | Yes | The requirement to estimate (min 10 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says it estimates story points and time. It doesn't disclose any behavioral traits such as whether it's a read-only operation, if it requires specific inputs, or what happens with incomplete requirements. No indication of output format (e.g., numeric estimates) despite no output schema. This is a significant gap for an estimation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core purpose. It is efficient with no wasted words, though it could be slightly more structured by including usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (estimation) and lack of annotations or output schema, the description is incomplete. It doesn't explain what the estimate returns (e.g., numerical values, confidence), nor does it provide usage guidelines. For a tool that likely produces important estimates, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description doesn't add any meaning beyond what the schema provides (e.g., how complexity influences estimates or expected format of requirement). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (estimates) and resource (story points and development time for a requirement), which is clear. However, it doesn't differentiate from siblings like plan_feature, and the phrasing is a bit terse. It conveys the core purpose but lacks precision about what exactly is estimated (story points and time) and how it fits in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like plan_feature or design_architecture is provided. The description merely states what it does, leaving the agent to infer usage context. There is no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
full_workflowB
Execute complete development workflow: planning ā architecture ā implementation ā QA ā review
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Programming language (default: typescript) | typescript |
| requirement | Yes | The feature requirement to implement (min 10 characters) | |
| include_tests | No | Include test generation (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reveals only the ordered phases; it says nothing about runtime/latency, whether it writes files or mutates state, permission needs, or what artifacts it returns ā critical gaps for a multi-stage orchestrator with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste, using the arrow chain to compactly convey sequence. It is efficient, though it is arguably too terse for the complexity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity orchestration tool with no annotations, no output schema, and no side-effect or result information, the description is insufficient. An agent cannot anticipate cost, duration, or outputs before committing to this broad multi-stage call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with defaults and constraints documented inline (typescript default, min 10 chars, include_tests default true). The description adds no parameter-level meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Execute') and resource ('complete development workflow') and enumerates the phases (planning, architecture, implementation, QA, review), which maps onto the sibling stage tools. It is clear what the tool does, though it never names those siblings or clarifies the distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'complete workflow' framing implicitly signals use when an agent wants the entire pipeline rather than a single stage, but there is no explicit when-to-use, when-not-to-use, or alternative (e.g. the per-stage siblings). Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_testsC
Engineer generates comprehensive test suite for the provided code
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to generate tests for (min 10 characters) | |
| test_framework | No | Testing framework to use (default: jest) | jest |
| coverage_target | No | Target code coverage percentage (default: 80) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It doesn't disclose what the generated tests look like, whether they are saved to files, how they are returned, or any constraints (e.g., may not achieve 100% coverage). Nothing about side effects or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, and no wasted words. It could be slightly more specific but is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, no output schema, and no annotations. The description is minimal and doesn't compensate for the lack of structured behavioral data. It should explain return values, test generation behavior, or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'generates comprehensive test suite for the provided code.' Clear what the tool does. However, it doesn't differentiate from siblings like implement_code or review_code, leaving some ambiguity about where it fits in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention when to call it (e.g., after writing code, before review) or what prerequisites exist. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversation_historyC
Retrieve the multi-agent conversation history with optional filtering
| Name | Required | Description | Default |
|---|---|---|---|
| last_n | No | Number of recent messages to retrieve (default: all) | |
| agent_filter | No | Filter by specific agent (pm, architect, engineer, qa, reviewer) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Retrieve' implies a read, but nothing states ordering of messages, pagination/truncation behavior with last_n, scope (which session/conversation), or whether results are live versus persisted. For a no-annotation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is efficient. It is arguably too terse for the missing behavioral context, but on structure alone it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-optional-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It never clarifies which conversation is scoped (no session identifier parameter) or how last_n interacts with agent_filter, leaving a real ambiguity an agent could trip on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (last_n default 'all', agent_filter with value hints) are documented in the schema itself. The description adds no extra meaning such as sort order or filter semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (multi-agent conversation history), which is clearly distinct from siblings like clear_history and list_sessions. It stops short of explicitly naming the alternatives it is differentiated from, so it does not quite reach a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only 'with optional filtering' hints at how the tool is used; there is no statement of when to call it versus clear_history, list_sessions, or the workflow siblings. The agent must infer usage entirely from the parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
implement_codeC
Engineer implements the feature with clean, tested, production-ready code
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Programming language to use (default: typescript) | typescript |
| file_path | No | File path where code should be implemented | |
| architecture | Yes | The architecture design from the Architect (min 20 characters) | |
| test_coverage | No | Include unit tests (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies code creation and mentions testing, but does not disclose filesystem side effects, overwrite behavior, permissions, or what 'production-ready' guarantees; the mutation nature is only implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficiently structured, though arguably too sparse for a mutation tool with four parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a code implementation tool with no annotations and no output schema, the description lacks prerequisites, side effects, return behavior, and workflow positioning. An agent cannot tell what gets written, whether files are overwritten, or how this fits with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description's mention of 'tested' loosely maps to test_coverage, but it adds no syntax, format, or meaning beyond what the input schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'implements' and resource 'feature' with quality attributes 'clean, tested, production-ready code.' It distinguishes itself from planning/design siblings implicitly, but does not name alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative guidance is provided. The required 'architecture' parameter implies a prerequisite, but the description offers no routing guidance among siblings like plan_feature, design_architecture, or generate_tests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sessionsB
List all available conversation sessions
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It doesn't disclose whether sessions are scoped to a user, whether results are paginated, ordering, or return format. For a listing tool, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded and wastes no words, though it is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description should explain what a 'session' is, how results are returned, and any scoping. It leaves the agent guessing about return values and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which sets the baseline at 4. The description correctly implies no filtering or inputs are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'List all available conversation sessions'. It distinguishes itself from siblings like get_conversation_history, but doesn't explicitly differentiate the scope (all sessions vs. a single conversation's history).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage is to enumerate sessions, but there is no explicit when-to-use or when-not-to-use guidance, and no alternative tools are mentioned, even though get_conversation_history is a nearby sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_featureC
Product Manager analyzes requirements and creates a detailed feature plan with user stories, acceptance criteria, and success metrics
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Additional context about the project or constraints | |
| priority | No | Feature priority level | |
| requirement | Yes | The feature requirement or user request (min 10 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the shape of the generated content (user stories, acceptance criteria, success metrics), which is useful, but says nothing about whether anything is persisted, whether the result is deterministic, what permissions are needed, or whether it mutates project state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though the brevity comes at the cost of omitting workflow routing that would make the sentence more actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partly compensates by naming the deliverables of the plan. However, for a workflow tool sitting among design_architecture, implement_code, and full_workflow siblings, the absence of sequencing or scope guidance leaves the agent guessing when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear per-parameter descriptions and an enum for priority, so the schema already does the heavy lifting. The description adds no parameter-level meaning (e.g., how 'context' or 'priority' influence the generated plan), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific actor (Product Manager), verb (analyzes, creates), and resource (detailed feature plan), plus the artifacts produced (user stories, acceptance criteria, success metrics). This distinguishes it reasonably from siblings like design_architecture or implement_code, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing says whether this runs before design_architecture, whether it is a prerequisite for implement_code, or what input qualifies. The agent must infer placement in the workflow entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_codeC
QA Engineer performs comprehensive code review for bugs, security, edge cases, and test coverage
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to review (min 10 characters) | |
| context | No | Context about what the code should do | |
| focus_areas | No | Specific areas to focus on (e.g., ['security', 'performance']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses little: no mention of whether the review is read-only, whether findings are returned as text or structured issues, latency, or auth requirements. The enumerated focus areas hint at scope but not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler. It front-loads the persona ('QA Engineer') rather than the action verb, which is a minor structural weakness for an agent scanning for the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what a review returns (findings format, severity, or summary) and it does not. For an analysis tool with three parameters and no annotation coverage, the definition leaves the agent guessing about result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters documented including examples for focus_areas, so the schema does the heavy lifting. The description adds nothing about parameter meaning beyond what the schema already provides, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('performs... code review') plus the resource ('code') and enumerates the review dimensions (bugs, security, edge cases, test coverage). It differentiates itself reasonably from analyze_codebase and suggest_improvements by framing the work as QA-style review, though it never names a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this over suggest_improvements, analyze_codebase, or generate_tests, and no prerequisites or exclusion conditions are stated. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_improvementsB
Code Reviewer suggests improvements for readability, maintainability, and performance
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code to review for improvements (min 10 characters) | |
| focus_areas | No | Specific areas to focus on (e.g., 'performance, readability') | |
| performance_critical | No | Whether performance is critical for this code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only suggestion operation but does not state whether it modifies code, requires permissions, has rate limits, or what the output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (3 parameters, full schema coverage, no output schema), the description is minimally adequate. However, it omits important context such as how this tool relates to 'review_code' and what the agent should expect as a result, leaving gaps for proper tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters thoroughly. The description only echoes the focus areas (readability, maintainability, performance) without adding syntax or format details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('suggests improvements') and target areas (readability, maintainability, performance), making the tool's function clear. However, it does not distinguish this tool from the sibling 'review_code', leaving ambiguity about how the two differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as 'review_code' or 'analyze_codebase'. The description provides no prerequisites, exclusions, or context for selection.
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.
13 tool updates
v2.0.0- First observed
analyze_codebase - First observed
clear_history - First observed
collaborate - First observed
design_architecture - First observed
estimate_effort - First observed
full_workflow - First observed
generate_tests - First observed
get_conversation_history - First observed
implement_code - First observed
list_sessions - First observed
plan_feature - First observed
review_code - First observed
suggest_improvements
TDQS
Scored across 13 tools
Most tools target distinct roles and phases, but review_code and suggest_improvements both analyze code for quality, and analyze_codebase overlaps with review activities. The boundaries are clear enough that agents can select correctly with minor caution.
Strong verb_noun pattern for most tools (plan_feature, design_architecture, implement_code, etc.), but collaborate is just a verb and full_workflow uses an adjective_noun form. The outliers are readable and not confusing, just less consistent.
13 tools is well-scoped for a multi-agent development workflow covering planning, architecture, implementation, review, testing, estimation, collaboration, and session management. Each tool clearly earns its place.
The surface covers the core development lifecycle end-to-end, including a full_workflow orchestrator and session history management. Minor gaps exist around explicit session creation or non-destructive session deletion, but agents can work around them.
Related MCP Connectors
Coordinate coding agents through MCP using existing AI plans, saved work, and independent checks.
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
The project brain for AI coding agents ā memory, decisions, sprints, knowledge base via MCP.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCoordinates specialized agents (Architecture, Quality, Cloud, Prompt) to plan, build, test, and deploy applications with self-healing capabilities, authentication, and analytics for autonomous software engineering workflows.1MIT
- AlicenseNot gradedqualityCmaintenanceA reusable AI software development team built on MCP. 13 specialized agents (Project Manager, Backend, Frontend, QA, Security, DevOps, UX, and more) collaborate via shared SQLite state. Exposes 44 MCP tools across 12 domains. All discussions and decisions are stored in the database so agents get back up to speed immediately when re-loaded.MIT
- AlicenseBqualityFmaintenanceEnables orchestrating multiple AI CLI agents (Claude Code, Codex, Gemini CLI, Copilot CLI) through a unified MCP interface for task delegation, cross-agent comparison, and specialized tools like code review and debugging.144 npm14MIT
- FlicenseNot gradedqualityDmaintenanceEnables users to generate complete, production-ready software projects from simple ideas by coordinating 8 specialized AI agents through the Model Context Protocol.4-