mcpField
A
Agentic House Search

Agentic House Search

远程服务
agentic-house-search.vercel.app商业与营销16 天前更新

关于 Agentic House Search

Agentic House Search 是用于英国社区调研的 MCP 服务,可按邮编生成报告并比较不同地点。它整合 45 项政府开放数据,并在结果中说明地理覆盖范围和比较限制。

主要功能

  1. 01覆盖 11 个类别的邮编报告
  2. 02查询邮编对应的地理信息
  3. 03比较 2 至 5 个邮编
  4. 04搜索并查看 45 项数据集
  5. 05注明覆盖范围与比较限制

适用场景

  1. 01搬家前调研社区情况
  2. 02比较不同邮编的宽带与交通
  3. 03查找房产调研所需数据集

MCP 相关

该服务通过托管的 Streamable HTTP 或本地 stdio 和 HTTP,向 MCP 客户端提供邮编调研及数据集目录工具。可连接其公开端点,也可在本地运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://agentic-house-search.vercel.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmagentic-house-search0.1.3

工具

5
参数类型必填说明
postcodestring是英国邮政编码,可带或不带空格,例如 "SW11 1AA" 或 "m11ae"
categoriesarray否要获取的版块。省略则获取全部十一类。仅获取所需内容会更快且结果更小——例如,针对家庭安全问题可使用 ["crime","schools"]。
include_sourcesboolean否附加所用各数据集的发布方和许可证(默认 false)
response_formatenum否用于阅读的 'markdown',用于获取完整结构化事实的 'json'markdown | json

详细介绍

agentic-house-search

用于英国社区研究的 MCP 服务。输入邮政编码,即可获取政府开放数据中有关该地点的信息——人口统计、犯罪、贫困程度、房价、光纤、5G、噪声、交通、配套设施、学校和规划限制——以及一个包含底层 45 个数据集的可搜索目录。

这是邮政编码报告的 Agent 入口。两者使用相同的 provider 模块,因此阈值或注意事项只需编写一次,就会同时显示在两处。

连接

无需安装、无需账户,也无需 API 密钥。将此 URL 粘贴到客户端要求填写连接器、自定义集成或 MCP 服务 URL 的位置:

https://agentic-house-search.vercel.app/mcp

连接页面提供复制按钮、用于 Cursor 和 VS Code 的一键按钮,以及针对各客户端的相同说明。

Claude Code:

claude mcp add --transport http agentic-house-search https://agentic-house-search.vercel.app/mcp

任何通过编辑 JSON 进行连接的客户端——Claude Desktop (claude_desktop_config.json)、项目 .mcp.json,以及大多数其他客户端:

{
  "mcpServers": {
    "agentic-house-search": {
      "type": "http",
      "url": "https://agentic-house-search.vercel.app/mcp"
    }
  }
}

GET /health 会告知端点是否正常运行,这比只报告“连接失败”的客户端更实用。

或按名称查找

此服务已列入官方 MCP 注册表,因此支持注册表的客户端无需提供 URL 即可添加它。搜索 agentic-house-search,或使用规范名称:

io.github.asturksever/agentic-house-search

任何以编程方式解析它的客户端都可以直接从注册表 API 读取条目——其中包含两种安装方式、托管端点和 npm 软件包,因此客户端可以选择其支持的方式:

curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=agentic-house-search"

注册表条目中的版本会随发布版本更新,因此如果客户端报告异常,值得将其与 /health 的信息对照检查——条目过时意味着发布后没有重新发布注册表条目,而不是服务有问题。

或自行运行

免费、无访问限制,也不依赖托管部署。需要 Node 20+。

npx -y agentic-house-search              # stdio
npx -y agentic-house-search --http       # streamable HTTP on 127.0.0.1:8848
{
  "mcpServers": {
    "agentic-house-search": {
      "command": "npx",
      "args": ["-y", "agentic-house-search"]
    }
  }
}

工具

工具功能
postcode_report提供单个邮政编码的 11 个类别信息。使用 categories 进行筛选,以缩小响应内容。
postcode_lookup仅提供地理信息——坐标、地方主管部门、选区、议会选区、LSOA/MSOA/OA 代码、警察辖区、贫困程度排名。一次快速调用。
postcode_compare并排比较 2 至 5 个邮政编码的指定类别,并提供可比性注意事项。
postcode_search_datasets按文本或类别搜索包含 45 个数据集的目录,并支持分页。
postcode_get_dataset获取一条完整的目录条目:端点、API 文档、许可证、覆盖范围、更新频率。
示例
"What's SW11 1AA like?"
  → postcode_report(postcode="SW11 1AA")

"Which of these three has the best broadband and transport?"
  → postcode_compare(postcodes=[...], categories=["broadband","transport"])

"Where would I get EPC data for a property?"
  → postcode_search_datasets(query="EPC") → postcode_get_dataset(id="epc")

数字的含义

这个服务的要点是,每个数字都明确说明了它实际描述的内容。 总结这些信息的 Agent 也应保留这一点:

  • 地理范围因数据来源而异。 人口普查数据描述的是 LSOA——一个约有 1,500 人的街区,而不是一个地址。犯罪数量描述的是一个 1 km 的方格。Ofcom 的移动网络覆盖数据描述的是整个地方行政区,因为这是 Ofcom 发布数据所能提供的最精细粒度;同一行政区内的两个邮编始终会显示相同的移动网络数据。Ofcom 的宽带数据则按邮编划分。
  • 覆盖范围因英国各地区而异,并且会明确说明,不会隐藏。 人口普查表涵盖英格兰和威尔士;data.police.uk 不包含苏格兰;Planning Data 平台、Defra 噪声数据和 DfE 学校登记册仅涵盖英格兰。这些类别会返回 out_of_coverage,并附上原因及相关权力下放地区数据源的链接——绝不会将其显示为零或空结果。
  • 各地区的贫困程度排名不可相互比较。 英格兰、威尔士、苏格兰和北爱尔兰分别根据各自的指数,对不同数量的地区进行排名。返回结果始终包含指数及其覆盖地区数量;postcode_compare 会阻止跨地区比较在没有说明限制的情况下通过。
  • 警方数据取决于各警队是否提交数据。 在建成区中,极低的数量更可能意味着数据缺失,而不是街道很安静;如果数量低得不合理,报告会明确指出这一点。
  • unavailable 表示尚未实现,而不是“没有”——目前指 Defra 噪声数据集,因为它需要的多边形关联尚未执行。

这不是调查、估价或房产过户查询服务。

配置

变量默认值用途
AHS_BASE_URL已发布的网站从哪里读取注册表和数据包摘录。设置为 http://localhost:8000/,即可基于本地检出版本进行开发。
AHS_JS_ROOT未设置共享 js/ 提供程序模块所在的位置。此项仅供参考,并非必需:未设置时,服务会先检查编译输出(已发布的软件包)旁边的目录,然后检查 ./js(捆绑函数);如果都找不到,则会失败并列出尝试过的目录。仅当这两个位置都不合适时才设置此项。
ALLOWED_ORIGINS无仅用于 HTTP 模式。以逗号分隔的 Origin 允许列表。携带其他任何 Origin 的请求都会被拒绝,并返回 403。
API_KEYS未设置仅用于 HTTP 模式。以逗号分隔的 key 或 key:pro。未设置时,所有调用者均为匿名用户,且不会拒绝任何请求。
RATE_LIMIT_ANONYMOUS60/hour仅用于 HTTP 模式。礼貌性限流,避免某个失控的 Agent 耗尽上游公平使用额度。
RATE_LIMIT_PRO1000/hour仅用于 HTTP 模式。

HTTP 模式默认绑定到 127.0.0.1,且为无状态模式:每个请求都会启动一个全新的服务,因此可横向扩展,无需会话粘性。

自行运行完全免费且不受限制,并且会一直如此。 stdio 完全没有限制;未设置 API_KEYS 时,--http 也是开放的。限流的目的是让共享部署能够合理使用其依赖的政府 API,而不是引导你购买付费套餐。我们没有付费套餐。有关界限所在,以及出售服务所需满足的条件,请参阅 COMMERCIAL.md。

托管端点

https://agentic-house-search.vercel.app/mcp 使用的就是同一个软件包,它从此代码仓库构建,并作为无服务器函数部署(api/mcp.mjs、vercel.json)。该函数与网站部署在同一主机上;网站由 scripts/stage-site.mjs 在构建时组装到 public/ 中。提供此端点是为了让连接只需一个 URL,而不必使用配置文件。它不需要身份验证,因为没有需要验证的内容:所有数据源都是公开的开放数据,且服务不保存任何用户状态。

两个 HTTP 主机共用 src/http.ts,因此托管端点和你自己的 --http 在协议交互方式上不会出现差异。

部署

此仓库就是部署本身。 Vercel 从 GitHub 构建:连接一次仓库,每次推送到 main 都会重新部署端点。无需执行 CLI 步骤,无需单独复制源码,也无需记住要运行什么——更新网站的同一次推送也会更新 MCP 服务,回滚也会同时回滚两者。

在 Vercel 的 Add New → Project → Import Git Repository 中一次性完成设置。有两点需要注意:

  • 将项目命名为 agentic-house-search。 vercel.json 包含其他所有设置,但不包含项目名称,而项目名称决定了 URL。使用其他名称,文档中的 URL 就是错的——请在 connect.html、server.json、两个 README 和 index.html 中修改它,或将一个域名别名指向该项目。
  • 将框架预设保留为 “Other”。 构建命令和输出目录已在 vercel.json 中设置;预设会覆盖它们。

构建会在 mcp/ 中运行 npm ci && npm run build,而 AHS_JS_ROOT=js 会告知打包后的函数提供方模块所在位置。.vercelignore 会将网站自身的文件排除在上传内容之外,因为这些文件由 Pages 提供,而此处的 / 会重定向到那里。

npm run smoke:http 会在本地驱动相同的入口点,并在每次推送时于 CI 中运行,因此可能导致部署故障的改动会先让 Actions 中的检查失败。

server.json 是官方 MCP 注册表的入口,客户端可据此按名称而非 URL 提供此服务。请从仓库根目录使用注册表自带的 CLI(brew install mcp-publisher)发布:

mcp-publisher login github
mcp-publisher publish

先发布到 npm。 注册表会读取已发布的 npm 包中的 mcpName,并将其与 server.json#name 比较,以确认你拥有所指向的包——因此它验证的是 npm 上已有的内容,而不是此仓库中的内容。如果 server.json 中列出的版本从未出现在 npm 上,验证就会失败;由于 npm 不允许重复发布相同版本,解决办法是再次递增版本号。npm run check:versions 会在本地比较这两个字段,并在 CI 中运行。

开发

npm install
npm run build      # tsc, then copy ../js into dist/js
npm run smoke      # drives the built server over stdio and checks every tool
npm run smoke:http # drives the serverless entrypoint the hosted endpoint uses
npm run inspect    # MCP Inspector

npm run build 会将仓库的 js/ 提供方模块复制到 dist/js。这是有意为之:另一种做法是用 TypeScript 重新实现 11 个提供方、它们的阈值和覆盖门槛,而这正是网站与服务开始对同一邮政编码给出不同结果的原因。

evaluation.xml 包含 10 个经过验证的问题,用于测试模型能否真正使用这些工具。每个答案都来自固定的地理信息、有日期标记的统计发布数据或注册表——绝不使用每月变动的实时数据。

许可证与署名

此服务采用 CC0 许可。数据则不然:它属于受 Open Government Licence v3.0 许可的公共部门信息;邮政编码地理信息还涉及 OS 和 Royal Mail 的权利;便利设施数据则归 OpenStreetMap 贡献者所有(ODbL)。每个响应都包含署名信息——请保留这些信息。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。