内容
# 公开英国公共数据MCP
公开英国公共数据MCP是一个无密钥优先的模型上下文协议服务器,用于提供有用的英国公共数据。
目标是为Claude、Hermes、Cursor和其他MCP客户端提供一个可靠的端点,用于回答常见的英国公共数据问题:邮政编码、GOV.UK内容、银行假日、碳强度、公共数据集、洪水监测、议会/法律/统计查询,以及可选密钥增强功能,如Companies House、EPC、Ordnance Survey和TfL。
## 状态
MVP已交付:**23+ MCP工具**,FastAPI浏览器API和 **`web/`** React地图UI。Tier C待办事项(EPC、气象办公室、议会)仍然是可选的。
## 原则
- 无密钥优先:核心工具必须在无需注册的情况下工作。
- 来源引用:每个工具返回上游来源的元数据和检索时间。
- 官方优先:优先使用官方的英国公共部门API;明确标记社区/非官方来源。
- 薄适配器:规范化有用的字段,但保留上游有效载荷。
- 可选增强:API密钥来源仅允许作为可选模块。
- 默认只读:初始项目中没有公共部门的写入操作。
## 当前工具
- `health_check` — 服务器健康状况和配置的源计数。
- `list_sources` — 源注册表,包含身份验证/许可证/新鲜度注释。
- `plan_uk_public_data_research` / `get_research_methodology` / `save_uk_research_note` — 代理规划界面。
- `lookup_postcode` — 通过postcodes.io进行邮政编码查找。
- `get_bank_holidays` — 英国政府银行假日,按英国地区划分。
- `get_carbon_intensity` — 英国国家电网ESO碳强度。
- `search_govuk` — 英国政府搜索API。
- `search_public_datasets` — data.gov.uk CKAN包搜索。
- `list_flood_warnings` / `search_flood_areas` — 环境署洪水监测(英格兰)。
- `search_ons_datasets` / `get_ons_dataset` / `get_ons_latest_version` / `get_ons_observations` — ONS Beta API。
- `search_planning_applications` — planning.data.gov.uk(英格兰)。
- `get_cpih_inflation_headline` — ONS观测的CPIH月环比%。
- `list_uk_regions` — 资源管理器地理元数据(样本邮政编码)。
- `police_street_crime_near` — data.police.uk 附近的纬度/经度。
- `search_mp_by_postcode`, `search_constituencies` — 英国议会成员API。
- `met_office_site_forecast` — 气象办公室DataHub(可选 `MET_OFFICE_DATAHUB_API_KEY`)。
- `companies_house_company_profile` — 可选 `COMPANIES_HOUSE_API_KEY`。
- `os_places_find_place` — 可选 `OS_PLACES_API_KEY`。
- `tfl_line_status` — 可选 `TFL_APP_ID` + `TFL_APP_KEY`.
实施计划:`docs/plans/2026-07-05-openuk-v1-implementation.md`。测试简报:`docs/tests/Q2-executive-report.md`。
## 快速入门
```bash
cd /home/stephen/projects/OpenUKPublicDataMCP
python3.11 -m venv .venv
. .venv/bin/activate
pip install -e '.[dev]'
python -m openukpublicdata_mcp.server
```
运行验证:
```bash
pytest
fastmcp inspect src/openukpublicdata_mcp/server.py:mcp
fastmcp list src/openukpublicdata_mcp/server.py --json
fastmcp call src/openukpublicdata_mcp/server.py lookup_postcode postcode='SW1A 1AA' --json
```
## Hermes MCP 配置
服务器稳定后,使用 `hermes config set` 注册到Hermes,而不是直接编辑配置文件:
```bash
hermes config set mcp_servers.openukpublicdata.command "/home/stephen/projects/OpenUKPublicDataMCP/.venv/bin/python"
hermes config set mcp_servers.openukpublicdata.args '["-m", "openukpublicdata_mcp.server"]'
hermes config set mcp_servers.openukpublicdata.timeout 120
hermes config set mcp_servers.openukpublicdata.connect_timeout 60
```
更改MCP配置后重启Hermes。
## Web 资源管理器
```bash
./scripts/run-web.sh
# http://127.0.0.1:8765
```
参见 `web/README.md` 了解开发模式(Vite + API)。
## 研究
参见 `research/LINKS.md` 和 `research/github-projects/` 了解第一个竞争对手/来源的注释。