chuk mcp她
MCP服务器历史环境记录 --用于查询英格兰和苏格兰历史环境记录的模型上下文协议(MCP)服务器。通过历史英格兰和历史环境苏格兰的实时ArcGIS REST API搜索列出的建筑、预定古迹、注册公园、战场、受保护的沉船和世界遗产。
这是一个为学习和测试目的而提供的演示项目。
 
特性
此MCP服务器通过以下方式提供对历史环境记录的结构化访问 28工具 穿过 10个类别,查询 6个数据源 通过实时ArcGIS REST API和Heritage Gateway网络抓取。
关键能力:
- 源注册表模式 --用于NHLE、AIM、保护区、濒危遗产、遗产网关和苏格兰(HES)的可插拔适配器,具有统一的查询接口
- 英格兰+苏格兰覆盖范围 --历史英格兰的英格兰遗产,苏格兰历史环境的苏格兰遗产(320000+NRHE记录+指定资产)
- 空间优先查询 --通过ArcGIS Feature/Map Services进行边界框、点+半径和面积搜索
- BNG/WGS84坐标支持 --英国国家电网(EPSG:27700)和WGS84(EPSG:4326)之间的自动转换
- 交互式地图视图 --
her_map和her_crossref_map结构化回报MapContent用于在chuk-mcp-ui兼容客户端中渲染 - 所有工具都返回完全类型化的Pydantic v2模型 用于类型安全、验证和出色的IDE支持
- 大多数工具支持
output_mode="text"用于人类可读的输出以及默认的JSON
1.服务器发现(her_status, her_list_sources, her_capabilities)
检查服务器运行状况,列出已注册的数据源,并获得完整功能:
- 源可用性和状态
- 每个源支持的查询类型
- LLM查询规划指南
2.NHLE查询(her_search_monuments, her_get_monument, her_search_listed_buildings, her_search_designations, her_count_features)
搜索英格兰国家遗产名录:
- 按地点、名称或描述列出的古迹
- 有等级过滤的上市建筑(I、II\*、II)
- 在所有6种名称类型中进行通用名称搜索
- 快速功能计数,无需获取完整记录
- 基于偏移的分页
3.航空测绘(her_search_aerial, her_count_aerial, her_get_aerial_feature)
搜索航测测绘数据:
- 航空照片和激光雷达的考古特征
- NHLE中未包含的Cropmarks、土方工程和地物
- 纪念碑类型和时期过滤
- 快速功能计数,无需获取完整记录
- 各个航空测绘功能的完整细节
4.保护区(her_search_conservation_areas, her_count_conservation_areas, her_get_conservation_area)
搜索历史悠久的英格兰8000多个保护区:
- 按名称、当地规划局或位置搜索
- 边界框和点+半径空间查询
- 快速计数,无需获取完整记录
- 详细信息,包括指定日期和地区
5.濒危遗产(her_search_heritage_at_risk, her_count_heritage_at_risk, her_get_heritage_at_risk)
搜索濒危遗产登记簿:
- 有损失风险的遗产资产年度登记册
- 按遗产类别筛选(列入名录的建筑、列入名录的纪念碑等)
- 通过边界框或点+半径进行空间搜索
- 每个条目的风险方法细节
6.遗产门户(her_search_heritage_gateway)
通过Heritage Gateway搜索当地历史环境记录:
- 通过网络抓取尽最大努力访问60多个本地HER
- 未指定的地点、发现点和HER纪念碑条目
- 当Gateway不可用时,优雅地返回空结果
7.苏格兰(her_search_scotland, her_get_scotland_record, her_search_scotland_designations)
搜索苏格兰历史环境记录:
- 通过坎莫尔点记录了320000多个国家历史环境记录(NRHE)
- 指定资产:列入名录的建筑物、预定古迹、花园和设计景观、战场、世界遗产地、保护区、历史海洋保护区
- 站点类型、大类和议会区域过滤
- Canmore ID个人记录的完整详细信息
8.交叉引用(her_cross_reference, her_enrich_gateway, her_nearby)
空间匹配、丰富和邻近搜索:
- 将候选地点与已知遗产资产进行对照
- 将候选人分为匹配、接近或新颖
- 基于网格的空间索引,用于高效批处理(O(n+m)摊销)
- 可选AIM天线功能集成(
include_aim参数) - 标识类型过滤(单类型或逗号分隔)
- 每个资产有11个字段(来源、等级、纪念碑类型、时期、形式、证据)的丰富匹配输出
- 使用解析的BNG坐标丰富Gateway记录,以便进行交叉引用
- 查找附近具有距离和方位的遗产资产
- 接受WGS84和BNG坐标
9.出口(her_export_geojson, her_export_for_lidar)
导出和格式化结果:
- 用于QGIS、传单或其他GIS工具的GeoJSON FeatureCollection
- LiDAR交叉参考格式,每个来源都有丰富的元数据:
- NHLE场地等级 - 目的:具有纪念碑类型、时期、形式、证据的航空特征 - 具有monument_type和句点的网关站点
- 可选AIM集成(
include_aim)和网关站点(gateway_sites)用于激光雷达出口
10.地图可视化(her_map, her_crossref_map)
交互式遗产地图呈现为结构化 MapContent 对于chuk mcp ui客户:
her_map--并行查询多达五个来源(NHLE、AIM、保护区、濒危遗产、苏格兰),并将每个来源呈现为一个明确的颜色编码层;NHLE结果按指定类型划分,以便进行视觉分离her_crossref_map--运行与相同的分析her_cross_reference然后渲染四个颜色编码层:绿色(匹配)、琥珀色(接近)、红色(新发现/潜在新发现)、灰色(已知资产)- 标记聚类、弹出模板和图层切换控件
- 接受WGS84 bbox或lat/lon/radius_m;BNG交叉参考地图候选人
工具参考
所有工具都接受可选 output_mode 参数("json" 违约,或 "text" 用于人类可读输出)。
| 工具 | 类别 | 描述 | 状态 |
|---|---|---|---|
her_status | 发现 | 服务器运行状况和源可用性 | 活动 |
her_list_sources | 发现 | 列出具有功能的已注册数据源 | 活动 |
her_capabilities | 发现 | LLM规划的完整服务器功能列表 | 活动 |
her_search_monuments | NHLE | 按地点或名称搜索预定古迹 | 活动 |
her_get_monument | NHLE | 获取特定纪念碑的完整细节 | 活动 |
her_search_listed_buildings | NHLE | 使用等级过滤器搜索列出的建筑 | 活动 |
her_search_designations | NHLE | 搜索所有名称类型 | 活动 |
her_count_features | NHLE | 快速统计某个区域的特征 | 活动 |
her_search_aerial | 航空 | 搜索航空调查测绘数据 | 活动 |
her_count_aerial | 航空 | 统计一个地区的航空测绘特征 | 活动 |
her_get_aerial_feature | 航空 | 获取航空测绘功能的完整细节 | 活动 |
her_search_conservation_areas | 保护 | 按名称、LPA或位置搜索保护区 | 活动 |
her_count_conservation_areas | 保护 | 统计一个地区的保护区 | 活动 |
her_get_conservation_area | 保护 | 获取保护区的完整详细信息 | 活动 |
her_search_heritage_at_risk | 有风险 | 搜索有风险遗产登记条目 | 活动 |
her_count_heritage_at_risk | 有风险 | 统计一个地区的有风险遗产条目 | 活跃 |
her_get_heritage_at_risk | 有风险 | 获取有风险遗产的完整详细信息 | 活动 |
her_search_heritage_gateway | 网关 | 通过Heritage Gateway搜索本地HER数据 | 活动 |
her_search_scotland | 苏格兰 | 搜索苏格兰NRHE记录(320K多个网站) | 活跃 |
her_get_scotland_record | 苏格兰 | 获取苏格兰NRHE记录的完整细节 | 活跃 |
her_search_scotland_designations | 苏格兰 | 搜索苏格兰指定遗产资产 | 活跃 |
her_cross_reference | 交叉引用 | 将候选对象与已知资产进行交叉引用 | 活动 |
her_enrich_gateway | 交叉引用 | 解析网关记录坐标以进行交叉引用 | 活动 |
her_nearby | 交叉引用 | 查找某点附近的NHLE遗产资产(仅限英格兰) | 活动 |
her_export_geojson | 导出 | 将结果导出为GeoJSON FeatureCollection | 活动 |
her_export_for_lidar | 导出 | 导出已知站点以进行LiDAR交叉引用 | 活动 |
her_map | 地图 | 带颜色编码图层的多源遗产地图 | 活动 |
her_crossref_map | 地图 | 颜色编码的交叉参考地图(匹配/接近/新颖/已知) | 活动 |
数据源
| 来源 | 名称 | 组织 | 覆盖范围 | API类型 | 状态 |
|---|---|---|---|---|---|
nhle | 英格兰国家遗产名录 | 历史英格兰 | 英格兰 | ArcGIS Feature Service | 活动 |
aim | 航空调查和制图 | 历史英格兰 | 英格兰 | ArcGIS Feature Service | 活动 |
conservation_area | 保护区 | 历史英格兰/LPA | 英格兰 | ArcGIS Feature Service | 活动 |
heritage_at_risk | 濒危遗产登记册 | 历史英格兰 | 英格兰 | ArcGIS Feature Service | 活动 |
heritage_gateway | 遗产门户(当地HER) | 历史悠久的英格兰/当地HER | 英格兰 | 网络爬虫 | 活跃 |
scotland | 苏格兰历史环境 | 苏格兰历史环境 | ArcGIS地图服务 | 活动 |
NHLE标识类型
| 类型 | 描述 |
|---|---|
listed_building | 上市建筑(一级、二级\*、二级) |
scheduled_monument | 预定古迹 |
park_and_garden | 注册公园和花园 |
battlefield | 注册战场 |
protected_wreck | 受保护的沉船遗址 |
world_heritage_site | 世界遗产 |
安装
使用uvx(推荐-无需安装!)
uvx chuk-mcp-her使用紫外线(建议用于开发)
# Install from PyPI
uv pip install chuk-mcp-her
# Or clone and install from source
git clone
cd chuk-mcp-her
uv sync --dev使用pip(传统)
pip install chuk-mcp-her可选:亚米坐标精度
# Install pyproj for sub-metre BNGWGS84 conversion
# Without pyproj, Helmert approximation (~5m accuracy) is used
pip install chuk-mcp-her[pyproj]用法
使用克劳德桌面
选项1:使用uvx在本地运行
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"her": {
"command": "uvx",
"args": ["chuk-mcp-her"]
}
}
}选项2:使用pip在本地运行
{
"mcpServers": {
"her": {
"command": "chuk-mcp-her"
}
}
}使用Python SDK
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="uvx",
args=["chuk-mcp-her"],
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"her_search_monuments",
{"name": "Stonehenge", "max_results": 5},
)独立
# STDIO mode (default, for MCP clients)
chuk-mcp-her stdio
# HTTP mode (for web access)
chuk-mcp-her http
chuk-mcp-her http --port 8010
# Auto-detect mode
chuk-mcp-herSTDIO模式 适用于Claude Desktop和MCP-cli等MCP客户端。 HTTP模式 在上运行web服务器http://localhost:8010用于基于HTTP的MCP客户端。
CLI(mcp-CLI)
mcp-cli chat --server her示例用法
配置后,您可以提出以下问题:
- “列出可用的遗产数据源”
- “寻找巨石阵附近的预定古迹”
- “查找伦敦市中心的一级保护建筑”
- “这个边界框中有多少遗产资产?”
- “获得1002345纪念碑的完整记录”
- “伦敦塔500米范围内有哪些遗产?”
- “将Maldon地区的所有预定古迹导出为GeoJSON”
- “将这些激光雷达测量点与已知遗产进行交叉参考”
- “在地图上显示巨石阵2公里范围内的所有遗产资产”
- “将我的激光雷达候选者与已知的预定古迹进行对比,并显示哪些是潜在的新发现”
- “在英国海岸搜寻受保护的沉船”
- “查找巴斯附近的注册公园和花园”
- “寻找海布里奇盆地和托尔斯伯里之间黑水河口北岸的所有红色山丘”
- “在苏格兰高地寻找城堡”
- “搜索因弗内斯附近的兄弟”
- “爱丁堡有哪些预定的纪念碑?”
多源查询: 工具描述指导LLM代理进行组合 多个来源自动。一个类似“找到附近的所有红色山丘”的查询 “黑水”将提示特工搜查NHLE(指定古迹)、AIM (航空测绘特征)和Heritage Gateway(当地HER记录),然后 合并结果以实现全面覆盖。
模型无关: MCP服务器可与任何支持以下功能的LLM提供程序配合使用 函数调用——Claude、GPT、Gemini或任何其他兼容MCP的客户端。 通过Claude Desktop、mcp-cli或 Python SDK。
运行示例
cd examples
python capabilities_demo.py # server capabilities, sources, tools
python quick_start.py # quick intro: status, count, search, nearby
python nhle_search_demo.py # scheduled monument and listed building search
python aerial_search_demo.py # aerial investigation mapping features
python conservation_area_demo.py # conservation area search
python heritage_at_risk_demo.py # heritage at risk register
python nearby_demo.py # find heritage assets near a point
python export_demo.py # GeoJSON export
python gateway_search_demo.py # Heritage Gateway local HER search
python cross_reference_demo.py # cross-reference candidates (with AIM)
python enrichment_pipeline_demo.py # Gateway enrichment + cross-reference
python blackwater_estuary_scenario.py # multi-source scenario
python scotland_search_demo.py # Scottish NRHE search (Canmore)
python scotland_designations_demo.py # Scottish designated heritage assets| 脚本 | 网络 | 演示工具 |
|---|---|---|
capabilities_demo.py | 没有 | her_capabilities, her_list_sources, her_status |
quick_start.py | 是的 | her_status, her_count_features, her_search_monuments, her_get_monument, her_nearby |
nhle_search_demo.py | 是的 | her_search_monuments, her_get_monument, her_search_listed_buildings, her_search_designations, her_count_features |
aerial_search_demo.py | 是的 | her_search_aerial, her_count_aerial, her_get_aerial_feature |
conservation_area_demo.py | 是的 | her_search_conservation_areas, her_count_conservation_areas, her_get_conservation_area |
heritage_at_risk_demo.py | 是的 | her_search_heritage_at_risk, her_count_heritage_at_risk, her_get_heritage_at_risk |
nearby_demo.py | 是的 | her_nearby |
export_demo.py | 是的 | her_export_geojson, her_export_for_lidar |
gateway_search_demo.py | 是的 | her_search_heritage_gateway |
cross_reference_demo.py | 是的 | her_cross_reference (与 include_aim) |
enrichment_pipeline_demo.py | 是的 | her_enrich_gateway, her_search_heritage_gateway, her_cross_reference, her_count_features |
blackwater_estuary_scenario.py | 是 | 使用NHLE、AIM、保护区、濒危遗产的多源情景 |
scotland_search_demo.py | 是的 | her_search_scotland, her_get_scotland_record |
scotland_designations_demo.py | 是的 | her_search_scotland_designations, her_search_scotland |
建筑
MCP Client (Claude, mcp-cli, etc.)
|
| MCP protocol (stdio / HTTP)
v
+-------------------------------+
| Tool Functions |
| discovery/ nhle/ aerial/ |
| conservation_area/ scotland/ |
| heritage_at_risk/ gateway/ |
| crossref/ export/ map/ |
+-------------------------------+
|
| validate params, format response
v
+-------------------------------+
| SourceRegistry |
| (unified query interface) |
+-------------------------------+
| | | | | |
NHLEAdapter | CA HAR | ScotlandAdapter
AIMAdapter | Adapter Adapter| (2 clients)
| GatewayAdapter
v v v v v
+------------------+ +------------------+ +------------------+
| ArcGIS Client | | Gateway Client | | ArcGIS Client |
| (HE FeatureSvr) | | (httpx, bs4) | | (HES MapServer) |
+------------------+ +------------------+ +------------------+
| | |
v v v
+------------------+ +------------------+ +------------------+
| HE ArcGIS Svc | | Heritage Gateway | | inspire.hes.scot |
| NHLE,AIM,CA,HAR | | (60+ local HERs) | | Canmore, HES Des |
+------------------+ +------------------+ +------------------+该服务器基于chuk-mcp服务器构建,使用:
- 异步优先:所有HTTP请求都使用httpx进行本地async/await
- 类型安全:Pydantic v2型号
extra="forbid"对于所有回复 - 源注册表模式:可插拔适配器在启动时注册,通过统一界面查询
- BNG/WGS84转换:赫尔默特变换,可选pyproj,亚米精度
- 文件系统缓存:基于TTL的逐源缓存,以减少API负载
- 速率限制:429/5xx上采用指数回退的每客户端速率限制
- chuk视图模式:地图工具返回
MapContent结构化视图通过chuk_view_schemas.chuk_mcp.map_tool装饰器 - 双输出:大多数工具支持
output_mode="text"用于人类可读的响应;地图工具返回结构化MapContent - 错误消息:来自的所有错误字符串
ErrorMessages常量--没有硬编码字符串
看 建筑.md 用于设计原则和数据流图。 看 规格.md 查看带有参数表的完整刀具规格。 看 ROADMAP.md 了解开发路线图和计划功能。
发展
设置
# Clone the repository
git clone
cd chuk-mcp-her
# Install with uv (recommended)
uv sync --dev
# Or with pip
pip install -e ".[dev]"运行测试
# Run tests
pytest tests/
# Run tests with coverage
pytest tests/ --cov=src/chuk_mcp_her --cov-report=term-missing
# Run a specific test file
pytest tests/test_coordinates.py -v代码质量
# Lint and format with ruff
ruff check src/ tests/
ruff format src/ tests/
# Type checking
mypy src/
# Security scan
bandit -r src/ -x tests/建筑
# Build package
python -m build
# Or with uv
uv build配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_STDIO | - | 设置为任何值以强制stdio模式 |
HER_CACHE_DIR | ~/.cache/chuk-mcp-her | 文件系统缓存目录 |
HER_NHLE_CACHE_TTL | 86400 | NHLE缓存TTL(秒)(24小时) |
HER_AIM_CACHE_TTL | 604800 | AIM缓存TTL(秒)(7天) |
HER_HG_CACHE_TTL | 3600 | Heritage Gateway缓存TTL(秒)(1小时) |
HER_RATE_LIMIT | 5.0 | 每秒对ArcGIS的最大请求数 |
HER_TIMEOUT | 30.0 | HTTP请求超时(秒) |
许可证
Apache许可证2.0——请参阅 许可证 了解详情。
参考文献
- 历史英格兰 --英国国家遗产名录
- NHLE ArcGIS功能服务 --实时数据端点
- ArcGIS REST API --查询规范
- 苏格兰历史环境 --国家历史环境记录
- HES ArcGIS MapServer --苏格兰遗产数据端点
- 遗产门户 --联合搜索HER
- 模型上下文协议 --MCP规范
- Anthropic --Claude和MCP支持
- 英国国家电网 --EPSG:27700坐标参考系
