内容
# 科拉达 MCP 服务器
一个干净、独立的 MCP(模型上下文协议)服务器,用于瑞典的科拉达市政统计 API。
## 概述
该服务器为 AI 应用提供访问瑞典综合的市政和区域统计数据库的权限。它支持对数千个关键绩效指标(KPI)进行自然语言查询,涵盖瑞典公共部门数据的各个方面。
## 功能
- **9 种 MCP 工具**,实现全面数据访问
- 使用瑞典 BERT 嵌入的**语义搜索**
- **无外部依赖** - 完全独立(无 Mima 或 Redis)
- **容器化**,支持 Docker
- **现代 Python 3.11+**,带有类型提示和 async/await
## 可用工具
| 工具 | 描述 |
|------|-------------|
| `list_operating_areas` | 列出所有 KPI 类别及其数量 |
| `get_kpis_by_operating_area` | 获取特定类别下的 KPI |
| `search_kpis` | 使用自然语言进行 KPI 语义搜索 |
| `get_kpi_metadata` | 获取特定 KPI 的详细元数据 |
| `fetch_kolada_data` | 为市镇获取原始 KPI 数据 |
| `analyze_kpi_across_municipalities` | 比较分析与排名 |
| `compare_kpis` | 比较两个 KPI(差异或相关性) |
| `list_municipalities` | 列出市镇/地区 |
| `filter_municipalities_by_kpi` | 按 KPI 阈值过滤 |
## 安装
### 使用 pip
```bash
pip install -e .
```
### 使用 Docker
```bash
docker-compose up -d kolada-mcp
```
## 使用
### 标准输入模式(默认)
```bash
kolada-mcp
# 或
python -m kolada_mcp
```
### HTTP 模式
```bash
MCP_TRANSPORT=http PORT=8001 kolada-mcp
```
### Claude 桌面集成
将以下内容添加到您的 Claude 桌面配置中:
```json
{
"mcpServers": {
"kolada": {
"command": "kolada-mcp"
}
}
}
```
## 配置
环境变量:
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `MCP_TRANSPORT` | `stdio` | 传输模式(`stdio` 或 `http`) |
| `PORT` | `8001` | HTTP 服务器端口 |
| `LOG_LEVEL` | `INFO` | 日志级别 |
## 开发
### 设置
```bash
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate
# 安装开发依赖
pip install -e ".[dev]"
```
### 运行测试
```bash
pytest
```
### 代码质量
```bash
# linting
ruff check src tests
# 类型检查
mypy src
```
## 架构
```
src/kolada_mcp/
├── __init__.py # 包初始化
├── __main__.py # 入口点
├── config.py # 设置(Pydantic)
├── server.py # FastMCP 服务器
├── models/
│ └── types.py # 数据模型
├── services/
│ ├── kolada_client.py # API 客户端
│ ├── embeddings.py # 语义搜索
│ └── data_processing.py
└── tools/
├── metadata.py # KPI 元数据工具
├── data.py # 数据获取工具
├── municipality.py # 市镇工具
└── comparison.py # 比较工具
```
## 许可证
Apache-2.0