India Schemes MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@India Schemes MCP ServerCheck eligibility for PM Kisan as a 35-year-old farmer in Bihar with Rs 1.5 lakh income."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฎ๐ณ India Schemes MCP Server (india-schemes-mcp)
๐ Product layer over this data: Yojana Dost โ live at https://yojana-dost.onrender.com/
A production-grade Model Context Protocol (MCP) server providing structured tools for Claude Desktop, Cursor, and any MCP client to search, analyze, compare, and verify eligibility for 120+ Indian Central and State Government Welfare Schemes.
๐ ๏ธ MCP Tools Exposed
This server exposes 6 production-grade tools with strict Zod schema validation and structured stderr diagnostic logging:
Tool Name | Parameters | Description |
|
| Full-text and keyword search across 120+ schemes with relevance scoring and filter support. |
|
| Retrieves complete verified details for a specific scheme (ministry, benefits, eligibility, rules, official URL). |
|
| Deterministic eligibility evaluation against official scheme criteria with detailed pass/fail breakdown. |
|
| Returns application deadlines, rolling enrollment cycles, renewal schedules, and official timeline rules. |
|
| Generates side-by-side comparison matrix across benefits, eligibility thresholds, and required documentation. |
|
| Step-by-step citizen application roadmap, portal URLs, offline submission offices, and document checklist. |
Related MCP server: PlainGov-MCP
๐ Quickstart & Installation
Prerequisites
Node.js
>= 20.0.0npm
>= 10.0.0
1. Clone & Build
git clone https://github.com/waqarbytes/india-schemes-mcp.git
cd india-schemes-mcp
npm install
npm run build2. Test with MCP Inspector
Inspect and interact with all 6 tools using the official Model Context Protocol Inspector UI:
npm run inspect๐ป Claude Desktop Configuration
To connect this server to Claude Desktop, add the configuration below to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"india-schemes": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/india-schemes-mcp/dist/index.js"
],
"env": {
"NODE_ENV": "production"
}
}
}
}Restart Claude Desktop, and click the ๐จ icon in chat to verify all 6 tools are loaded.
๐งช Testing
Run the full Vitest suite testing repository lookups, rule evaluation operators, token-bucket rate limiters, and tool schemas:
npm test๐๏ธ Architecture & Reliability
Standard IO Transport: Connects via
@modelcontextprotocol/sdk/server/stdio.jsfor zero-overhead local IPC.Strict Error Handling: Errors return structured MCP text payloads with error codes rather than unhandled process terminations.
In-Memory Cache & Concurrency Protection: Scheme records are safely parsed and cached on demand.
Process Lifecycle: Clean
SIGINTandSIGTERMlisteners guarantee graceful shutdown.
๐ License
MIT License. Copyright (c) 2026 Mohd Waqar.
Available Tools
6 toolscheck_eligibilityCheck Scheme EligibilityC
Evaluate whether an applicant qualifies for a government scheme based on their profile (age, income, occupation, state, etc.) using a data-driven rules engine.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_id | Yes | The unique ID of the scheme to evaluate eligibility against | |
| user_profile | Yes | The applicant's demographic and financial profile attributes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions a data-driven rules engine but does not disclose read-only status, side effects, result format, error handling, or how missing optional profile fields affect evaluation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the action and key inputs without padding. Every element contributes to understanding the toolโs core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool accepts a nested profile object and has no output schema, so the description should clarify what eligibility evaluation returns or how results are structured. With no annotations and no return-value context, it is incomplete for a decision-support tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested user_profile fields and scheme_id are already fully documented. The description repeats example profile attributes (age, income, occupation, state) but adds no syntax, constraints, or meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing: evaluate applicant eligibility for a government scheme. It is clearly distinct from sibling tools like get_scheme, search_schemes, and compare_schemes, though it does not explicitly name alternatives or contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings, nor any prerequisites or exclusions. The description implies usage through its purpose, but an agent receives no explicit routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_schemesCompare SchemesB
Perform side-by-side comparative analysis of up to 5 government welfare schemes across benefits, eligibility rules, and deadlines.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_ids | Yes | List of scheme IDs to compare (1 to 5 IDs, e.g. ['pm-suraksha-bima', 'pm-jeevan-jyoti', 'atal-pension-yojana']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It communicates the comparison dimensions, which is useful, but says nothing about permissions, error behavior for invalid/duplicate IDs, or the shape of the comparison output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It could have added one clause on output or constraints, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only comparison tool with one well-documented parameter and no output schema or annotations, the description covers intent and comparison dimensions. It stops short of describing what the comparison returns or any input constraints beyond the schema, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single scheme_ids parameter already documents the 1-5 range with illustrative IDs, so the schema does the heavy lifting. The description's 'up to 5' merely restates the maxItems constraint without adding new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (compare) and resource (government welfare schemes) and scopes it to up to 5 items across named axes (benefits, eligibility rules, deadlines). This clearly separates it from get_scheme/search_schemes, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'side-by-side comparative analysis of up to 5' implies when the tool is appropriate (multi-scheme comparison), but there is no explicit when-not guidance and no alternative tools named for single-scheme lookups or eligibility checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_application_stepsGet Application StepsB
Retrieve sequential, ordered application instructions and verified official portal links for any government scheme.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_id | Yes | The unique ID of the scheme (e.g., 'pm-kisan', 'pm-svanidhi', 'pm-vishwakarma') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two useful traits: steps are sequentially ordered and links are verified official portals. It omits expected behavior for invalid or unknown scheme_id, and says nothing about response shape or completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the resource and its key qualifiers, no filler and no repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with full schema coverage and no output schema, the description conveys what the caller gets back (ordered steps and verified links). Only error/not-found behavior is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, whose schema description already gives format and examples ('pm-kisan'). The description adds no syntax or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) and a well-defined resource: sequential ordered application instructions plus verified official portal links for a government scheme. An agent can distinguish this from get_scheme or get_deadline, though it never names a sibling to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no conditions, and no mention of alternatives among the five sibling tools. The purpose implies a context (after identifying a scheme you need application steps), but the agent must infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deadlineGet Scheme DeadlineB
Check the application deadline, remaining days, and open/closed enrollment status for an Indian government scheme.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_id | Yes | The unique ID of the scheme (e.g., 'pm-svanidhi', 'pm-kisan') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only operation and lists the information returned (deadline, remaining days, enrollment status), but does not disclose permissions, error behavior, side effects, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and outputs with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool with no output schema, the description communicates what will be returned conceptually (deadline, remaining days, enrollment status). It does not specify return format or edge cases, but it is largely sufficient for an agent to understand and call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter (scheme_id) is fully documented in the schema. The description adds no parameter-specific syntax, format, or constraint details beyond what the schema already provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and a precise resource set (application deadline, remaining days, open/closed enrollment status) for an Indian government scheme. It is clearly distinct from siblings like get_scheme and check_eligibility, though it does not explicitly name or contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_scheme or check_eligibility, nor are there any prerequisites or exclusions. The intended use is only implied by the verb 'Check' and the deadline-focused outputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schemeGet Scheme DetailsB
Fetch complete details of a specific Indian government scheme by its unique ID, including eligibility rules, benefits, deadlines, and application links.
| Name | Required | Description | Default |
|---|---|---|---|
| scheme_id | Yes | The unique identifier of the scheme (e.g., 'pm-kisan', 'atal-pension-yojana', 'pm-jay-ayushman') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. 'Fetch' correctly conveys a read-only retrieval, and it discloses the shape of the payload (eligibility, benefits, deadlines, application links), but it says nothing about error behavior for an unknown ID or any auth/rate constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource, with the returned-field enumeration trailing as useful detail. No filler, though the field list slightly pads an otherwise tight sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter getter with no output schema and no annotations, the description covers the essentials and usefully previews the return content. It could add a not-found/error note, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the sole parameter is thoroughly documented with concrete example IDs. The description's 'by its unique ID' merely restates the schema, adding no format or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Fetch'), a specific resource ('complete details of a specific Indian government scheme'), and a precise selector ('by its unique ID'), plus an enumeration of the returned content. It implicitly separates itself from search_schemes by being an ID-based lookup, but it never names a sibling explicitly, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The by-ID framing implies it is a follow-up to search_schemes (which would supply the ID), but the agent is left to infer that relationship rather than being told, and no prerequisite or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_schemesSearch SchemesB
Search Indian government welfare schemes using keywords with relevance scoring. Supports optional filtering by category and state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1 to 50, default: 10) | |
| query | Yes | Keywords to search across scheme name, ministry, description, or benefits (e.g., 'farmer income', 'health insurance', 'pension') | |
| state | No | Optional state filter (e.g., 'Karnataka', 'Maharashtra', 'Delhi', 'All India') | |
| category | No | Optional category filter (e.g., 'Agriculture', 'Healthcare', 'Social Security', 'Housing', 'Women & Child', 'Financial Inclusion') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that results are relevance-scored and that filters are optional, but says nothing about matching semantics, permissions, or result ordering beyond relevance. A read-only search is inherently low-risk, but more behavioral context was available to give.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core action front-loaded and the filtering capability second. No filler, though it is terse enough that it under-delivers on guidance rather than over-explaining.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter search tool with full schema coverage and no output schema, the definition is minimally adequate. It never hints at the shape of a result (fields returned, ranking detail) despite there being no output schema to cover that, leaving a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (query, state, category, limit) are already documented in the schema, including examples and bounds. The description only restates keyword search and optional category/state filtering, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Indian government welfare schemes) plus the mechanism (keywords) and result behavior (relevance scoring). It implicitly distinguishes itself from the id-based sibling get_scheme, but never names it, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of optional category/state filters implies when the tool is useful, but there is no explicit guidance on when to prefer search_schemes over get_scheme or compare_schemes, and no prerequisites are stated. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
check_eligibility - First observed
compare_schemes - First observed
get_application_steps - First observed
get_deadline - First observed
get_scheme - First observed
search_schemes
TDQS
Scored across 6 tools
Most tools have clearly distinct purposes: search, fetch details, eligibility check, deadline check, comparison, and application steps. However, get_scheme already returns deadlines and application links, so it slightly overlaps with get_deadline and get_application_steps, which could cause occasional misselection.
All tool names follow a consistent snake_case verb_noun or verb_noun_phrase pattern: get_scheme, search_schemes, check_eligibility, get_deadline, compare_schemes, get_application_steps. The convention is predictable throughout.
Six tools are well-scoped for a government scheme information server. Each tool covers a distinct user need: discovery, detail lookup, eligibility, deadline tracking, comparison, and application guidance.
The tool set covers the full read-only lifecycle for Indian government welfare schemes: search, inspect, evaluate eligibility, check deadlines, compare options, and retrieve application steps. No obvious operation is missing for this domain.
Maintenance
Related MCP Connectors
Public Data Ukraine Mcp connects AI agents to real public APIs via MCP. Tools include
Free public MCP for AI agents โ 193 tools, 44 workflows. No API key.
Public web tools for agents: product extraction, claim checks, webpage QA and ranked audits.
101Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides tools for searching, creating, and managing Indian Government Schemes with comprehensive eligibility filtering.6MIT
- AlicenseBqualityDmaintenanceRetrieves and explains government program information from official Canadian sources using a strict retrieval-first approach, with deterministic eligibility checks and full source attribution.64 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to answer questions about Finnish social benefits (Kela) by providing tools for searching, checking eligibility, and getting application steps.MIT
- AlicenseAqualityDmaintenanceEnables LLMs to query real-time Indian bank branch details, postal PIN codes, validate GSTIN/PAN structures, check e-commerce serviceability, and compute GST breakdowns using free public APIs and offline verification logic.613 npm1MIT