统计协议服务器

一个通用的模型上下文协议(MCP)服务器,用于PX-Web统计API,支持多个统计机构的数据访问。

  • by alexatnordnet
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 alexatnordnet/mcp-scb-server

使用说明

MCP SCB服务器

用于PX Web统计API的通用模型上下文协议(MCP)服务器,从瑞典统计局(SCB)开始,可扩展到其他统计机构。

特性

  • 通用工具 跨多个PX Web API工作
  • 多API支持:瑞典统计局、芬兰统计局、冰岛、法罗群岛、格陵兰
  • 自动生成的客户端和工具 使用Kubb的OpenAPI规范
  • 速率限制合规性 针对不同的API
  • 多语言支持 (英语、瑞典语、芬兰语等)
  • 自定义端点支持 适用于任何兼容PX-Web的API

支持的API

  • 瑞典统计局: api.scb.se/OV0104/v1/doris/
  • 芬兰统计局: statfin.stat.fi/PXWeb/api/v1/
  • 冰岛统计局: px.hagstofa.is/px/api/v1/
  • 法罗群岛统计局: statbank.hagstova.fo/PXWeb/api/v1/
  • 格陵兰国家银行: bank.stat.gl/api/v1/
  • 自定义端点:支持任何兼容PX-Web的API

安装

npm install
npm run generate  # Generate code from OpenAPI specs
npm run build

发展

# Test the API registry system
npm run demo

# Verify TypeScript compilation
npm run verify

# Development mode
npm run dev

# Generate code from OpenAPI specs
npm run generate

用法

该服务器提供了7个通用工具,可在所有支持的API上工作:

核心工具

  • px_discover_apis -查找可用的统计API及其功能
  • px_get_root_navigation -浏览根数据库结构
  • px_get_navigation_by_path -导航到特定的数据库路径
  • px_search_tables -使用筛选功能搜索统计表
  • px_get_table_metadata -获取详细的表结构和变量
  • px_query_table_data -检索实际统计数据
  • px_get_api_config -获取API配置和限制

通用API访问

所有工具都接受 api_source 参数以针对不同的API:

// Query Sweden's statistics
{
  "api_source": "scb",
  "language": "en"
}

// Query Finland's statistics  
{
  "api_source": "statfi",
  "language": "en"
}

// Use a custom PX-Web API
{
  "api_source": "custom",
  "custom_endpoint": "https://your-api.com/PXWeb/api/v1",
  "language": "en"
}

MCP服务器设置

1.启动服务器

# Development mode
npm run mcp:dev

# Production mode
npm run mcp:start

2.配置克劳德桌面

看 claude-desktop-config.md 有关详细的设置说明。

3.测试服务器

# Test the API registry system
npm run demo

查询示例

连接到Claude Desktop后,您可以问:

  • “有哪些统计API可用?”
  • “显示瑞典的人口数据”
  • “在芬兰统计局查找经济指标”
  • “从多个北欧国家获取失业率”
  • “比较瑞典和芬兰的人口数据”

项目结构

  • src/ -源代码
  • src/generated/ -根据OpenAPI规范自动生成的代码
  • src/tools/ -MCP工具实现
  • specs/ -OpenAPI规范
  • scripts/ -构建和维护脚本

故障排除

TypeScript编译错误

如果你遇到TypeScript错误:

  1. 导入扩展错误:运行 npm run generate 使用固定导入重新生成代码
  2. 类型冲突:使用清除生成的文件 rm -rf src/generated 然后 npm run generate
  3. 构建缓存问题:删除 dist/ 文件夹并运行 npm run build

MCP服务器问题

  1. 服务器无法启动:

    • 检查是否安装了所有依赖项: npm install
    • 验证TypeScript编译: npm run verify
  2. 工具不工作:

    • 测试单个组件: npm run demo
    • 检查Claude桌面配置
  3. API费率限制:

    • 每个统计机构都有不同的费率限制
    • 服务器会自动遵守这些
    • 如果遇到速率限制错误,请稍候

手动测试

您可以测试单个组件:

# Test the API registry system
npm run demo

# Verify TypeScript compilation 
npm run verify

# Test the build process
npm run build