A FastAPI-based MCP (Model Context Protocol) server for agent swarm operations. Generates AI agent specifications based on empire descriptions using Claude API.
Server exposes 4 tools via HTTP FastAPI endpoints. All tools have descriptions and input schemas are visible in Pydantic models. However, critical gaps exist: (1) Tool names lack action verbs, 'health_check', 'suggest_agents', 'suggest_agents_extended', 'mcp_handler' are weak; 'health_check' should be 'get_health'; 'suggest_agents' should be 'generate_agent_specs' or similar. (2) Parameter descriptions are present but generic, e.g., 'empire_name' lacks format/length guidance; 'primary_focus_domains' says 'must contain at least one item' but no enum of valid domains. (3) Output schemas are undocumented, AgentSpecificationResponse structure is not visible in provided code; LLMs cannot plan downstream calls. (4) Error handling is minimal, HTTPException(500) with generic messages provides no recovery guidance. (5) No pagination, rate limiting, or result limits documented. (6) The 'mcp_handler' tool is a placeholder with no real implementation.
Basic health check endpoint
MCP protocol endpoint (placeholder for future implementation)
Agent suggestion endpoint that generates AI agent specifications based on empire description using Claude API
Extended agent suggestion endpoint that accepts empire description in extended format with psychological/strategic dimensions and generates agent specifications
Tool names lack action verbs. 'health_check' should be 'get_health'; 'suggest_agents' should be 'generate_agent_specs' or 'create_agent_specifications'. Weak names reduce LLM's ability to infer intent from the name alone.
Output schema for AgentSpecificationResponse is not documented in provided code. LLMs cannot determine what fields to expect or plan downstream tool calls. This violates the requirement that tools document their return structure.
Parameter descriptions lack actionable constraints. 'primary_focus_domains' says 'must contain at least one item' but does not enumerate valid domains or provide format guidance. 'empire_name' has no length/character restrictions. LLMs cannot validate inputs without explicit constraints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Error handling is generic. HTTPException(500, 'Master prompt file not found') provides no recovery guidance. Should return 'Master prompt file not found. Ensure MASTER_PROMPT_PATH is configured correctly.' to guide the LLM.
'mcp_handler' is a placeholder tool with no real implementation. Returns hardcoded 'MCP endpoint ready for implementation' message. Either implement it or remove it from the tool list.