MCP Goose Subagents Server
Mentioned as the technology for building REST APIs in example subagent instructions, allowing for the creation of backend services with authentication.
Enables backend development capabilities for creating Node.js services and APIs through specialized subagents.
Supports frontend development through specialized subagents that can create React components and integrate them with backend APIs.
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., "@MCP Goose Subagents Servercreate a recipe for a backend developer specializing in Node.js APIs"
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.
MCP Goose Subagents Server
An MCP (Model Context Protocol) server that enables AI clients to delegate tasks to autonomous developer teams using Goose CLI subagents.
Features
Delegate to Subagents: Create specialized AI agents for different development roles
Parallel & Sequential Execution: Run agents simultaneously or in sequence
Recipe System: Create reusable agent configurations
Session Management: Track and retrieve results from active subagent sessions
Pure Goose CLI Integration: Uses only Goose CLI for subagent delegation
Related MCP server: Claude Team MCP
Prerequisites
Goose CLI installed and configured
Node.js (v18 through v24; the tested package compatibility bound is
>=18 <25)Alpha features enabled for Goose subagents
Installation
npm installUsage
1. Add to MCP Configuration
Add this server to your MCP client configuration (e.g., mcp_config.json):
{
"mcpServers": {
"goose-subagents": {
"command": "node",
"args": ["path/to/mcp-goose-subagents/src/index.js"],
"env": {
"ALPHA_FEATURES": "true"
}
}
}
}2. Enable Goose Alpha Features
export ALPHA_FEATURES=trueAvailable Tools
delegate_to_subagents
Delegate development tasks to specialized Goose subagents.
Parameters:
task(string): The development task to delegateagents(array): Array of subagent configurationsrole(string): Agent role (e.g., "backend_developer", "frontend_developer")instructions(string): Specific instructions for the agentrecipe(string, optional): Recipe name to use
execution_mode(string): "parallel" or "sequential"working_directory(string, optional): Working directory for agents
working_directory must already exist beneath GOOSE_MCP_ROOT (the server's startup directory by default). Relative or absolute paths that resolve inside the root are accepted; traversal and symlinks that resolve outside it are rejected.
Example:
{
"task": "Build a REST API with authentication",
"agents": [
{
"role": "backend_developer",
"instructions": "Create Express.js API with JWT authentication"
},
{
"role": "database_engineer",
"instructions": "Design and implement user database schema"
},
{
"role": "security_auditor",
"instructions": "Review authentication implementation for security issues"
}
],
"execution_mode": "parallel"
}create_goose_recipe
Create reusable Goose recipes for specialized subagents.
Parameters:
recipe_name(string): Name of the reciperole(string): Agent roleinstructions(string): Detailed instructionsextensions(array, optional): Goose extensions to enableparameters(object, optional): Recipe parameters
list_active_subagents
List currently active subagent sessions and their status.
get_subagent_results
Retrieve results from completed subagent sessions.
Parameters:
session_id(string): Session ID to get results for
Example Workflows
Autonomous Full-Stack Development
// Delegate a complete web app development task
{
"task": "Create a todo app with React frontend and Node.js backend",
"agents": [
{
"role": "project_architect",
"instructions": "Design overall architecture and create project structure"
},
{
"role": "backend_developer",
"instructions": "Build REST API with CRUD operations for todos"
},
{
"role": "frontend_developer",
"instructions": "Create React components and integrate with API"
},
{
"role": "qa_engineer",
"instructions": "Write tests and ensure quality standards"
}
],
"execution_mode": "sequential"
}Parallel Code Review
{
"task": "Review authentication module for security and performance",
"agents": [
{
"role": "security_auditor",
"instructions": "Analyze for security vulnerabilities and best practices"
},
{
"role": "performance_reviewer",
"instructions": "Identify performance bottlenecks and optimization opportunities"
},
{
"role": "code_quality_reviewer",
"instructions": "Check code style, maintainability, and documentation"
}
],
"execution_mode": "parallel"
}Agent Roles Examples
backend_developer- API development, server-side logicfrontend_developer- UI/UX implementation, client-side codedatabase_engineer- Schema design, query optimizationdevops_engineer- Deployment, CI/CD, infrastructureqa_engineer- Testing, quality assurancesecurity_auditor- Security review, vulnerability assessmentcode_reviewer- Code quality, best practicesdocumentation_writer- Technical documentation, API docsproject_architect- System design, architecture planning
Environment Variables
ALPHA_FEATURES=true- Required for Goose subagentsGOOSE_RECIPE_PATH- Path to custom recipe directoryGOOSE_MCP_ROOT- Trusted workspace root. Defaults to the server startup directory.GOOSE_MCP_TIMEOUT_MS- Goose process timeout in milliseconds (default 15 minutes, capped at 1 hour).
Security boundary
Tool arguments are model-controlled. This server constrains Goose's working directory and generated recipe paths to GOOSE_MCP_ROOT, invokes Goose without a shell, limits captured output, times out child processes, and terminates their process group during timeout or shutdown. Dependency versions are pinned in package.json and package-lock.json.
These are application-level guardrails, not a sandbox. Goose inherits the server's environment and operating-system permissions and may access resources outside the workspace through its own tools or subprocesses. Run the server under a dedicated, least-privileged OS account or container, expose only necessary credentials, and set GOOSE_MCP_ROOT explicitly for untrusted requests.
Troubleshooting
Subagents not working: Ensure
ALPHA_FEATURES=trueis setGoose not found: Verify Goose CLI is installed and in PATH
Recipe not found: Check
GOOSE_RECIPE_PATHor place recipes in working directory
License
MIT
Available Tools
4 toolscreate_goose_recipeC
Create a reusable Goose recipe for specialized subagents
| Name | Required | Description | Default |
|---|---|---|---|
| recipe_name | Yes | Name of the recipe | |
| role | Yes | Agent role (e.g., code_reviewer, security_auditor) | |
| instructions | Yes | Detailed instructions for the agent | |
| extensions | No | List of Goose extensions to enable | |
| parameters | No | Recipe parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'create' implying a mutation, but doesn't cover permissions, side effects, or response format. This is a significant gap for a creation tool with zero annotation coverage.
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 action and resource. It wastes no words and is appropriately sized for the tool's complexity.
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 complexity (5 parameters, nested objects, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what a 'Goose recipe' entails, how it's used, or what happens after creation, leaving critical context gaps for a mutation tool.
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 all 5 parameters. The description adds no additional meaning beyond the schema, such as examples or constraints, but doesn't need to compensate for gaps. 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 clearly states the verb 'create' and the resource 'Goose recipe for specialized subagents', making the purpose evident. It distinguishes from siblings like 'delegate_to_subagents' or 'list_active_subagents' by focusing on creation rather than delegation or listing, though it doesn't explicitly mention these distinctions.
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 'delegate_to_subagents' or 'get_subagent_results'. It lacks context on prerequisites, such as when a recipe is needed versus direct delegation, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delegate_to_subagentsC
Delegate tasks to Goose CLI subagents for autonomous development
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | The development task to delegate to subagents | |
| agents | Yes | Array of subagents to create | |
| execution_mode | No | How to execute the subagents | parallel |
| working_directory | No | Working directory for the subagents (defaults to current directory) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only mentions delegation for autonomous development. It omits critical details such as whether this is a read-only or mutating operation, authentication requirements, rate limits, error handling, or what happens after delegation (e.g., asynchronous execution). The description is insufficient for a tool with complex parameters and 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 functionality without unnecessary words. It earns its place by clearly stating the tool's purpose, making it appropriately sized and well-structured for quick comprehension.
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 (4 parameters, no output schema, no annotations), the description is incomplete. It fails to explain behavioral traits, return values, or usage context, leaving significant gaps for an agent to understand how to invoke it correctly and what to expect, despite the schema covering parameters.
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 all parameters. The description adds no additional meaning beyond implying delegation involves tasks and subagents, which aligns with the schema but doesn't enhance understanding of parameter usage or interactions. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
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 clearly states the tool's purpose as delegating tasks to Goose CLI subagents for autonomous development, specifying both the action (delegate) and target (subagents). It distinguishes from siblings like create_goose_recipe (recipe creation) and get_subagent_results (result retrieval), but doesn't explicitly contrast with list_active_subagents (listing 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?
The description provides no guidance on when to use this tool versus alternatives like get_subagent_results for checking outcomes or list_active_subagents for monitoring. It lacks context about prerequisites, appropriate scenarios, or exclusions, offering only a basic functional statement without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subagent_resultsC
Get results from completed subagents
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to get results for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the tool retrieves results but doesn't disclose details like whether it's read-only, if it requires specific permissions, how results are formatted, or potential errors (e.g., for invalid session IDs). This leaves significant gaps for an agent to understand operational traits.
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 directly states the tool's function without unnecessary words. However, it could be more front-loaded with key details (e.g., clarifying 'completed' subagents), but it avoids redundancy and is appropriately sized for a simple tool.
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 no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'results' include (e.g., data format, success/failure status), behavioral aspects like error handling, or how it integrates with sibling tools. For a tool that likely returns structured data, this leaves the agent under-informed.
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 the single parameter 'session_id' documented in the schema as 'Session ID to get results for'. The description adds no additional meaning beyond this, such as format examples or context on where session IDs come from. Baseline 3 is appropriate since the schema adequately covers the parameter.
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 'Get results from completed subagents' clearly indicates the action (get) and target resource (results from subagents), but it's somewhat vague about what 'results' specifically entail. It doesn't differentiate from sibling tools like 'list_active_subagents' or 'delegate_to_subagents', leaving ambiguity about scope and relationship.
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. It doesn't mention prerequisites (e.g., that subagents must be completed), exclusions, or how it relates to siblings like 'list_active_subagents' for active ones or 'delegate_to_subagents' for initiating tasks. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_active_subagentsB
List currently active subagents and their status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't describe what 'active' means, how status is reported, whether this is a read-only operation, or any limitations like rate limits. This leaves significant gaps for a tool that might involve dynamic system 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?
The description is a single, efficient sentence that front-loads the core purpose with zero wasted words. It's appropriately sized for a simple listing tool with no 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?
Given the complexity of listing active subagents (which involves dynamic system state), no annotations, and no output schema, the description is incomplete. It doesn't explain what information is returned, how 'active' is defined, or any behavioral aspects, leaving the agent with insufficient context for reliable use.
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 has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it correctly implies no required inputs by not mentioning any, earning a baseline score for zero-parameter tools.
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 clearly states the verb ('List') and resource ('currently active subagents and their status'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'get_subagent_results' which might retrieve specific results rather than list active agents, but the distinction isn't explicit.
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 is provided on when to use this tool versus alternatives like 'get_subagent_results' or 'delegate_to_subagents'. The description implies usage for checking active subagents, but lacks explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: create_goose_recipe handles recipe creation, delegate_to_subagents initiates task delegation, get_subagent_results retrieves results, and list_active_subagents monitors subagent status. The descriptions clearly differentiate their functions, making misselection unlikely.
All tool names follow a consistent verb_noun pattern (create_goose_recipe, delegate_to_subagents, get_subagent_results, list_active_subagents) with snake_case throughout. The naming is predictable and readable, with no deviations in style or convention.
With 4 tools, the count is reasonable for managing subagents, covering creation, delegation, result retrieval, and status listing. It is slightly lean but well-scoped for the apparent purpose, though additional tools for updating or deleting recipes might be expected in a more comprehensive set.
The tool set covers core workflows: creating recipes, delegating tasks, getting results, and monitoring status. Minor gaps exist, such as no tools for updating or deleting recipes, and no direct control over subagents (e.g., stopping them), but agents can likely work around these with the provided operations.
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 Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP Server for an Agent Task Marketplace
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that enables AI clients to delegate tasks to autonomous developer teams using Goose CLI subagents, supporting parallel and sequential execution across specialized roles like backend developers, frontend developers, and security auditors.4
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that turns multiple AI coding agents into a coordinated team that chats, debates, remembers, audits security, and works in parallel on the same project.MIT
- AlicenseAqualityCmaintenanceAn MCP server that turns independent AI agents into a coordinated engineering team with shared task board, context, review loop, and enforced plan-implement-review-iterate workflow.24MIT
- AlicenseBqualityCmaintenanceAn MCP server that lets any AI tool delegate tasks to the OpenCode CLI as a subagent, with multi-session orchestration, event tracking, and task contracts.28181MIT
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/pc-style/goose-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server