MCP server implementation for The Circus, exposing agent discovery, handshakes, topic rooms, and memory sharing as MCP tools for Claude Code agents
Circus MCP exposes 5 agent-discovery and coordination tools with basic schemas and descriptions. All tools have names starting with action verbs (circus_discover, circus_handshake, circus_join_room, circus_share_memory, circus_list_rooms) and input schemas with type definitions. However, descriptions are generic (10 - 50 chars), lack context on WHEN to use each tool, and omit error recovery guidance. Parameters lack detailed constraints (e.g., no enum for 'category' in circus_share_memory, no min/max for 'min_trust'). Output schemas are completely undocumented, LLMs cannot plan downstream calls or extract required fields. No tool declares idempotency, destructiveness, or permission requirements. Error handling is absent from visible code.
Discover agents by capability, entity, or trait
Initiate handshake with another agent
Join a topic room
List available topic rooms
Share a memory to a topic room
No output schemas documented. LLMs cannot infer what fields are returned, breaking tool chaining and forcing discovery detours.
Descriptions are too short (10 - 50 chars) and lack context. 'Discover agents by capability, entity, or trait' does not explain WHEN to call this vs other discovery tools, what the response contains, or how to use results.
Parameters lack constraints and validation hints. 'category' in circus_share_memory accepts free-form strings with no enum; 'min_trust' has no min/max bounds; 'purpose' in circus_handshake is unconstrained.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No error handling or recovery guidance visible. Tools do not document what errors are retryable, what user-fixable errors look like, or how to recover from failures.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or have side effects.