Skip to main content
Glama

Athena Agent — лента землетрясений в реальном времени

AI-агент Athena на базе MCP-сервера. Он получает реальные данные о землетрясениях из публичной ленты USGS и отображает их в интерактивном виджете в чате.

Запуск

npm install
npm start          # http://localhost:8787/mcp

Проверьте перед работой с Athena:

npx @modelcontextprotocol/inspector@latest --server-url http://localhost:8787/mcp --transport http

Вы должны увидеть один инструмент, get_recent_earthquakes, и один ресурс, ui://widget/quakes.html, с mimeType text/html+skybridge.

Related MCP server: usgs-earthquakes

Доступ по HTTPS

Athena требует HTTPS. Для разработки:

ngrok http 8787

Зарегистрируйте агента по адресу https://athenachat.bot/chatbot/mybots/create и укажите MCP URL: https://<your-subdomain>.ngrok.app/mcp — путь /mcp обязателен.

Чтобы получить URL, который переживёт демо, запушьте этот репозиторий и разверните его на Render или Railway. Команда сборки — npm install, команда запуска — npm start. Обе платформы внедряют переменную PORT, которую читает сервер.

Запросы, которые запускают инструмент

  • "Покажи недавние землетрясения"

  • "Была ли сегодня сейсмическая активность?"

  • "Были ли крупные землетрясения за последнюю неделю?"

Что делает виджет интерактивным

Управление

Поведение

Ползунок магнитуды

Мгновенно фильтрует в браузере, без обращения к серверу

Клик по строке

Раскрывает глубину, координаты, флаг цунами

Кнопки временного окна

Снова вызывает get_recent_earthquakes через window.openai.callTool и повторно рендерит с новыми данными

Состояние сохраняется при повторном рендере через window.openai.setWidgetState.

Адаптация под другой источник данных

Меняются два места, оба отмечены в коде.

  1. server.js — функция fetchData. Возвращайте { items: [...], meta: {...} }. Также обновите имя инструмента, описание и inputSchema под новую предметную область.

  2. public/widget.html — функция render и два обработчика управления.

Всё остальное (транспорт, регистрация ресурсов, CORS, метаданные) не зависит от предметной области.

Что отнимет у вас время

  • window.openai не определён → mimeType ресурса не является в точности text/html+skybridge.

  • callTool ничего не делает → в инструменте отсутствует _meta["openai/widgetAccessible"]: true.

  • Виджет не может напрямую обращаться к API → CSP внутри iframe блокирует это. Делайте запросы на стороне сервера.

  • Athena всё ещё показывает старые инструменты → Settings → Connectors → Refresh.

  • Документация Athena импортирует @modelcontextprotocol/sdk/server/streamable-http.js. Такого пути не существует. Правильный путь — streamableHttp.js.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides access to the USGS Quakes API within Claude Desktop, enabling users to retrieve earthquake data and details through natural language queries.
    3
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to the USGS Earthquake Catalog for querying earthquake events via the FDSNWS API, enabling natural language questions about earthquake data.
    198 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP 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.
    5
    MIT