Token导航 LogoToken导航TokenDH.com
Data Gov In MCP logo
数据服务stdio官方级别未说明来源级核验

Data Gov In MCP

MCP Server

一个用于访问印度政府开放数据的生产级Model Context Protocol (MCP)服务器,支持AI代理和应用程序无缝查询、过滤和检索数据集。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
数据分析PythonAPI集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Yash-Kavaiya

提供方

Yash-Kavaiya

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

MCP服务器中的data.gov.in

![Python](https://www.python.org/downloads/) ![MCP](https://modelcontextprotocol.io) ![License](LICENSE) ](Dockerfile)

A. 生产准备就绪 用于访问印度政府公开数据的模型上下文协议(MCP)服务器 data.gov.in该服务器使人工智能代理和应用程序能够从印度国家数据门户无缝查询、过滤和检索数据集。

特性

功能描述状态
数据集检索使用资源ID访问数据集✅ 准备好了
分页高效导航大型数据集✅ 准备好了
筛选按字段值筛选数据✅ 准备好了
字段架构获取数据集结构和字段类型✅ 准备好了
响应缓存带TTL的LRU缓存以提高性能✅ 准备好了
速率限制带回退的自动速率限制✅ 准备好了
错误处理全面的错误处理和重试✅ 准备好了
日志记录用于监控的结构化日志记录✅ 准备好了
类型安全完整的类型提示✅ 准备好了
测试覆盖率综合测试套件✅ 准备好了
Docker支持生产就绪的容器化✅ 准备好了

目录

安装

先决条件

  • Python 3.12或更高版本
  • uv 包管理器(推荐)或 pip
  • data.gov.in API密钥(在这里买一个)

使用紫外线(推荐)

# Clone the repository
git clone https://github.com/Yash-Kavaiya/data-gov-in-mcp.git
cd data-gov-in-mcp

# Install dependencies
uv sync

# Set up your API key
export DATA_GOV_IN_API_KEY="your-api-key-here"

使用pip

# Clone the repository
git clone https://github.com/Yash-Kavaiya/data-gov-in-mcp.git
cd data-gov-in-mcp

# Install dependencies
pip install -e .

# Set up your API key
export DATA_GOV_IN_API_KEY="your-api-key-here"

使用Docker

docker build -t data-gov-in-mcp .
docker run -e DATA_GOV_IN_API_KEY="your-api-key" data-gov-in-mcp

快速开始

运行服务器

# Set your API key
export DATA_GOV_IN_API_KEY="your-api-key-here"

# Run the server
python main.py

MCP检验员测试

npx @modelcontextprotocol/inspector python main.py

配置

可以使用环境变量配置服务器:

变量描述默认值必填
DATA_GOV_IN_API_KEY您的data.gov.in API密钥✅ 是的
DATA_GOV_IN_BASE_URLAPI基本URLhttps://api.data.gov.in没有
DATA_GOV_IN_TIMEOUT请求超时(秒)30没有
DATA_GOV_IN_CACHE_ENABLED启用响应缓存true没有
DATA_GOV_IN_CACHE_TTL缓存TTL(秒)3600没有
DATA_GOV_IN_CACHE_MAX_SIZE最大缓存条目数1000没有
DATA_GOV_IN_RATE_LIMIT_CALLS每个时段的最大通话次数100没有
DATA_GOV_IN_RATE_LIMIT_PERIOD速率限制期(秒)60没有
DATA_GOV_IN_MAX_RETRIES最大重试次数3没有
DATA_GOV_IN_RETRY_DELAY初始重试延迟(秒)1.0没有
DATA_GOV_IN_LOG_LEVEL日志记录级别INFO没有
DATA_GOV_IN_DEFAULT_LIMIT每个请求的默认记录10没有
DATA_GOV_IN_MAX_LIMIT每个请求的最大记录数100没有

示例.env文件

创建一个 .env 项目根目录中的文件:

DATA_GOV_IN_API_KEY=your-api-key-here
DATA_GOV_IN_CACHE_ENABLED=true
DATA_GOV_IN_LOG_LEVEL=INFO
DATA_GOV_IN_TIMEOUT=30

可用工具

服务器提供以下MCP工具:

1.获取数据集

从特定数据集/资源中检索数据。

{
  "resource_id": "9ef84268-d588-465a-a308-a864a43d0070",
  "limit": 10,
  "offset": 0,
  "filters": "{\"state\": \"Maharashtra\"}"
}

2.get_dataset_fields

获取数据集的字段信息和模式。

{
  "resource_id": "9ef84268-d588-465a-a308-a864a43d0070"
}

3.分页数据集

从数据集中检索特定页面的数据。

{
  "resource_id": "9ef84268-d588-465a-a308-a864a43d0070",
  "page": 2,
  "page_size": 20
}

4.获取_数据_摘要

获取数据集的摘要,包括记录计数和字段信息。

{
  "resource_id": "9ef84268-d588-465a-a308-a864a43d0070"
}

5.过滤器_数据集

按特定字段值筛选数据集记录。

{
  "resource_id": "9ef84268-d588-465a-a308-a864a43d0070",
  "field": "state",
  "value": "Maharashtra",
  "limit": 10
}

6.获取_统计数据

获取有关API响应缓存的统计信息。

{}

7.clear_cache

清除所有缓存的API响应。

{}

8.获取服务器信息

获取有关MCP服务器及其配置的信息。

{}

用法示例

示例1:检索数据集记录

# Get first 5 records from a dataset
get_dataset(
    resource_id="9ef84268-d588-465a-a308-a864a43d0070",
    limit=5
)

示例2:通过数据进行分页

# Get page 2 with 20 records per page
paginate_dataset(
    resource_id="9ef84268-d588-465a-a308-a864a43d0070",
    page=2,
    page_size=20
)

示例3:筛选数据

# Get records where state is Maharashtra
filter_dataset(
    resource_id="9ef84268-d588-465a-a308-a864a43d0070",
    field="state",
    value="Maharashtra",
    limit=10
)

示例4:检查数据集架构

# Get field definitions
get_dataset_fields(
    resource_id="9ef84268-d588-465a-a308-a864a43d0070"
)

发展

项目结构

data-gov-in-mcp/
├── src/
│   └── data_gov_in/
│       ├── __init__.py          # Package initialization
│       ├── api_client.py        # API client implementation
│       ├── cache.py             # Caching layer
│       ├── config.py            # Configuration management
│       ├── exceptions.py        # Custom exceptions
│       └── server.py            # MCP server implementation
├── tests/
│   ├── __init__.py
│   ├── test_api_client.py       # API client tests
│   ├── test_cache.py            # Cache tests
│   └── test_config.py           # Configuration tests
├── docs/                        # Documentation
├── main.py                      # Entry point
├── pyproject.toml              # Project configuration
├── Dockerfile                  # Docker configuration
└── README.md                   # This file

设置开发环境

# Clone the repository
git clone https://github.com/Yash-Kavaiya/data-gov-in-mcp.git
cd data-gov-in-mcp

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
uv sync

# Install development dependencies
pip install pytest pytest-cov pytest-asyncio httpx

测试

该项目包括对所有组件的全面测试。

运行测试

# Run all tests
pytest

# Run with coverage
pytest --cov=src/data_gov_in --cov-report=html

# Run specific test file
pytest tests/test_api_client.py

# Run with verbose output
pytest -v

测试覆盖率

测试套件包括:

  • API客户端功能
  • 缓存层
  • 配置管理
  • 错误处理
  • 速率限制
  • 重试逻辑

Docker部署

塑造形象

docker build -t data-gov-in-mcp:latest .

运行容器

docker run -e DATA_GOV_IN_API_KEY="your-api-key" data-gov-in-mcp:latest

使用Docker Compose

创建一个 docker-compose.yml:

version: '3.8'
services:
  data-gov-in-mcp:
    build: .
    environment:
      - DATA_GOV_IN_API_KEY=${DATA_GOV_IN_API_KEY}
      - DATA_GOV_IN_CACHE_ENABLED=true
      - DATA_GOV_IN_LOG_LEVEL=INFO
    restart: unless-stopped

运行方式:

docker-compose up -d

API文档

API数据.gov.in

该服务器与data.gov.in API接口。关键信息:

  • 基本URL: https://api.data.gov.in
  • 认证:需要API密钥
  • 格式:JSON
  • 速率限制:因API关键层而异

获取API密钥

  1. 访问 data.gov.in
  2. 注册帐户
  3. 导航到“我的帐户”
  4. 生成API密钥

查找资源ID

资源ID可以在data.gov.in网站上找到:

  1. 浏览数据集https://data.gov.in/catalogs
  2. 点击数据集
  3. 在数据集详细信息中查找“API”或“资源ID”

建筑

系统架构

┌─────────────────┐
│   AI Agent      │
└────────┬────────┘
         │ MCP Protocol
┌────────▼────────┐
│  FastMCP Server │
└────────┬────────┘
         │
┌────────▼────────┐
│  API Client     │
│  - Rate Limit   │
│  - Retry Logic  │
│  - Caching      │
└────────┬────────┘
         │ HTTPS
┌────────▼────────┐
│  data.gov.in    │
│      API        │
└─────────────────┘

关键组件

  1. FastMCP服务器:公开用于数据集操作的MCP工具
  2. API客户端:处理对data.gov.in的HTTP请求
  3. 缓存层:带TTL的LRU缓存以提高性能
  4. 速率限制器:防止违反API费率限制
  5. 错误处理程序:全面的错误处理和重试

贡献

欢迎投稿!请遵循以下指南:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

代码的风格

  • 遵循PEP 8指南
  • 全程使用类型提示
  • 为所有公共函数编写文档字符串
  • 为新功能添加测试

故障排除

常见问题

问题: APIKeyMissingError

Solution: Set the DATA_GOV_IN_API_KEY environment variable
export DATA_GOV_IN_API_KEY="your-api-key"

问题: RateLimitError

Solution: The server automatically handles rate limiting. Wait for the cooldown period or adjust rate limit settings.

问题: ResourceNotFoundError

Solution: Verify the resource ID is correct by checking data.gov.in

支持

  • 问题:
  • 电子邮件: yash.kavaiya3@gmail.com
  • 文档: 维基

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

  • Anthropic 对于模型上下文协议
  • FastMCP 优秀的Python框架
  • data.gov.in 提供公开的政府数据
  • 本项目的所有贡献者和用户

链接

资源URL
data.gov.in门户网站https://data.gov.in
MCP文件https://modelcontextprotocol.io
FastMCPhttps://github.com/jlowin/fastmcp
项目存储库https://github.com/Yash-Kavaiya/data-gov-in-mcp

______________________________________________________________________

内置❤️ 面向开放数据社区

目录标签

目录标签

数据分析PythonAPI集成政府数据本地部署数据查询API服务数据过滤数据集检索

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP