datagovin-mcp-server
README.md
# datagovin-mcp-server
Core server for exposing India’s open government data (data.gov.in) APIs via the Model Context Protocol, powering agentic AI data exploration.
## Setup Instructions
### Clone the repository
```bash
git clone <repo-url>
cd datagovin-mcp-server
```
### Create a virtual environment
```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```
### Install dependencies
```bash
pip install -e .[dev]
```
### Configure environment variables
1. Copy the example environment file to create your own `.env` file.
```bash
cp .env.example .env
```
2. Open the `.env` file and set your Data.gov.in API key.
```env
API_KEY=your_actual_api_key_here
```
3. (Optional) If you have a Redis server running elsewhere, update the `REDIS_HOST` and `REDIS_PORT` values in the `.env` file.
## Development & Testing
### Code Quality Checks
Run these commands to ensure code quality and stability.
Task | Command
--- | ---
Type Checking | `mypy`
Unit Tests | `pytest`
Formatting | `black .`
Linting | `ruff check`
### Start the server
You can manually start the server to verify it runs without errors before connecting a client.
```bash
python -m datagovin_mcp_server.main
```
## MCP Server Integration & Debugging
There are two ways to interact with and test your MCP server: the MCP Inspector (for debugging) and VS Code (for agent integration).
### A. Testing with the MCP Inspector (Debugging)
The MCP Inspector provides an interactive web UI to test your tools, resources, and prompts directly, similar to Postman for REST APIs.
1. Start the Inspector Proxy
The Inspector requires Node.js to run its proxy. This command will launch the web UI in your browser at <http://localhost:6274>.
```bash
npx @modelcontextprotocol/inspector
```
> [!NOTE]
> Assumes that you have Node.js installed. If not, please install it from [nodejs.org](https://nodejs.org/).
2. Connect to Your Server
In the Inspector UI, go to the Connection panel on the left and enter the following settings to connect via **stdio**:
- Transport: `stdio`
- Command: The full absolute path to your Python executable. For example: `E:\Fill\With\Your Own Path\datagovin-mcp-server\.venv\Scripts\python.exe`
- Arguments: `-m datagovin_mcp_server.main stdio`
The Inspector will automatically start and stop your Python server as needed for testing.
### B. Integrating with VS Code (GitHub Copilot)
To allow GitHub Copilot's agent mode to use your server, you must configure a local MCP server connection in VS Code.
1. Create Configuration File
Create a file named `.vscode/mcp.json` in your project root to store the workspace-specific configuration.
Alternatively, you can use the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) and select **"MCP: Open User Configuration"** to add the configuration directly to your workspace settings.
2. Add Server Configuration
Paste the following JSON configuration into your newly created `.vscode/mcp.json` file. This uses the absolute path to your virtual environment's Python executable.
```json
{
"servers": {
"datagovin-mcp-server": {
"type": "stdio",
"command": "E:\\\\Fill\\\\With\\\\Your Own Path\\\\datagovin-mcp-server\\\\.venv\\\\Scripts\\\\python.exe",
"args": [
"-m",
"datagovin_mcp_server.main",
"stdio"
]
}
},
"inputs": []
}
```
> [!WARNING]
> ACTION REQUIRED: You must update the command value to the absolute path of your Python executable in your local .venv/Scripts directory. The example path above is a placeholder.
3. Use the Server in Copilot Chat
- Ensure the GitHub Copilot extension is installed.
- Open Copilot Chat (Ctrl+Alt+I / Cmd+Shift+P -> Copilot Chat).
- Switch to Agent Mode.
- Click the Tools icon (🛠️) and ensure the datagovin-mcp-server is listed and enabled.
- Ask a question that requires your server's tools to test the live agent integration
## Contributing
Check out the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on how to contribute to this project.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues