Skip to main content
Glama
smridhiwho

open-india-law-mcp

by smridhiwho

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HF_TOKENNoHugging Face token. Not required for the public dataset, but set it if you hit Hugging Face rate limits.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_catalogA

List the parquet files that actually exist in the dataset right now, grouped into judgments (by court), regulations (by issuing body), and legislation (by jurisdiction). Call this first -- it's how you find the exact court/state/body names the other tools expect, and it hands back the hf:// URI for each file for use with run_sql.

Set refresh=True to bypass the 15-minute cache and re-check the repo.

get_schemaA

Return the real column names and types for a parquet file, given the hf:// URI you got from list_catalog. Use this before run_sql if you're not sure a field exists -- the plain court-judgment files don't have a schema documented anywhere.

run_sqlA

Run a read-only SELECT against one or more Open India Law parquet files, referenced by the hf:// URIs from list_catalog, e.g.:

SELECT act_id, title, section_number, section_title
FROM read_parquet('hf://datasets/vaquill/open-india-law/in_central_legislation.parquet')
WHERE text ILIKE '%arbitration%' AND act_status = 'in_force'
ORDER BY year DESC

Only a single SELECT/WITH statement is allowed -- no DDL/DML, no multiple statements. limit is capped at 200 rows regardless of what the query asks for, since these files can be tens of GB and a filter still has to scan every row group it can't rule out via column stats. Narrow with a specific file (one court/state/regulator), a year range, and an indexed-looking equality filter (act_id, case_id) wherever you can -- it's the difference between a sub-second query and a slow scan.

search_legislationA

Search Indian legislation at the section level for one jurisdiction.

  • query: free-text search over the section text, act title and section title (ILIKE, so it's a substring match, not ranked relevance).

  • state: jurisdiction slug, e.g. "central", "kerala", "west bengal". Fuzzy-matched against list_catalog's legislation_by_state keys.

  • act_id: exact match, e.g. "IND_central_1860_45", if you already know it.

  • in_force_only: excludes repealed/spent acts by default.

Each result includes source_url -- the authoritative government page for that exact provision.

get_actA

Fetch every section of one Act, in section order.

state is optional -- it's inferred from the act_id itself when omitted (e.g. "IND_west_bengal_1947_12" implies state="west_bengal"). Pass it explicitly if that inference is wrong.

search_regulationsA

Search one regulator's instruments at the provision level, e.g. body="SEBI" or body="RBI". Same query semantics as search_legislation -- the regulator files share the same provision schema. Use list_catalog() to see which regulator slugs are currently published.

search_judgmentsA

Full-text search over one court's judgment chunks.

court is required and fuzzy-matched (e.g. "Bombay", "bombay high court") against list_catalog()['courts'] -- searching all 26 courts in one call would mean scanning tens of millions of chunks. Narrow further with year_from/year_to when you can; it prunes row groups instead of reading them.

Results are individual chunks, not whole judgments -- use get_judgment with the returned case_id to reassemble the full text of any hit.

get_judgmentB

Reassemble a full judgment from its chunks, ordered by chunk index.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
aboutStatic overview of the dataset, its license and its caveats.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/smridhiwho/india-law-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server