Skip to main content
Glama
README.md
# myScheme MCP Server (LIVE)

Python MCP server that searches **live** [myScheme.gov.in](https://www.myscheme.gov.in/) schemes by eligibility — same flow as the portal (Enter details → Search → Select & Apply).

## Data flow

```
Citizen details
    → find_eligible_schemes_tool
    → api.myscheme.gov.in/search/v6/schemes  (live)
    → ranked schemes + official links
    → optional SQLite cache
```

BeautifulSoup alone is not enough (React/Next.js). This MCP calls the same JSON API the website uses (`q=<filters JSON>` + `x-api-key`).

## Setup

```powershell
cd "c:\Users\admin\Desktop\Backend Projects\LLM\MCP"
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```

Optional API key override:

```powershell
$env:MYSCHEME_API_KEY = "your-key"
```

## Cursor MCP config

```json
{
  "mcpServers": {
    "myscheme": {
      "command": "c:\\Users\\admin\\Desktop\\Backend Projects\\LLM\\MCP\\.venv\\Scripts\\python.exe",
      "args": [
        "c:\\Users\\admin\\Desktop\\Backend Projects\\LLM\\MCP\\server.py"
      ]
    }
  }
}
```

## Tools

| Tool | Source |
|------|--------|
| `find_eligible_schemes_tool` | **Live** eligibility search |
| `search_schemes_tool` | **Live** keyword search |
| `get_scheme_details` | **Live** scheme detail by slug |
| `sync_live_schemes` | Pull live hits into SQLite |
| `list_scheme_categories` / `list_available_states` | Local cache helpers |

## Example

> I am 16, female, student in West Bengal. Which schemes am I eligible for?

Uses live filters (`gender`, `isStudent`, `beneficiaryState`, …) and returns matches such as **Kanyashree Prakalpa**.

## Notes

- Live catalogue size is ~4700+ schemes.
- Always verify on the official scheme page before applying.
- Playwright is optional for probing (`scripts/capture_network.py`); runtime search uses `httpx`.