MCP server for Indian law: Constitution, IPC, CrPC, CPC, Evidence Act, BNS/BNSS/BSA 2023, commercial statutes, and landmark Supreme Court judgments.
Nyaya provides 5 read-only tools with basic descriptions and partial schemas. Tool names follow verb_noun convention (list_acts, get_section, get_article, semantic_query, cross_reference), which is good. However, descriptions are minimal (10-50 chars), falling below the 50-200 char baseline for LLM-optimized descriptions. Only 2 of 5 tools have visible input schemas with type definitions; the others lack documented parameter details. Output schemas are not documented. Error handling and recovery guidance are absent. The server is HTTP-based (fastmcp), which is current, but lacks tool annotations (readOnlyHint, idempotentHint) and structured error responses.
Find related provisions and cross-references, especially the bidirectional IPC<->BNS mapping
Retrieve a specific article from the Constitution
Retrieve a specific section from an act
List all available acts in the corpus with metadata
Perform semantic search across the corpus using embedding retrieval and reranking
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). LLMs cannot determine when to select tools or how they differ. E.g., 'List all available acts in the corpus with metadata' lacks context on what 'acts' are, when to call this vs. semantic_query, and what metadata is returned.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. E.g., does list_acts return act_id, act_name, year, jurisdiction? Does semantic_query return relevance scores, section references, or full text?
No error handling or recovery guidance. If a section number is invalid or an act is not found, the tool provides no actionable error message. LLMs cannot self-correct or suggest alternatives.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Tool annotations (readOnlyHint, idempotentHint) are absent. The spec declares all tools as READ_ONLY, but this is not reflected in the MCP schema. Agents cannot infer safety properties without explicit annotations.
Parameter descriptions are missing or generic. 'act' and 'section_number' in get_section lack format guidance (e.g., 'IPC section number as string, e.g., "377"'). 'query' in semantic_query lacks length/format constraints.