Skip to main content
Glama
pc-style

MCP Goose Subagents Server

by pc-style

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

  1. Goose CLI installed and configured

  2. Node.js (v18 through v24; the tested package compatibility bound is >=18 <25)

  3. Alpha features enabled for Goose subagents

Installation

npm install

Usage

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=true

Available Tools

delegate_to_subagents

Delegate development tasks to specialized Goose subagents.

Parameters:

  • task (string): The development task to delegate

  • agents (array): Array of subagent configurations

    • role (string): Agent role (e.g., "backend_developer", "frontend_developer")

    • instructions (string): Specific instructions for the agent

    • recipe (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 recipe

  • role (string): Agent role

  • instructions (string): Detailed instructions

  • extensions (array, optional): Goose extensions to enable

  • parameters (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 logic

  • frontend_developer - UI/UX implementation, client-side code

  • database_engineer - Schema design, query optimization

  • devops_engineer - Deployment, CI/CD, infrastructure

  • qa_engineer - Testing, quality assurance

  • security_auditor - Security review, vulnerability assessment

  • code_reviewer - Code quality, best practices

  • documentation_writer - Technical documentation, API docs

  • project_architect - System design, architecture planning

Environment Variables

  • ALPHA_FEATURES=true - Required for Goose subagents

  • GOOSE_RECIPE_PATH - Path to custom recipe directory

  • GOOSE_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

  1. Subagents not working: Ensure ALPHA_FEATURES=true is set

  2. Goose not found: Verify Goose CLI is installed and in PATH

  3. Recipe not found: Check GOOSE_RECIPE_PATH or place recipes in working directory

License

MIT

Available Tools

4 tools
create_goose_recipeC

Create a reusable Goose recipe for specialized subagents

ParametersJSON Schema
NameRequiredDescriptionDefault
recipe_nameYesName of the recipe
roleYesAgent role (e.g., code_reviewer, security_auditor)
instructionsYesDetailed instructions for the agent
extensionsNoList of Goose extensions to enable
parametersNoRecipe parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe development task to delegate to subagents
agentsYesArray of subagents to create
execution_modeNoHow to execute the subagentsparallel
working_directoryNoWorking directory for the subagents (defaults to current directory)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID to get results for

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

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 '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

B3.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An 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.
    24
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An 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.
    28
    18
    1
    MIT

Latest Blog Posts

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