mcpField
N
nyc-restroom-mcp

nyc-restroom-mcp

本地服务
github.com/DanielOrtiz0220地图与出行116 周前更新

关于 nyc-restroom-mcp

nyc-restroom-mcp 是查询纽约市公共厕所及 NYC Parks 最新检查状态的 MCP 服务,面向寻找附近厕所或核实设施信息的用户。它读取 NYC Open Data,并支持无坐标时尝试检测位置。

主要功能

  1. 01按位置查找开放的公共厕所
  2. 02按距离排序并显示开放时间
  3. 03查询无障碍设施与换尿布台信息
  4. 04查询 NYC Parks 最近检查评级
  5. 05未提供坐标时尝试检测位置

适用场景

  1. 01查找附近当前开放的厕所
  2. 02寻找无障碍厕所或带换尿布台的设施
  3. 03核实某处厕所的最新检查结果

MCP 相关

提供 `find_restrooms` 和 `get_restroom_status` 两个只读工具,从 NYC Open Data 查询厕所及检查信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"danielortiz0220-nyc-restroom": {
"command": "npx",
"args": [
"-y",
"nyc-restroom-mcp"
],
"env": {
"SOCRATA_APP_TOKEN": "<SOCRATA_APP_TOKEN>",
"CORELOCATION_CMD": "<CORELOCATION_CMD>"
}
}
}
}
启动命令npx -y nyc-restroom-mcp
需要配置的环境变量
SOCRATA_APP_TOKEN密钥Optional NYC Open Data (Socrata) app token for higher rate limits
CORELOCATION_CMDOptional path to the CoreLocationCLI binary for precise on-device location (macOS only; falls back to IP geolocation when absent)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmnyc-restroom-mcp0.1.1

工具

2

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否要返回的厕所数量上限,按距离升序排序。
latitudenumber否搜索中心的纬度。省略 latitude 和 longitude 可根据自动检测的当前位置进行搜索。
open_nowboolean否为 true 时,排除当前确认已关闭的厕所。营业时间无法解析的厕所会保留并标记为 "unknown",而不会进行猜测。
longitudenumber否搜索中心的经度。省略 latitude 和 longitude 可根据自动检测的当前位置进行搜索。
radius_metersnumber否搜索半径,单位为米。默认值为 800;超过 5000 的值会限制为 5000。

详细介绍

nyc-restroom-mcp

问 Claude“最近的公共卫生间在哪里?”,即可获得真实答案。

这是一个 MCP 服务,是一个小型插件,可为 AI 助手(如 Claude Desktop 或 Claude Code)提供新能力。它可以实时搜索纽约市官方公共卫生间数据,数据来自 NYC Open Data。安装后,你可以询问:

  • “帮我找找 Union Square 附近现在开放的公共卫生间。”
  • “我附近哪些卫生间可供轮椅使用?”
  • “Jaime Campiz Playground 的卫生间真的干净吗?”(它会查询最新的 NYC Parks 检查报告)

它提供两个工具:

工具功能
find_restrooms按距离从近到远列出某个地点附近开放的公共卫生间,并提供开放时间、无障碍设施和换尿布台信息。
get_restroom_status按名称或坐标查询某个卫生间,包括其最近一次 NYC Parks 检查评级(如有)。

如果你没有提供地点,它可以自动检测你的位置(详见下文)。所有操作均为只读:它只会获取城市公开数据。

安装

你需要 Node.js 20 或更高版本。除了为你的应用添加以下代码片段外,无需下载或进行其他设置。

Claude Code(一条命令):

claude mcp add nyc-restroom -- npx -y nyc-restroom-mcp

Claude Desktop:前往 Settings -> Developer -> Edit Config,并将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "nyc-restroom": {
      "command": "npx",
      "args": ["-y", "nyc-restroom-mcp"]
    }
  }
}

其他 MCP 客户端的使用方式也一样:让它以本地(stdio)服务的形式启动 npx -y nyc-restroom-mcp。

使用须知

  • 自动定位。 如果你询问附近的卫生间,却没有说明自己在哪里,服务会尝试确定你的位置:首先尝试从设备获取(仅限 macOS,需先执行 brew install corelocationcli 并授予其“定位服务”访问权限),否则根据你的 IP 地址进行粗略估算。如果两种方式都不可用,或者你在 NYC 以外,服务会直接要求你提供明确坐标,而不是猜错位置。
  • 隐私。 只有在你未提供坐标时才会进行定位,而且你的位置信息绝不会写入日志。提供明确坐标后,完全不会进行位置查询。
  • 实时数据。 每个回答都直接来自 NYC Open Data(并使用短时内存缓存),因此结果会与市政府记录一样及时。只有由 NYC Parks 管理的卫生间才会有检查报告;图书馆和其他卫生间会如实说明没有检查数据。
  • 更多详情。 docs/ 目录介绍了完整的工具参考、位置检测、数据来源、配置和安全模型。每项设计决策背后的考量见 DECISIONS.md。
可选设置

如有需要,可将以下内容设为环境变量(大多数人用不到):

变量用途
SOCRATA_APP_TOKEN免费的 NYC Open Data 应用令牌,可提高速率限制。
LOG_LEVELerror、warn 或 info(默认值为 info)。日志仅写入 stderr。

此外还有一些用于测试和高级设置的变量;请参阅 docs/configuration.md。

贡献

欢迎在 DanielOrtiz0220/nyc-restroom-mcp 提交问题和拉取请求。

开发使用 Bun(1.1+):

git clone https://github.com/DanielOrtiz0220/nyc-restroom-mcp.git
cd nyc-restroom-mcp
bun install
bun test            # full unit + end-to-end suite, runs completely offline
bun run typecheck   # tsc --noEmit
bun run lint        # eslint, zero warnings allowed
bun run build       # compile src/ to dist/ (what the npm package ships)

若要在 MCP 客户端中运行本地副本,而不是使用已发布的包:

claude mcp add nyc-restroom -- bun "$(pwd)/src/index.ts"

其他实用命令:bun run test:live 会针对真实的 NYC Open Data API 运行一个冒烟测试(需要网络),bun test --coverage 会报告覆盖率(src/lib/ 中的行覆盖率需达到 85% 以上)。提交 PR 前,请确保 bun test、bun run typecheck 和 bun run lint 均通过。完整的开发指南(测试架构、项目结构、需保留的不变量)见 docs/development.md,DECISIONS.md 说明了项目如此设计的原因。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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