MCP server exposing Puerto Rico legislative data (Asamblea Legislativa) to any agent. Tools call an x402 HTTP API; when the server charges, the agent auto-pays via its own wallet.
Two tools with clear naming (search_*, get_*) and reasonable descriptions (120 - 150 chars). Input schemas are visible and typed via Zod (SearchInput, GetBillInput). However, parameter descriptions are sparse or missing entirely, 'query' and 'identifier' lack detail on format/constraints. Output schema is undocumented; responses are raw JSON stringified without field-level guidance. No error handling guidance for agents (e.g., 'bill not found' recovery). Composition is sound (search → detail chain), but parameter constraints (e.g., limit 1 - 25) are enforced in code, not declared in schema descriptions for LLM visibility.
Get full detail for one Puerto Rico legislative measure by identifier: abstract, sponsors, and action history.
Search measures (proyectos y resoluciones) of the Puerto Rico Legislative Assembly by text, chamber, or status. Returns summary rows.
Parameter descriptions lack format/constraint details. 'query' does not explain free-text matching scope; 'identifier' does not specify format (e.g., 'PC 456' vs 'ps-123'). LLMs cannot infer valid input without explicit guidance.
Output schema is undocumented. Responses are raw JSON stringified to text; no field-level schema or guidance on what fields to expect. Agents cannot plan downstream calls or extract structured data reliably.
No error handling guidance. If a bill identifier is invalid or not found, the tool throws a generic 'API error' with no recovery hint. Agents cannot self-correct or suggest alternatives.
Parameter constraints (limit 1 - 25, enum chamber values) are enforced in code but not declared in schema descriptions. LLMs rely on description text to understand constraints; JSON Schema patterns are not visible to LLMs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
No pagination guidance in search_pr_legislation description. If results exceed limit, agents do not know how to fetch the next page or whether a next_cursor is available.