mcpField
M
Mcp Wsdot

Mcp Wsdot

ローカル
github.com/michaelpeterswa地図・旅行114 週間前に更新

Mcp Wsdot について

Mcp Wsdotは、MCPクライアントをWashington State Department of Transportation APIに接続します。ツールを通じて、現在時刻やフェリーの航路・運航時刻を取得できます。

主な機能

  1. 01太平洋時間の現在時刻を取得
  2. 02利用可能なフェリー航路とIDを一覧表示
  3. 03航路別に当日の便を取得

活用シーン

  1. 01フェリー航路とIDを調べる
  2. 02航路別の当日の運航時刻を確認
  3. 03次に出発するフェリーについて尋ねる

MCP 対応

Mcp Wsdotは、時刻とフェリー運航時刻のツールをMCPクライアントに提供するMCPサーバーです。streamable HTTP、stdio、旧式のSSEトランスポートに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-wsdot ロゴ

Washington State Department of Transportation API と連携するための Model Context Protocol サーバー

   wsdot ライブラリ   |   Model Context Protocol   |   mcp-go

Go で作成 MCP で作成


開発

前提条件
  • 最適な開発環境を利用するには、MCP Inspector を起動できるように bun をインストールしてください(make mcp を使用)。
ビルド
  • アプリケーションをローカルで実行するには、docker compose を使用してください。
    • Docker Compose の手順:
      • docker compose up -d --build && docker compose logs -f -t

docker-compose で実行し、Grafana の http://localhost:3000 でメトリクス/トレースを確認してください。

トランスポート

トランスポートは TRANSPORT 環境変数で選択します。

TRANSPORT説明
streamablehttpデフォルト。 現在の MCP HTTP トランスポートです。サーバーをリモートでホストする場合(例:Kubernetes)はこれを使用してください。
stdioバイナリを直接起動するローカルクライアント(Claude Desktop、MCP Inspector)向けです。
sseレガシーな HTTP+SSE トランスポートです。MCP 仕様では streamablehttp が推奨されており、非推奨になっています。古いクライアント向けにのみ残されています。

streamablehttp と sse では、次の追加設定を使用できます。

変数デフォルト説明
HTTP_PORT8080リッスンするポートです。(後方互換性のため、HTTP_PORT が未設定の場合は SSE_PORT も引き続き使用されます。)
HTTP_PATH/mcpMCP エンドポイントを提供するパスです(streamablehttp のみ)。
MCP_AUTH_TOKEN(未設定)設定すると、すべての MCP リクエストで Authorization: Bearer <token> を送信する必要があります。未設定の場合、認証は無効になります。
MCP_STATELESSfalseセッション追跡を無効にし、スティッキーセッションなしでリクエストをレプリカ間で負荷分散できるようにします。
MCP_HEARTBEAT_INTERVAL30sアイドル状態のストリームを維持するための間隔です(プロキシ/Ingress 経由での接続維持に役立ちます)。ゼロにすると無効になります。
SHUTDOWN_TIMEOUT15sSIGTERM の受信時に、処理中のリクエストを完了させるための猶予期間です。

HTTP トランスポートでは、Kubernetes のプローブ用に、認証不要のヘルスエンドポイントも 2 つ公開されます。GET /healthz(ライブネス)と GET /readyz(レディネス)です。

リモートでのホスティング(Kubernetes)

リモートクライアントが利用できるように、このサーバーをクラスター内でホストするには、 TRANSPORT=streamablehttp(デフォルト)とベアラートークンを指定してコンテナを実行します。

docker run -p 8080:8080 \
  -e WSDOT_API_KEY=<your-key> \
  -e TRANSPORT=streamablehttp \
  -e MCP_AUTH_TOKEN=<a-long-random-token> \
  ghcr.io/michaelpeterswa/mcp-wsdot:latest

クライアントは streamable HTTP トランスポートを介して http://<host>:8080/mcp に接続し、 Authorization: Bearer ヘッダーでトークンを送信します。例として、OpenClaw のリモート MCP サーバー設定を示します。

{
  "mcpServers": {
    "wsdot": {
      "transport": "streamable-http",
      "url": "https://wsdot.example.com/mcp",
      "headers": { "Authorization": "Bearer <a-long-random-token>" }
    }
  }
}

デプロイに関するガイダンス(プローブのパス、ポート、環境変数の全リファレンス)については、上記の表を参照してください。コンテナは :8080(MCP)と :8081(METRICS_ENABLED=true の場合の Prometheus メトリクス)でリッスンし、非 root ユーザーとして実行され、SIGTERM 時には処理を正常に終了します。

現在のツール

ツール説明
get_current_timePDT/PST タイムゾーンの現在時刻を取得します
get_route_schedules利用可能なフェリールートの名前とルート ID を取得します
get_schedules_today_by_route_idルート ID を指定して、そのルートの運航時刻を取得します

MacOS バイナリに関する注意事項

MacOS でリリースページからバイナリをダウンロードした場合、隔離に関するセキュリティ警告を解除する必要があります。解除するには、次のコマンドを実行してください。

xattr -rd com.apple.quarantine <path-to-binary>

質問の例

シアトルからブレマートンへのフェリールートの次の3便は何時ですか?また、今夜戻れる最終便は何時ですか?

Claude Desktop 3.7 Sonnet への質問

シアトルからブレマートンへの次の3便と、今夜の最終の帰りの便をお調べします。現在のフェリーの運航スケジュールを検索します。

ルート情報が分かったので、シアトルからブレマートンへのフェリールートの具体的な運航スケジュールを確認します。

運航スケジュールの情報に基づくと、ご希望の情報は次のとおりです。

シアトル発、ブレマートン行きの次の3便:
  1. 本日(2025年4月20日)午後12時20分 - 船舶:Walla Walla
  2. 本日(2025年4月20日)午後2時50分 - 船舶:Walla Walla
  3. 本日(2025年4月20日)午後5時30分 - 船舶:Walla Walla
今夜のブレマートン発、シアトル行きの最終便:

今夜のブレマートン発、シアトル行きの最終便は午後11時40分(23:40)です - 船舶:Walla Walla

すべての便は、車いすで利用可能な船舶 Walla Walla で運航されます。このスケジュールは、2025年3月23日から6月14日までの春季2025年運航サービスの一部です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。