MCP server for retrieving and formatting BIN (Bank Identification Number) data from the Pagos Parrot API
Single tool with adequate naming (get_bin_data_tool) but significant gaps in schema documentation and parameter descriptions. Tool description is present (28 chars) but minimal. Input schema visible with 'bin' parameter typed as string with basic description. No output schema documented. No error handling guidance. No parameter constraints (e.g., BIN format, length). Formatting function suggests complex nested response structure, but this is not formally documented for the LLM. Tool lacks idempotency hints, permission declarations, and recovery guidance.
Get BIN data for a given BIN number.
Output schema not documented. The format_bin_data() function returns a formatted string, but LLMs need to know the structure of the underlying EnhancedBinApiResponse object to plan downstream operations. Document what fields are available in the response.
Tool description is only 28 characters ('Get BIN data for a given BIN number.'). Baseline for A+ tools is 50-200 chars. Expand to explain: What is a BIN? When should this tool be called? What data is returned? What happens if the BIN is invalid?
Parameter 'bin' lacks format constraints. No description of valid BIN format (length, numeric-only?), range, or examples. LLMs will pass arbitrary strings. Add: 'BIN number (6-19 digits, numeric only)' or use a regex pattern.
No error handling guidance. What happens if the BIN is not found? Invalid format? API timeout? Tool should return actionable error messages like 'BIN not found. Verify the BIN is 6-19 digits.' instead of raw API errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No idempotency or permission hints. Tool is read-only (correct), but this is not declared via toolAnnotations (readOnlyHint). Add readOnlyHint=true to signal the tool is safe to retry.