MCP server for running goose agents with GitHub integration
Single tool 'goose-run' has a basic schema with 4 parameters (name, prompt, instruction, repo), all with type and description. However, the tool description is minimal (11 chars: 'Run a goose agent'), falling well below the 34-char baseline for p10. No output schema is documented, the tool returns text content but LLMs cannot predict structure. Error handling returns generic error messages without recovery guidance. The tool combines multiple concerns (agent initialization, GitHub integration, execution) into one operation, violating single-responsibility. No idempotency guarantees, no pagination, no structured output schema. Parameter descriptions are terse (e.g., 'goose agent name' lacks context on what a 'goose agent' is or how to name one). The tool name 'goose-run' is generic and does not clearly convey the action, 'execute_goose_agent' or 'run_code_analysis_agent' would be clearer.
Run a goose agent
Tool description is 11 characters ('Run a goose agent'), far below the 34-char p10 baseline. LLMs cannot determine when or why to select this tool. Descriptions must explain WHAT it does, WHEN to use it, and any prerequisites.
No output schema documented. Tool returns text content but LLMs cannot predict structure, field names, or downstream tool compatibility. Must document return type (e.g., 'Returns a JSON object with fields: status, output, errors').
Error messages lack recovery guidance. Errors return raw text (e.g., 'OPENROUTER_API_KEY is not set') without telling the LLM what to do next. Must categorize errors as retryable/user-fixable/fatal and suggest next steps.
Tool name 'goose-run' is generic and does not start with a clear action verb. 'run' is vague, does it execute code, run tests, or run an agent? Rename to 'execute_code_analysis' or 'run_agent_task' to clarify intent.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | <=2025-11-25 | v2 |
Parameter 'instruction' is optional but its relationship to 'prompt' is undocumented. Are they mutually exclusive? Does instruction override prompt? Must clarify dependencies in parameter descriptions.