MCP server for querying active Karnataka agricultural subsidy schemes based on crop type and land size
Single tool 'search_schemes' has a clear verb-noun name and acceptable description (89 chars). Input schema is present with two parameters, both typed (string, float) and described. However, the output schema is completely undocumented, the tool returns a JSON string containing scheme objects, but no schema is declared for the response structure. Parameter descriptions are minimal (under 72 chars baseline) and lack format/constraint details. No error handling guidance, no recovery paths, and no documentation of what happens when no schemes match. The tool is READ_ONLY (good security posture) but lacks idempotent/readonly annotations. Overall, this is a bare-minimum tool definition that would not pass production code review.
Queries active Karnataka schemes based on standardized inputs.
Output schema completely undocumented. Tool returns JSON string with scheme objects (id, name, min_land_acres, max_land_acres, allowed_crops, description) but no schema is declared. LLMs cannot plan downstream operations or extract fields reliably.
Parameter descriptions lack format/constraint details. 'crop_type' should specify valid values (enum or examples: Paddy, Ragi, Jowar, Maize, Pulses, All). 'land_size_acres' should specify range (e.g., 0.1 - 10.0 acres based on scheme DB). Current descriptions invite hallucinated invalid inputs.
No error handling or recovery guidance. Tool description does not explain what happens when no schemes match, when crop_type is invalid, or when land_size_acres is out of range. LLM receives no actionable error message.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declared. Although the tool is READ_ONLY and idempotent, these properties are not formally signaled to the MCP client.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No pagination or result limits documented. If Karnataka scheme DB grows, tool could return hundreds of schemes. No limit parameter, no offset/page, no total_count in response. Large results risk context window exhaustion.