MCP server for accessing German parliament (Bundestag) plenary protocols
Single tool with minimal definition quality. Description exists (bilingual) but is generic and lacks actionable context for LLM selection. No parameter descriptions, no output schema documentation, no error handling guidance. The tool returns raw XML as a string with no structure, pagination, or field documentation. No validation, no recovery hints.
Get the protocol of the last German parliament session. Das Protokoll der letzten Plenarsitzung des Deutschen Bundestags.
Empty input schema ({}). Tool accepts no parameters but provides no documentation of what it does or when to call it.
No output schema documented. Tool returns raw XML string with no field descriptions, structure hints, or guidance on how to parse or use the response. LLM cannot plan downstream actions.
Description is generic and bilingual (35 chars in English). Lacks WHEN to use, WHAT it returns, and WHY to call it instead of alternatives. Does not meet 50-200 char LLM-optimized baseline.
No error handling or recovery guidance. Code catches all exceptions silently (returns None), but tool description does not explain failure modes or what LLM should do if API is unavailable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
API key exposed as environment variable without server-side secret injection pattern. If agent logs or traces tool calls, credentials could leak. No scope declaration or permission gating.