SCB MCP服务器-瑞典统计局数据访问
一个模型上下文协议 (MCP) 服务器,用于访问中央统计局 (SCB) 的开放数据 API。该服务器允许人工智能助理搜索、浏览和检索瑞典语和英语的SCB统计数据。
一种MCP(模型上下文协议)服务器,用于访问瑞典统计局(SCB)的开放数据API。该服务器使AI助手能够从SCB搜索、浏览和获取瑞典语和英语的统计数据。
🌟 功能 / Features
- 多语言 / Multilingual支持瑞典语(sv)和英语(en)
- 完整数据探索/完整数据探索浏览 SCB 元数据树
- 查找表格 / Search for tables查找相关的统计表
- 数据采集 / Data Fetching使用灵活查询获取实际统计数据
- 两种运行模式 Two Run Modes:
- 标准适用于 Claude Desktop 的本地使用 - HTTP/SSE用于外部 AI 助理的远程访问
📋 前提条件 / Prerequisites
- Python 3.11 或更高版本
- pip(Python包安装程序)
- Docker 和 Docker Compose(可选用于容器化部署)
🚀 安装
基本安装 / Basic Installation
- Klona项目/克隆存储库:
cd PxMCPPoC- Installera beroenden/安装依赖项:
pip install -r requirements.txtDocker安装
# Bygg och starta servern / Build and start the server
docker-compose up -d
# Kontrollera status / Check status
docker-compose ps
# Visa loggar / View logs
docker-compose logs -f🎯 使用 / Usage
运行模式 1: stdio (使用 Claude Desktop)
此模式用于与 Claude Desktop 或其他本地 MCP 客户端集成。
启动服务器n/启动服务器:
python scb_mcp_server.pyKonfigurera克劳德桌面:
在您的 Claude Desktop 配置中添加以下内容(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:
{
"mcpServers": {
"scb-statistics": {
"command": "python",
"args": [
"-u",
"/absolut/sökväg/till/PxMCPPoC/scb_mcp_server.py"
]
}
}
}运行模式2:HTTP/SSE(远程访问)
此模式将服务器暴露在一个端口上,供 AI 助理外部访问。
启动HTTP服务器n/启动HTTP服务器:
python scb_mcp_server_http.py服务器启动于 http://localhost:8000
端点:
GET /-服务器信息GET /health- 健康检查GET /sse用于MCP通信的SSE终端POST /messages基于POST的MCP通信
配置用于 HTTP 访问的 MCP 客户端:
{
"mcpServers": {
"scb-statistics-http": {
"url": "http://localhost:8000/sse",
"transport": "sse"
}
}
}🛠️ 可用工具 / Available Tools
1. scb_browse_metadata
浏览 SCB 元数据树以查找可用表格。
参数/参数:
path(可选):元数据树中的搜索路径(例如“AM/AM0401”)language(可选): “sv” 或 “a” (默认: “sv”)
实例 / 例子:
{
"path": "",
"language": "sv"
}2. scb_search_tables
搜索包含关键字的统计表格。
参数/参数:
query(必填):搜索查询(例如“人口”、“失业率”)language(可选): “sv” 或 “a”
实例 / 例子:
{
"query": "befolkning",
"language": "sv"
}3. scb_get_table_metadata
获取特定表的详细元数据。
参数/参数:
table_id(需要): SCB 表 ID (例如“BE0101N1”)language(可选): “sv” 或 “a”
实例 / 例子:
{
"table_id": "BE0101N1",
"language": "sv"
}4. scb_fetch_data
从表中获取实际统计数据。
参数/参数:
table_id(必填): SCB 表 IDquery(必需):包含变量和值的查询规范language(可选): “sv” 或 “a”
实例 / 例子:
{
"table_id": "BE0101N1",
"query": {
"Region": ["*"],
"Tid": ["2023", "2024"]
},
"language": "sv"
}5. scb_get_table_info
获取有关表格的一般信息。
参数/参数:
table_id(必填): SCB 表 IDlanguage(可选): “sv” 或 “a”
🧪 测试/测试
运行测试脚本以验证安装和功能:
python test_scb_client.py这测试:
- 连接到SCB API(瑞典语和英语)
- 元数据浏览
- 表访问
- MCP 工具功能
📚 用例 / Usage Examples
例1:查找人口数据
# 1. Sök efter befolkningstabeller
scb_search_tables(query="befolkning", language="sv")
# 2. Hämta metadata för en tabell
scb_get_table_metadata(table_id="BE0101N1", language="sv")
# 3. Hämta data
scb_fetch_data(
table_id="BE0101N1",
query={"Region": ["*"], "Tid": ["2023"]},
language="sv"
)例二:失业统计
# 1. Bläddra i arbetsmarknadsdata
scb_browse_metadata(path="AM", language="sv")
# 2. Sök efter arbetslöshetstabeller
scb_search_tables(query="arbetslöshet", language="sv")🔧 配置 / Configuration
Miljövariabler/环境变量
创建一个 .env文件基于 .env.example:
cp .env.example .env编辑 .env:
HOST=0.0.0.0
PORT=8000
LOG_LEVEL=INFO
DEFAULT_LANGUAGE=sv📖 SCB API信息
API文档 / API文档
- 渣打银行API: https://www.scb.se/api
- pyscbwrapper GitHub: https://github.com/kirajcg/pyscbwrapper
- SCB统计数据:https://www.statistikdatabasen.scb.se
Vanliga tabell ID:n/通用表ID
BE0101N1按年龄和性别划分的人口TAB638按性别和年龄分列的人口AM0401N1- 失业
🐛 故障排除 / Troubleshooting
Vanliga问题/常见问题
问题:“ModuleNotFoundError:没有名为'mcp'的模块”
pip install --upgrade mcp问题:HTTP 访问时连接被拒绝
- 检查服务器是否正在运行:
curl http://localhost:8000/health - 检查防火墙设置
- 检查端口 8000 是否可用
问题:SCB API超时
- 检查互联网连接
- SCB API 可能暂时不可用
- 直接在浏览器中测试:https://api.scb.se/OV0104/v1/doris/sv/ssd/
🤝 投标/出资
欢迎捐款!请:
- Fork 工程
- 创建一个 feature branch (
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推动行业(
git push origin feature/amazing-feature) - 打开 Pull Request
📄 许可证/执照
这个项目是开源的,可以在MIT许可证下使用。
🙏 感谢/Acknowledgements
- pyscbwrapper: https://github.com/kirajcg/pyscbwrapper
- SCB(中央银行)开放数据 API
- 模型上下文协议: https://modelcontextprotocol.io
- Anthropic对于 Claude 和 MCP 规格
📞 支持
如有疑问或问题:
- 在 GitHub 上创建问题
- 联系项目维护者
______________________________________________________________________
开发于❤️ 开放数据和AI集成
