MoSPI MCP服务器
   
MCP(模型上下文协议)服务器,用于访问印度统计和计划实施部(MoSPI)的数据API。采用FastMCP 3.0构建。
______________________________________________________________________
目录
______________________________________________________________________
概述
该服务器通过模型上下文协议(MCP)提供人工智能对印度政府官方统计数据的访问。它充当人工智能助手(Claude、ChatGPT、Cursor等)和MoSPI的开放数据API之间的桥梁,支持对经济、人口和社会指标进行自然语言查询。
主要特点:
- 23个统计数据集,涵盖就业、通货膨胀、工业生产、国内生产总值、能源、可再生能源、高等教育、学校教育、性别、健康、环境、贸易、农业、消费、经济普查和数字素养
- 为LLM消费设计的顺序4工具工作流
- Swagger驱动的参数验证
- 完全开放遥测集成,实现可观测性
- 生产就绪的Docker部署
______________________________________________________________________
数据集
| 数据集 | 全名 | 用于 |
|---|---|---|
| PLFS | 定期劳动力调查 | 工作、失业、工资、劳动力参与 |
| 消费者价格指数 | 消费者价格指数 | 零售通胀、生活成本、商品价格 |
| IIP | 工业生产指数 | 工业增长、制造业产出 |
| 自动识别系统 | 工业年度调查 | 工厂绩效、工业就业 |
| 网络附加存储 | 国民账户统计 | GDP、经济增长、国民收入 |
| 威夫尔处理器装配厂 | 批发价格指数 | 批发通货膨胀、生产者价格 |
| 能量 | 能源统计 | 能源生产、消费、燃料结构 |
| AISHE | 全印度高等教育调查 | 大学、学院、学生入学率、毛入学率、GPI |
| 华硕 | 非法人企业年度调查 | 非正规部门、小企业、中小微企业统计 |
| 性别 | 性别统计 | 性别指标、妇女赋权、性别比例、侵害妇女犯罪 |
| 全国州立中学协会联盟 | 全国家庭健康调查 | 生育率、婴儿死亡率、孕产妇保健、营养 |
| 环境状态 | 环境统计 | 气候、生物多样性、污染、水资源、森林 |
| 印度储备银行 | RBI统计 | 外贸、外汇储备、汇率、国际收支 |
| NSS77 | NSS第77轮(土地和牲畜) | 农户、土地所有权、农场收入、农作物保险 |
| NSS78 | NSS第78轮(生活条件) | 饮用水、卫生设施、数字连接、移民 |
| CPIALRL | 农业/农村劳动力CPI | 农村通货膨胀、农业劳动力生活成本 |
| HCES | 家庭消费支出调查 | 消费者支出、贫困分析、不平等(基尼系数) |
| 塔斯 | 时间使用调查 | 时间分配、无偿工作、性别时间差距 |
| 电商 | 经济普查 | 机构、企业、地区商业统计、工人 |
| NSS79 | NSS第79轮(CAMS+AYUSH) | 识字率、入学率、NEET青年、卫生支出、普惠金融、数字技能、AYUSH意识和使用 |
| UDISE | UDISE+(统一地区教育信息系统) | 学校、入学率、辍学率、教师、PTR、GER、NER、GPI、CWSN、学校基础设施、ICT实验室、少数民族入学率 |
| 能源部 | 可再生能源(新能源和可再生能源部) | 太阳能、风能、水能、生物质能和可再生能源总装机容量(MW) |
| NSS80 | NSS第80轮(电信(CMST)+教育(CMSE)) | 手机所有权、互联网使用、网上银行、网络犯罪、家庭电信连接、学校入学和支出课程费用、私人辅导 |
______________________________________________________________________
MCP工具
服务器公开了4个遵循顺序工作流的工具:
list_datasets → get_indicators → get_metadata → get_data| 步骤 | 工具 | 说明 |
|---|---|---|
| 1 | list_datasets() | 所有数据集的概述。从这里开始查找正确的数据集。 |
| 2 | get_indicators(dataset) | 列出所选数据集的可用指标。 |
| 3 | get_metadata(dataset, ...) | 获取有效的筛选器值(状态、年份、类别)和API参数。 |
| 4 | get_data(dataset, filters) | 使用元数据中的筛选器键值对获取数据。 |
重要提示: 工具必须按顺序调用。跳过 get_metadata 将导致无效的筛选代码。
______________________________________________________________________
快速开始
如果你想将你选择的AI代理与MCP服务器连接,你可以直接将其与MOSPI的MCP服务器连接。此处提供将ChatGPT或Claude连接到MCP的视频指南-
https://github.com/user-attachments/assets/ec23db03-c5ad-4bdd-af3a-9387bd906b3c
https://github.com/user-attachments/assets/4d2adb2a-a350-4563-8408-c0790bb94412
欲了解更多信息,请访问-https://www.datainnovation.mospi.gov.in/mospi-mcp
以下说明适用于MCP服务器的自托管。
安装
# Clone the repository
git clone https://github.com/nso-india/esankhyiki-mcp.git
cd esankhyiki-mcp
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt运行服务器
# HTTP transport (remote access)
python mospi_server.py
# OR using FastMCP CLI
fastmcp run mospi_server.py:mcp --transport http --port 8000
# stdio transport (local MCP clients)
fastmcp run mospi_server.py:mcp服务器运行于 http://localhost:8000/mcp
从CLI工具连接
服务器URL: https://mcp.mospi.gov.in/
克劳德代码
claude mcp add esankhyiki-mcp --transport http https://mcp.mospi.gov.in/证实 claude mcp list.
光标/风帆
添加 .cursor/mcp.json 或 .windsurf/mcp.json:
{
"mcpServers": {
"esankhyiki-mcp": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.mospi.gov.in/"]
}
}
}反重力
添加到您的反重力MCP设置中:
{
"mcpServers": {
"mospi_api": {
"serverUrl": "https://mcp.mospi.gov.in/"
}
}
}验证连接
curl -s -X POST https://mcp.mospi.gov.in/ \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}'返回成功响应 serverInfo 随着 "name": "MoSPI Data Server".
本地服务器
如果在本地运行:
claude mcp add esankhyiki-mcp --transport http http://localhost:8000/mcp或者使用FastMCP Python客户端:
import asyncio
from fastmcp import Client
async def main():
async with Client("http://localhost:8000/mcp") as client:
overview = await client.call_tool("list_datasets", {})
print(overview)
asyncio.run(main())______________________________________________________________________
部署
码头工人
# Build the image
docker build -t mospi-mcp .
# Run the container
docker run -d -p 8000:8000 --name mospi-server mospi-mcpDocker Compose
包括用于分布式跟踪可视化的Jaeger:
docker-compose up -d服务:
- MoSPI服务器: http://localhost:8000/mcp
- Jaeger用户界面: http://localhost:16686
FastMCP云
- 将代码推送到GitHub
- 登录到…… FastMCP云
- 使用入口点创建项目
mospi_server.py:mcp
______________________________________________________________________
建筑
mospi-mcp-api/
├── mospi_server.py # FastMCP server - tools, validation, routing
├── mospi/
│ └── client.py # MoSPI API client - HTTP requests to api.mospi.gov.in
├── swagger/ # Swagger YAML specs per dataset (source of truth for params)
│ └── swagger_user_*.yaml
├── observability/
│ └── telemetry.py # OpenTelemetry middleware for tracing
├── tests/ # Pytest suite (covering all 23 datasets)
├── Dockerfile # Production container with OTEL instrumentation
├── docker-compose.yml # Full stack with Jaeger
└── requirements.txt设计原则
| 原理 | 实施 |
|---|---|
| Swagger作为真理之源 | 根据中的YAML规范验证API参数 swagger/,不是硬编码的 |
| 自动布线 | 基于过滤器的CPI路由到组/项目端点;IIP路线至年度/月度 |
| 验证优先 | API调用前验证的所有筛选器,并带有明确的错误消息 |
| LLM优化 | 工具文档字符串文档参数、返回值和工作流序列 |
______________________________________________________________________
测试
pip install -r tests/requirements-test.txt
pytest tests/ -v -p no:anyio在MCP服务器上运行进程内(不需要运行服务器)。涵盖所有4个工具的所有23个数据集。看 贡献.md 了解详情。
______________________________________________________________________
配置
OpenTetry的环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
OTEL_SERVICE_NAME | 跟踪中的服务名称 | mospi-mcp-server |
OTEL_EXPORTER_OTLP_ENDPOINT | OTLP收集器端点 | http://localhost:4317 |
OTEL_EXPORTER_OTLP_PROTOCOL | 协议(grpc 或 http/protobuf) | grpc |
OTEL_TRACES_EXPORTER | 出口商类型(otlp, console, none) | otlp |
看 .env.example 查看完整配置选项。
______________________________________________________________________
贡献
我们欢迎捐款!请看 贡献.md 关于以下方面的指导方针:
- 添加新数据集
- 项目结构
- 开发设置
- 代码风格
______________________________________________________________________
资源
- MoSPI开放API -API官方文件和e-Sankhyiki门户网站
- FastMCP文档 -MCP框架文档
- 模型上下文协议 -MCP规范
______________________________________________________________________
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
DIID
数据创新实验室旨在促进官方统计中信息技术的创新和使用,包括调查方法的现代化。它试图解决国家统计系统目前面临的挑战。该实验室将作为一个平台,通过概念验证项目测试和开发新想法。它将促进与企业家、研究人员、初创企业、学术机构以及著名的国家和国际组织等广泛参与者的合作。通过创造一个开放和动态的环境,该实验室将支持统计系统的进步,并帮助提高数据收集和分析的质量和效率。
了解更多:https://www.datainnovation.mospi.gov.in/home
致谢
与合作伙伴共同制造 巴拉特数字 追求政府如何利用技术为公众服务的现代化和人性化。
