Indian Legal MCP

Structured access to 10 major Indian legal texts (BNS, IPC, etc) for AI agents.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
91%
Naming quality
75%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'indian_legal_mcp_get_section_range' name length outside 3-30 rangein indian_legal_mcp_get_section_range
  • LOWTool 'indian_legal_mcp_search_keyword' name length outside 3-30 rangein indian_legal_mcp_search_keyword

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,042Tokens (tool definitions)
~557 BTypical response size
Moderate attention impact (0.81% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "indian-legal-mcp": {
      "url": "https://gsms-b-indian-legal-mcp.hf.space/gradio_api/mcp/"
    }
  }
}

Remote endpoints

https://gsms-b-indian-legal-mcp.hf.space/gradio_api/mcp/streamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢indian_legal_mcp_list_acts

List all available Acts in the database, with metadata and descriptions. Use this to see which legal codes are supported or find short codes.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢indian_legal_mcp_get_act_info(act_code)

Get metadata about one specific Act: its full name, year enacted, and whether it is still current law or has been repealed and replaced by something newer.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "short code, one of BNS, BNSS, BSA, IPC, CRPC, IEA, COI, CPC, MVA, NIA."
    }
  },
  "required": [
    "act_code"
  ]
}
🟢indian_legal_mcp_get_section(act_code, section_number)

[AI TOOL ORCHESTRATION INSTRUCTION: Only use this tool AFTER you have found the exact section number via search_keyword, or if the user explicitly provided it.] Get the exact text of ONE section (or Constitution article) by its number. Use this when someone asks about a specific, known section number, e.g. 'what does BNS Section 103 say' or 'show me IPC 302'. If the Act is repealed (IPC, CRPC, or IEA), the result includes a note that it no longer applies to new cases and names what replaced it.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "e.g. 'BNS', 'IPC', 'COI'."
    },
    "section_number": {
      "type": "string",
      "description": "e.g. '103', '25A', '0' (Preamble), '394A'. Always given as a string."
    }
  },
  "required": [
    "act_code",
    "section_number"
  ]
}
🟢indian_legal_mcp_list_sections(act_code)

List every section NUMBER and TITLE in one Act, without the full body text. Use this to browse what exists in an Act before deciding which specific section or chapter to fetch in full -- much shorter than get_full_act.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "e.g. 'BNS', 'MVA'."
    }
  },
  "required": [
    "act_code"
  ]
}
🔴indian_legal_mcp_get_chapter(act_code, chapter_number)

Get every section within one chapter of an Act, with full text. Only meaningful for BNS, BNSS, BSA, IPC, CRPC, IEA. For CPC, MVA, and COI, which lack chapter grouping in this dataset, it returns a clear message instead of empty data.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "e.g. 'BNS'."
    },
    "chapter_number": {
      "type": "string",
      "description": "e.g. '1', '16'."
    }
  },
  "required": [
    "act_code",
    "chapter_number"
  ]
}
🟢indian_legal_mcp_get_section_range(act_code, start_section, end_section)

Get all sections between a start and end number (inclusive) with full text. Numeric comparison handles letter-suffixed numbers (like '108A'). If start and end are provided in reverse order, it silently corrects them and includes a note in the response.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "e.g. 'BNS'."
    },
    "start_section": {
      "type": "string",
      "description": "e.g. '100'."
    },
    "end_section": {
      "type": "string",
      "description": "e.g. '110'."
    }
  },
  "required": [
    "act_code",
    "start_section",
    "end_section"
  ]
}
🟢indian_legal_mcp_get_full_act(act_code, page)

Get an entire Act, in full, returned in paginated chunks (50 sections/page). Use only when genuinely needing the whole Act. If a page beyond the total pages is requested, it gracefully returns empty sections with a note.

Input Schema

{
  "type": "object",
  "properties": {
    "act_code": {
      "type": "string",
      "description": "e.g. 'BNS'."
    },
    "page": {
      "type": "integer",
      "description": "The page number to fetch. Default is 1.",
      "default": 1
    }
  },
  "required": [
    "act_code"
  ]
}
🟢indian_legal_mcp_search_keyword(query, act_code)

[AI TOOL ORCHESTRATION INSTRUCTION: ALWAYS use this tool FIRST when the specific section number is unknown. Never guess section numbers.] Search section titles and text. Exact title matches are ranked #1, partial title matches are #2, and body text matches are #3 (via BM25). This is exact/near-exact word matching, NOT meaning-based search.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "search term(s), e.g. 'punishment for murder'."
    },
    "act_code": {
      "type": "string",
      "description": "optional -- restrict search to one Act."
    }
  },
  "required": [
    "query"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools