Athena Agent
Athena Agent — ライブ地震フィード
MCP サーバーを搭載した Athena AI エージェントです。USGS の公開フィードから実際の地震観測データを取得し、チャット内のインタラクティブなウィジェットに表示します。
実行する
npm install
npm start # http://localhost:8787/mcpAthena に触れる前に確認してください:
npx @modelcontextprotocol/inspector@latest --server-url http://localhost:8787/mcp --transport httpツールが 1 つ(get_recent_earthquakes)と、リソースが 1 つ(ui://widget/quakes.html、mimeType は text/html+skybridge)表示されるはずです。
Related MCP server: usgs-earthquakes
HTTPS で公開する
Athena では HTTPS が必要です。開発時は次のようにします:
ngrok http 8787https://athenachat.bot/chatbot/mybots/create でエージェントを登録し、MCP URL を https://<your-subdomain>.ngrok.app/mcp に設定してください — /mcp パスが必須です。
デモの後も使える URL が必要な場合は、このリポジトリをプッシュして Render または Railway にデプロイしてください。ビルドコマンドは npm install、起動コマンドは npm start です。どちらも PORT を注入し、サーバーはそれを読み取ります。
ツールを起動するプロンプト
"最近の地震を見せて"
"今日、地震活動はありましたか?"
"この 1 週間で大きな地震はありましたか?"
ウィジェットをインタラクティブにする仕組み
操作 | 動作 |
マグニチュードスライダー | ブラウザ内で即座にフィルタリング、サーバー呼び出しなし |
行クリック | 深さ、座標、津波フラグを展開 |
時間範囲ボタン |
|
状態は window.openai.setWidgetState によって再レンダリング後も保持されます。
他のデータソースに応用する
変更箇所は 2 か所で、どちらもコード内にマークされています。
server.js—fetchData関数。{ items: [...], meta: {...} }を返してください。新しいドメインに合わせて、ツール名、説明、inputSchemaも更新してください。public/widget.html—render関数と、2 つの操作ハンドラー。
その他すべて(トランスポート、リソース登録、CORS、メタデータ)はドメインに依存しません。
時間を無駄にする落とし穴
window.openaiが undefined になる → リソースの mimeType が正確にtext/html+skybridgeになっていません。callToolが何も実行しない → ツールに_meta["openai/widgetAccessible"]: trueがありません。ウィジェットが API を直接フェッチできない → iframe の CSP がブロックしています。サーバーサイドでフェッチしてください。
Athena に古いツールが表示されたままになる → 設定 → コネクタ → 更新 を実行してください。
Athena のドキュメントでは
@modelcontextprotocol/sdk/server/streamable-http.jsをインポートしています。そのパスは存在しません。正しくはstreamableHttp.jsです。
This server cannot be deployed
Maintenance
Related MCP Connectors
Real-time earthquake events from the US Geological Survey
Recent earthquakes worldwide or near a place, from USGS. Free, no key.
Search USGS and EMSC seismic data — real-time feeds, event queries, and earthquake counts.
Live USGS earthquake alerts: M2.5+ 24h, mag, depth. Register in-session — free testnet funds.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides access to the USGS Quakes API within Claude Desktop, enabling users to retrieve earthquake data and details through natural language queries.311 npm1MIT
- AlicenseNot gradedqualityBmaintenanceProvides access to the USGS Earthquake Catalog for querying earthquake events via the FDSNWS API, enabling natural language questions about earthquake data.198 npmMIT
- AlicenseAqualityCmaintenanceMCP server wrapping the USGS Earthquake Hazards API, enabling AI assistants to search the global earthquake catalog, look up event details, count quakes, find 'Did You Feel It' reports, and read realtime feeds.5MIT
- AlicenseAqualityDmaintenanceReal-time earthquake data and seismic monitoring for AI agents via the USGS Earthquake Catalog API.824 PyPIMIT