nyc-restroom-mcp について
nyc-restroom-mcpは、ニューヨーク市の公衆トイレとNYC Parksの最新検査状況を検索するMCPサーバーです。近くの施設探しや設備情報の確認に使え、NYC Open Dataを参照し、位置情報の検出も試みます。
主な機能
- 01場所を指定して営業中の公衆トイレを検索
- 02距離順で表示し営業時間を提示
- 03バリアフリー設備とおむつ交換台の情報
- 04NYC Parksの最新検査評価を検索
- 05座標がない場合に位置検出を試行
活用シーン
- 01近くで営業中のトイレを探す
- 02バリアフリー対応やおむつ交換台のある施設を探す
- 03特定のトイレの最新検査結果を確認
MCP 対応
NYC Open Dataからトイレと検査情報を取得する、読み取り専用の`find_restrooms`と`get_restroom_status`ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y nyc-restroom-mcpSOCRATA_APP_TOKENシークレットOptional NYC Open Data (Socrata) app token for higher rate limitsCORELOCATION_CMDOptional path to the CoreLocationCLI binary for precise on-device location (macOS only; falls back to IP geolocation when absent)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返すトイレの最大数。距離の昇順で並べ替えます。 |
| latitude | number | いいえ | 検索中心の緯度。latitude と longitude を両方省略すると、自動検出した現在地から検索します。 |
| open_now | boolean | いいえ | true の場合、現在確実に閉鎖中のトイレを除外します。営業時間を解析できないトイレは推測せず、"unknown" として残します。 |
| longitude | number | いいえ | 検索中心の経度。latitude と longitude を両方省略すると、自動検出した現在地から検索します。 |
| radius_meters | number | いいえ | 検索半径(メートル)。デフォルトは 800 で、5000 を超える値は 5000 に制限されます。 |
詳細
nyc-restroom-mcp
Claude に「一番近い公衆トイレはどこですか?」と尋ねると、実際の場所を教えてくれます。
これは MCP サーバーです。Claude Desktop や Claude Code などの AI アシスタントに新しい機能を追加する、小さなプラグインです。このプラグインを使うと、NYC Open Data からニューヨーク市の公式公衆トイレデータをリアルタイムで検索できます。インストールすると、次のようなことを尋ねられます。
- 「今開いている、ユニオンスクエア近くの公衆トイレを探してください。」
- 「近くにある、車椅子で利用できるトイレはどこですか?」
- 「Jaime Campiz Playground のトイレは本当にきれいですか?」(NYC Parks の最新の検査報告書を調べます)
次の 2 つのツールを追加します。
| ツール | 機能 |
|---|---|
find_restrooms | 現在開いている、指定した場所の近くにある公衆トイレを、近い順に営業時間、アクセシビリティ、おむつ交換台の情報とともに一覧表示します。 |
get_restroom_status | トイレの名前または座標からトイレを検索し、該当する場合は NYC Parks の最新の検査評価も表示します。 |
場所を指定しなくても、自動で検出できます(詳細は以下をご覧ください)。すべて読み取り専用で、公開されている市のデータを取得するだけです。
インストール
Node.js 20 以降が必要です。アプリ用の設定を追加する以外に、ダウンロードやセットアップは不要です。
Claude Code(コマンド 1 つ):
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 クライアントでも同様に、npx -y nyc-restroom-mcp をローカル(stdio)サーバーとして起動するよう設定してください。
知っておくと便利なこと
- 位置情報の自動検出。 近くのトイレを尋ねる際に場所を伝えない場合、サーバーは場所の特定を試みます。まずデバイスから検出します(macOS のみ。
brew install corelocationcliを実行し、位置情報サービスへのアクセスを許可している場合)。それができない場合は、IP アドレスからおおよその場所を推測します。どちらも使えない場合や、ニューヨーク市外にいる場合は、誤った推測をする代わりに、座標を明示するよう求めます。 - プライバシー。 位置情報の検出は座標を省略した場合にのみ行われ、位置情報がログに記録されることはありません。座標を明示すると、位置情報の検索は一切行われません。
- 最新データ。 回答はすべて NYC Open Data から直接取得されるため(メモリ内に短時間キャッシュされます)、市の記録と同程度に最新です。検査報告書があるのは NYC Parks が管理するトイレのみです。図書館などのトイレについては、検査データがないことをそのまま伝えます。
- 詳細情報。 docs/ ディレクトリには、ツールリファレンス、位置情報の検出、データソース、設定、セキュリティモデルが記載されています。各設計判断の理由は DECISIONS.md に記載されています。
オプション設定
必要に応じて、次の環境変数を設定してください(ほとんどの方には不要です)。
| 変数 | 用途 |
|---|---|
SOCRATA_APP_TOKEN | より高いレート制限を利用するための、無料の NYC Open Data アプリトークンです。 |
LOG_LEVEL | error、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 に対してスモークテストを 1 件実行します(ネットワーク接続が必要です)。bun test --coverage はカバレッジを出力します(src/lib/ の行カバレッジは 85% 以上が必須です)。プルリクエストを作成する前に、bun test、bun run typecheck、bun run lint がすべて成功することを確認してください。開発ガイドの全文(テストの構成、プロジェクト構造、維持すべき不変条件)は docs/development.md にあり、DECISIONS.md では各機能の仕組みの理由を説明しています。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。