GDB MCP server has basic tool definitions with schemas and descriptions present, but significant quality gaps limit production readiness. All 4 tools have descriptions (10-50 chars, mostly short) and input schemas with type definitions. However, descriptions lack depth, they state WHAT but not WHEN or WHY to use each tool, and lack error recovery guidance. Parameter descriptions are minimal (e.g., 'Session ID' for 'id' param). Output schemas are not documented, callers cannot predict response structure. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear write/read semantics. Error handling is absent from visible code; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Tool composition is reasonable (open/call/close/list_sessions form a coherent session lifecycle), but missing idempotency guarantees and confirmation patterns for destructive operations.
Send a command to a GDB session
Close a GDB session
List all active GDB sessions
Start a new GDB debugging session
Output schemas not documented. Callers cannot predict response structure (e.g., what fields does 'open' return? Is session_id guaranteed?). LLMs cannot plan downstream tool calls without knowing what data is available.
Descriptions are too short (10-50 chars) and lack context. 'Send a command to a GDB session' does not explain WHEN to use 'call' vs 'open', what happens on error, or what the command syntax is. Descriptions should be 50-200 chars with WHAT/WHEN/WHY.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). 'close' is destructive and should be marked; 'list_sessions' is read-only. Agents need this metadata to reason about side effects and retry safety.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Parameter descriptions are minimal. 'id' is described as 'Session ID' but does not explain format, where to get it, or what happens if invalid. 'command' lacks syntax guidance (GDB CLI vs MI? Allowed commands?).
No error handling guidance visible. Code shows try/except in handle_call_tool but no recovery hints returned to LLM. Errors should categorize as retryable/user-fixable/fatal and suggest next steps (e.g., 'Session not found. Call list_sessions() to see active sessions.').