{"serverId":"mcp-registry/ai.roopslaw/legalsearch","tools":[{"name":"roop.public.corpus.status","fixed":{"name":"roop_public_corpus_status","description":"Report the public corpus surfaces exposed through this DMZ MCP.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.corpus.status\" → \"roop_public_corpus_status\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"roop.public.judgments.get_packet","fixed":{"name":"roop_public_judgments_get_packet","description":"Fetch a bounded public judgment or appellate tribunal packet by ROOP judgment id.","inputSchema":{"type":"object","required":["roop_id"],"properties":{"roop_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.judgments.get_packet\" → \"roop_public_judgments_get_packet\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":75,"tokensAfter":75},{"name":"roop.public.judgments.get_segment","fixed":{"name":"roop_public_judgments_get_segment","description":"Fetch one bounded, continuable segment of an exact public judgment by ROOP judgment id.","inputSchema":{"type":"object","required":["roop_id"],"properties":{"offset":{"type":"integer","maximum":2000000,"minimum":0},"roop_id":{"type":"string"},"max_chars":{"type":"integer","maximum":20000,"minimum":1000}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.judgments.get_segment\" → \"roop_public_judgments_get_segment\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"roop.public.judgments.search","fixed":{"name":"roop_public_judgments_search","description":"Search public Indian judgment and appellate tribunal metadata plus public snippets.","inputSchema":{"type":"object","required":["query"],"properties":{"court":{"type":"string","description":"Optional public court or tribunal code such as SC, DELHC, or NCLAT."},"limit":{"type":"integer","maximum":10,"minimum":1},"query":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.judgments.search\" → \"roop_public_judgments_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"roop.public.statutes.get_packet","fixed":{"name":"roop_public_statutes_get_packet","description":"Fetch a bounded public statute packet using the public statutes search surface.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","maximum":5,"minimum":1},"query":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.statutes.get_packet\" → \"roop_public_statutes_get_packet\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"roop.public.statutes.search","fixed":{"name":"roop_public_statutes_search","description":"Search public statutes and subordinate legislation metadata.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","maximum":20,"minimum":1},"query":{"type":"string"},"doc_kind":{"enum":["act","subordinate","draft"],"type":"string"},"state_code":{"type":"string"},"instrumentType":{"type":"string","description":"Camel-case alias for instrument_type."},"instrument_type":{"type":"string","description":"Optional instrument type filter such as rules, regulations, notification, order, circular, or form."},"jurisdiction_scope":{"enum":["central","state"],"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"name","detail":"Renamed \"roop.public.statutes.search\" → \"roop_public_statutes_search\" (letters, digits, _ and - only; max 64). Keep the old name as an alias for a release if clients already call it.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":193,"tokensAfter":193}],"toolsChanged":6,"tokensSaved":0,"todo":[{"tool":"roop_public_judgments_get_packet","params":["roop_id"]},{"tool":"roop_public_judgments_get_segment","params":["offset","roop_id","max_chars"]},{"tool":"roop_public_judgments_search","params":["limit","query"]},{"tool":"roop_public_statutes_get_packet","params":["limit","query"]},{"tool":"roop_public_statutes_search","params":["limit","query","doc_kind","state_code","jurisdiction_scope"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}