Government Scheme MCP Server
README.md
# Government Scheme MCP Server
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server for accessing and managing Indian Government Schemes database. This server provides tools for searching, creating, and managing government benefit schemes with comprehensive eligibility filtering.
## Features
- **Health Check**: Verify server connectivity and API status
- **Scheme Search**: Advanced filtering by demographics, geography, income, and eligibility criteria
- **Scheme Management**: Create and retrieve government scheme records
- **Comprehensive Filtering**: Support for age, gender, income, employment status, social categories, disabilities, and more
## Installation
### From PyPI (when published)
```bash
pip install gov-scheme-mcp
```
### From Source
```bash
git clone https://github.com/magicstack-llp/gov-scheme-mcp-py
cd gov-scheme-mcp
pip install -e .
```
## Usage
### As an MCP Server
The server can be used with any MCP-compatible client:
```bash
gov-scheme-mcp
```
### Environment Variables
- `GOV_API_URL`: Base URL for the government schemes API (default: `http://localhost:3000`)
## Available Tools
### `health()`
Check server health and API connectivity.
**Returns**: JSON with connection status and API endpoint information.
### `create_scheme(...)`
Create a new government scheme record with comprehensive metadata.
**Parameters**:
- `code`: Unique scheme identifier
- `name`: Scheme name
- `description`: Detailed description
- `department`: Government department
- `category`: Program domain (education, health, agriculture, etc.)
- `benefit_type`: Type of benefit (cash, subsidy, scholarship, loan, insurance, pension, grant, in-kind)
- `benifit_details`: Detailed description of benefit structure, payouts, and timelines
- `terms_and_conditions`: Terms and conditions text for the scheme
- `scheme_raw_text`: Raw, unstructured text of scheme details
- `official_website`: Official scheme website URL
- `application_link`: Direct application form/link URL
- `url`: Official scheme URL (legacy field)
- `contact`: Contact information
- Demographics: `min_age`, `max_age`, `genders`
- Economic: `income_min`, `income_max`, `employment_status`
- Social: `social_categories`, `marital_statuses`, `religions`, `disabilities`
- Geographic: `states`, `districts`, `urban_rural`
- Requirements: `required_documents`, `caste_required`, `domicile_required`
- Status: `is_active`
### `read_scheme(id)`
Fetch a single scheme by numeric ID.
**Parameters**:
- `id`: Numeric scheme ID
### `update_scheme(id, ...)`
Update an existing scheme by ID. Only provided fields will be changed.
**Parameters**:
- `id`: Numeric scheme ID to update
- All other fields are the same as `create_scheme(...)` and are optional
### `delete_scheme(id)`
Delete a scheme by ID.
**Parameters**:
- `id`: Numeric scheme ID to delete
### `search_schemes(...)`
Search schemes with advanced filtering capabilities.
**Parameters**:
- `q`: Text search in name/description
- `age`: User age for eligibility filtering
- `income`: User income level
- `gender`: Gender filter (male, female, other)
- `employmentStatus`: Employment status (unemployed, farmer, student, salaried, entrepreneur)
- `disabilities`: Disability categories (visual, hearing, mobility, intellectual, multiple, other)
- `socialCategories`: Social categories (SC, ST, OBC, EWS, GENERAL)
- `maritalStatus`: Marital status (single, married, divorced, widowed)
- `religion`: Religious affiliation
- `state`: State/UT name
- `district`: District name
- `urbanRural`: Area type (urban, rural)
- `profession`: Professional category
- `casteRequired`: Filter by caste certificate requirement
- `domicileRequired`: Filter by domicile certificate requirement
- `category`: Scheme category filter
- `benefitType`: Benefit type filter
- `active`: Active schemes only
- `limit`: Maximum results (default: 100)
- `offset`: Result offset (default: 0)
## Configuration for MCP Clients
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"gov-scheme-mcp": {
"command": "gov-scheme-mcp",
"env": {
"GOV_API_URL": "https://your-api-server.com"
}
}
}
}
```
### Other MCP Clients
Configure the server command as `gov-scheme-mcp` with the appropriate environment variables.
## Development
### Setup
```bash
git clone https://github.com/magicstack-llp/gov-scheme-mcp-py
cd gov-scheme-mcp
pip install -e ".[dev]"
```
### Testing
```bash
pytest
```
### Code Formatting
```bash
black src/
isort src/
```
### Type Checking
```bash
mypy src/
```
## API Requirements
This MCP server requires a compatible government schemes API with the following endpoints:
- `GET /`: Health check endpoint
- `POST /api/schemes`: Create new scheme
- `GET /api/schemes/{id}`: Retrieve scheme by ID
- `PATCH /api/schemes/{id}`: Update scheme by ID (partial update)
- `DELETE /api/schemes/{id}`: Delete scheme by ID
- `POST /api/schemes/search`: Search schemes with filters
## License
MIT License - see [LICENSE](LICENSE) file for details.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Run the test suite
6. Submit a pull request
## Support
For issues and questions:
- Open an issue on [GitHub](https://github.com/magicstack-llp/gov-scheme-mcp-py/issues)
- Check the [documentation](https://github.com/magicstack-llp/gov-scheme-mcp-py#readme)
## Related Projects
- [Model Context Protocol](https://modelcontextprotocol.io)
- [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk)
TDQS
A3.8/5.0
Scored across 6 tools
Disambiguation5/5
Each tool has a distinct purpose: CRUD operations (create, delete, read, update), search with filtering, and health check. No overlap or ambiguity.
Naming Consistency4/5
Tools follow a verb_noun pattern (e.g., create_scheme, delete_scheme), with 'health' as a simple noun. Minor inconsistency: 'search_schemes' uses plural but is still clear.
Tool Count5/5
Six tools is appropriate for a scheme management server: full CRUD plus search and health check. Not too many, not too few.
Completeness5/5
Covers all essential operations: create, read, update, delete, and search with eligibility criteria. Health check ensures connectivity. No obvious gaps for the domain.
Maintenance
ActivityInactive
ResponsivenessNo issues