集群MCP-终极研究数据套件
一个全面的monorepo,包含六个专门的MCP服务器,供研究人员和分析师使用。
MCP协议: 2025-11-25 | 运输:stdio+可流式传输HTTP| 软件开发工具包:@modelcontextprotocol/sdk v1.25+
🔬 服务器
研究mcp
学术文献与引文
- OpenAlex:搜索论文,获取详细的元数据
- Crossref:BibTeX引用,DOI决议
- 欧洲 PMC:开放获取全文链接
社会经济mcp
经济和社会指标
- 世界银行:国内生产总值、就业、发展指标
- 欧盟统计局:欧盟统一统计(JSON统计)
- 经济合作与发展组织:通过SDMX提供的经济数据
- 国际劳工组织:劳动力统计
新闻mcp
全球新闻监测
- GDELT文档2.0:实时新闻搜索和时间线
- 全球新闻来源的全文搜索
- 情绪分析和趋势话题
健康mcp
全球健康指标
- 世界卫生组织全球卫生组织OData:健康统计的主要来源
- 使用OData性别/年份过滤器和本地地理过滤,以保持在世界卫生组织的1千行上限之下
- 经合组织 SDMX:补充健康流量
- 世界银行:健康、营养、人口回落
环境mcp
空气质量监测
- OpenAQ v3:最新和历史测量
- 通过X-API-Key标头处理速率限制
- 使用传感器元数据按参数、边界框或半径进行位置搜索
- 历史和平均(小时/天/月/年)时间序列检索
- 每个位置的数据可用性和传感器覆盖范围检查
- 来源于OpenAQ目录的国家ID(运行
node scripts/fetch-openaq-countries.mjs同步时) - 提示:在针对特定城市/地区(如奥斯陆)时使用坐标+半径,因为许多OpenAQ提要省略了城市名称;为国家列表保留国家代码选项。
贸易mcp
国际贸易流量
- 一个 Comtrade APIM:具有订阅密钥的现代API
- 传统Comtrade API:APIM不可用时回退
- 线下目录:HS 2022,BEC Rev.5,SITC Rev.4,合作伙伴和记者缓存在
src/comtrade_data/
🚀 快速开始
安装和建造
npm install
npm run build运输方式
所有服务器支持 双重运输:
- 标准 (默认):用于Claude Desktop的本地CLI使用
- 超文本传输协议:用于远程/Docker部署的流式HTTP
克劳德桌面配置(stdio)
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"research-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/research-mcp/dist/server.js"],
"env": { "CONTACT_EMAIL": "your.email@domain.com" }
},
"socioeconomy-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/socioeconomy-mcp/dist/server.js"]
},
"news-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/news-mcp/dist/server.js"]
},
"health-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/health-mcp/dist/server.js"],
"env": { "CONTACT_EMAIL": "your.email@domain.com" }
},
"environment-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/environment-mcp/dist/server.js"],
"env": { "OPENAQ_API_KEY": "your-openaq-key" }
},
"trade-mcp": {
"command": "node",
"args": ["/path/to/cluster-mcp/servers/trade-mcp/dist/server.js"],
"env": {
"COMTRADE_API_KEY": "your-comtrade-key",
"COMTRADE_BASE_URL": "https://comtradeapi.un.org/data/v1/"
}
}
}
}Docker部署(HTTP)
使用Docker Compose运行所有服务器:
docker compose up -d这将启动端口8001-8006上的所有6台服务器:
| 服务器 | 端口 | 运行状况检查 |
|---|---|---|
| 社会经济mcp | 8001 | http://localhost:8001/health |
| 研究mcp | 8002 | http://localhost:8002/health |
| 新闻媒体 | 8003 | http://localhost:8003/health |
| 健康mcp | 8004 | http://localhost:8004/health |
| 环境mcp | 8005 | http://localhost:8005/health |
| 贸易货币政策 | 8006 | http://localhost:8006/health |
每台服务器都公开:
/health-健康检查端点/mcp-MCP可流式HTTP端点/-服务器信息
运行单个服务器
# Build and run with Docker
docker build -f servers/research-mcp/Dockerfile -t research-mcp .
docker run -p 8002:8005 -e CONTACT_EMAIL=you@example.com research-mcp
# Or run directly with Node
TRANSPORT=http PORT=8005 node servers/research-mcp/dist/server.js连接HTTP客户端
对于支持HTTP传输的MCP客户端:
{
"mcpServers": {
"research-mcp": {
"url": "http://localhost:8002/mcp"
}
}
}📊 示例用法
研究论文
// Search academic papers
search_papers({ q: "machine learning fairness" })
// Get paper details by DOI
get_paper({ doi: "10.1038/s41586-022-04566-9" })
// Get BibTeX citation
bibtex_for_doi({ doi: "10.1038/s41586-022-04566-9" })经济数据
// Get GDP time series for Sweden
get_series({
semanticId: "gdp_constant_prices",
geo: "SE",
years: [2010, 2024]
})
// Search indicators
search_indicator({ q: "employment rate" })
// Explain routing logic
explain_routing({ semanticId: "unemployment_rate", geo: "DE" })新闻分析
// Search recent news
search_news({
q: "municipal AI policy Sweden",
max: 100
})
// Get timeline data
timeline({
q: "climate change adaptation",
mode: "timelinevolraw"
})🛠 发展
Monorepo结构
cluster-mcp/
├── packages/core/ # Shared utilities (@cluster-mcp/core)
├── servers/
│ ├── research-mcp/ # Academic literature server
│ ├── socioeconomy-mcp/ # Economic data server
│ ├── news-mcp/ # News monitoring server
│ ├── health-mcp/ # Global health indicators server
│ ├── environment-mcp/ # Air quality server
│ └── trade-mcp/ # International trade server
└── docs/ # Documentation可用脚本
npm run build-构建所有软件包和服务器npm run dev-开发观看模式npm run pack:all-将所有服务器打包成.mcpb捆绑包(需要全局mcpbCLI)npm test-运行测试(如果可用)
🔑 API键和速率限制
研究MCP
- OpenAlex:10万个请求/天,10个请求/秒(无需密钥)
- Crossref:在User-Agent中通过电子邮件礼貌地访问池
- 欧洲 PMC:打开API(无需密钥)
社会经济MCP
- 世界银行:打开API(无需密钥)
- 欧盟统计局:打开API(无需密钥)
- 经济合作与发展组织:打开SDMX API(不需要密钥)
- 国际劳工组织:打开SDMX API(不需要密钥)
MCP新闻
- GDELT:免费API(无需密钥)
健康MCP
- 世界卫生组织全球卫生组织:打开OData终结点(不需要密钥)
- 经合组织 SDMX:公共终结点(不需要密钥)
- 世界银行HNP:打开API(无需密钥)
环境MCP
- OpenAQ v3:需要API密钥通过
X-API-Key集管(60分钟,2000小时)
交易MCP
- 一个 Comtrade APIM:需要订阅密钥(
Ocp-Apim-Subscription-Key) - 传统Comtrade API:可选回退(不需要密钥)
推荐的环境变量
# Transport configuration (all servers)
TRANSPORT=stdio # 'stdio' (default) or 'http'
PORT=8005 # HTTP port (default: 8005)
HOST=0.0.0.0 # HTTP host (default: 0.0.0.0)
# research-mcp: Used for Crossref/OpenAlex polite access
CONTACT_EMAIL=your.email@domain.com
# environment-mcp: OpenAQ API key
OPENAQ_API_KEY=your-openaq-key
# trade-mcp: UN Comtrade credentials
COMTRADE_API_KEY=your-comtrade-key
COMTRADE_BASE_URL=https://comtradeapi.un.org/data/v1/
# Optional: Cache database path (defaults to in-memory)
CLUSTER_MCP_CACHE_PATH=./cache.db📈 速率限制和缓存
所有服务器都实现:
- 自动重试 具有指数退避(350ms、700ms、1050ms)
- 内存缓存 具有可配置的TTL,可按提供商系列(研究、健康、社会经济、环境、贸易)进行调谐
- 尊重速率限制 基于响应标头(
Retry-After,x-ratelimit-*)
📚 语义指示器
社会经济服务器包括15个预先映射的指标,包括跨提供商的路由:
employment_rate_15_64-15-64岁的就业率unemployment_rate-失业率占劳动力的百分比gdp_constant_prices-按2015年不变美元计算的国内生产总值inflation_cpi-消费者价格通胀population_total-总人口research_development-研发支出占GDP的百分比carbon_emissions-人均二氧化碳排放量life_expectancy-出生时预期寿命- …以及更多
🏗 建筑
核心包(@cluster-mcp/core)
共享公用设施包括:
- 运输:双传输支持(stdio+流式HTTP)
- 具有重试逻辑的HTTP客户端
- JSON统计和SDMX-JSON解析器
- 提供商路由和等效映射
- 内存缓存系统
- 类型定义
数据源
- 学术的:OpenAlex(2500多万篇论文),Crossref(130多万个DOI),欧洲PMC(生命科学)
- 经济的:世界银行(1400多项指标)、欧盟统计局(欧盟27国)、经合组织(38个国家)、国际劳工组织(劳工统计)
- 新闻GDELT(全球新闻监测,100多种语言)
- 健康:世界卫生组织全球卫生观察站、经合组织卫生统计、世界银行国家方案
- 环境:OpenAQ v3网络(4000多个城市)
- 贸易联合国贸易协会(APIM + legacy)
🧪 测试
运行集成测试(需要网络访问):
# Test specific providers
npm test -- --grep "OpenAlex"
npm test -- --grep "WorldBank"
npm test -- --grep "GDELT"
# Test semantic mapping
npm test -- --grep "routing"📦 MCP捆绑包
您可以将任何STDIO服务器作为模型上下文协议包发货,以供Claude Desktop等客户端使用。
- 安装捆绑器一次:
npm install -g @anthropic-ai/mcpb - 跑
npm run pack:all
这将重建每台服务器,并写入准备导入的捆绑包 bundles/.mcpb。每个服务器脚本也可以单独打包 npm -w run pack:mcpb 如果你只需要一捆。
📄 许可证
MIT许可证-有关API文档的详细信息,请参阅单个服务器自述文件。
🔮 路线图
v1.1(当前)
- 双传输支持(stdio+流式HTTP)
- 带有健康检查的Docker部署
- 所有6台服务器均已完全实施
v2.0(未来)
- NUTS/SCB区域编码
- 使用SQLite进行高级缓存
- Kubernetes部署清单
- OAuth 2.1身份验证支持
