Skip to main content
Glama

TfL MCP Server

Дисклеймер: Это проект, созданный сообществом. Он не связан с Transport for London (TfL), не одобрен и не аффилирован с ним. Этот проект использует общедоступный TfL Unified API.

GitHub release License: MIT

MCP-сервер, который предоставляет TfL (Transport for London) Unified API в виде инструментов, позволяя ИИ-ассистентам, таким как Claude, запрашивать данные о транспорте Лондона в реальном времени.

Версия 2 — это единая реализация на Node.js 22, использующая ревизию протокола MCP 2026-07-28. Она поддерживает stdio для локальных хостов, npm и MCPB, а также stateless Streamable HTTP на /mcp для удалённых развёртываний.

Совместимость протоколов: Streamable HTTP поддерживает только современный MCP 2026-07-28. Точка входа stdio также принимает инициализацию эпохи 2025 года для настольных хостов, таких как Codex, в то время как современные stdio-клиенты продолжают согласовывать 2026-07-28. Устаревшие HTTP/SSE не поддерживаются.

Начало работы

Шаг 1 — Добавление в Claude Desktop

Откройте файл конфигурации Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Вариант A: Node.js MCPB (рекомендуется)

Скачайте tfl-mcp-server.mcpb из GitHub Releases и установите его в Claude Desktop.

Вариант B: npm

При установленном Node.js 22 или новее укажите Claude Desktop на опубликованный пакет:

{
  "mcpServers": {
    "tfl-mcp-server": {
      "command": "npx",
      "args": ["-y", "@oneill9/tfl-mcp-server@2.0.0"],
      "env": { "TFL_APP_KEY": "your_key_here" }
    }
  }
}

Вариант C: Docker

{
  "mcpServers": {
    "tfl-mcp-server": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "TFL_APP_KEY", "ghcr.io/oneill9/tfl-mcp-server:latest"]
    }
  }
}

Шаг 2 — Добавление ключа TfL API (рекомендуется)

Без ключа TfL применяет строгие ограничения частоты запросов, что повлияет на большинство реальных сценариев использования. Зарегистрируйте бесплатный ключ и передайте его через переменную окружения TFL_APP_KEY. В примере Docker -e TFL_APP_KEY передаёт это значение в контейнер:

"env": { "TFL_APP_KEY": "your_key_here" }

Шаг 3 — Перезапустите Claude Desktop и начните задавать вопросы

Пример: «Центральная линия работает нормально?», «Когда следующий автобус от Оксфорд-Серкус?»

Дополнительные сведения о вариантах из исходного кода, Docker и Streamable HTTP см. в docs/installation.md.

Related MCP server: TFL MCP Server for Poke

Инструменты

Tool

Description

TfL Endpoint

service_status

Текущий статус и сбои по видам транспорта

GET /Line/Mode/{modes}/Status

arrivals

Прибытие в реальном времени на остановку по названию

GET /StopPoint/{naptan}/Arrivals

journey

Планирование поездки между двумя точками

GET /Journey/JourneyResults/{from}/to/{to}

bike_points

Список станций проката Santander Cycles

GET /BikePoint

crowding

Уровень загруженности станции в реальном времени по названию

GET /Crowding/{naptan}/Live

fares

Информация о тарифах между двумя названными остановками

GET /StopPoint/{id}/FareTo/{targetId}

Примечание: Сервер внутренне использует конечную точку /StopPoint/Search/{query} для автоматического преобразования названий остановок в идентификаторы NaPTAN для инструментов arrivals, crowding и fares.

MCP Apps UI

Инструмент service_status включает поддержку MCP Apps в качестве прогрессивного улучшения. Хосты с поддержкой пользовательского интерфейса (например, Claude Desktop) могут отображать интерактивную панель состояния сервиса вместе с текстовым ответом. Хосты без поддержки интерфейса продолжают получать стандартный текстовый вывод.

  • Интерфейс самодостаточен (встроенные HTML/CSS, без внешних ресурсов)

  • Структурированные данные JSON возвращаются вместе с текстовым запасным вариантом

  • Дополнительная настройка не требуется — поддержка хоста определяется автоматически

Полные сведения см. в docs/tools.md.

Аутентификация

Режимы MCPB и контейнера по умолчанию используют транспорт stdio. Дополнительный режим Streamable HTTP не реализует OAuth или любую другую серверную аутентификацию; разворачивайте его только за соответствующим доверенным уровнем доступа.

TfL API использует простой ключ API (TFL_APP_KEY), который вы передаёте в качестве переменной окружения. Ключ настоятельно рекомендуется — без него TfL применяет строгие ограничения частоты запросов, что повлияет на большинство реальных сценариев использования. Регистрация бесплатна. Для использования этого MCP-сервера не требуется OAuth-поток, вход в систему или учётная запись, кроме портала TfL.

Конфигурация

Environment Variable

Default

Description

TFL_APP_KEY

(none)

Ключ TfL API — зарегистрируйтесь на api-portal.tfl.gov.uk

TFL_APP_ID

(none)

Идентификатор приложения TfL — требуется только для старых регистраций API, которые выдавали и идентификатор, и ключ

MCP_MAX_REQUEST_BODY_BYTES

1048576

Максимальный размер тела JSON-запроса, принимаемый Streamable HTTP

MCP_REQUEST_TIMEOUT_MS

30000

Тайм-аут запроса Streamable HTTP в миллисекундах

MCP_HEADERS_TIMEOUT_MS

10000

Тайм-аут заголовков Streamable HTTP в миллисекундах; не должен превышать тайм-аут запроса

Ключ API настоятельно рекомендуется — без него строгие ограничения частоты запросов TfL повлияют на большинство реальных сценариев использования. Регистрация бесплатна на api-portal.tfl.gov.uk.

Запуск из исходного кода

Требуется Node.js 22 или новее. Установите зависимости из lockfile и выполните сборку перед запуском сервера.

cd node
npm ci
npm run build
node dist/index.js

Это запускает транспорт stdio. Для stateless Streamable HTTP:

cd node
HOST=127.0.0.1 PORT=8080 node dist/index.js --http

Подключите клиент MCP 2026-07-28 к http://127.0.0.1:8080/mcp. Установите MCP_ALLOWED_HOSTS в разделённый запятыми список разрешённых имен хостов при обслуживании под другими именами хостов.

Для использования с Claude Desktop см. docs/installation.md.

Тестирование

Модульные тесты используют имитацию HTTP-сервера — не требуется доступ к сети или ключ API:

cd node && npm test

Приёмочные тесты Streamable HTTP включены в npm test. Запустите официальный замороженный набор требований MCP 2026-07-28 отдельно (необязательные проверки расширений вне этого набора не оцениваются):

cd node && npm run test:conformance

Фикстура соответствия регистрирует реальные производственные инструменты и ресурсы TfL через общий адаптер HTTP, поддерживающий только современные версии. Она также добавляет тестовые диагностические инструменты, ресурсы, подсказки и потоки, необходимые для жёстко заданных проверок рефери; эти диагностические средства не доступны через производственную точку входа.

Контрактные тесты вызывают живой TfL API:

cd node && TFL_APP_KEY=your_key_here npm run contractTest

Соберите и проведите смоук-тестирование упакованных дистрибутивов npm CLI, MCPB и контейнера с помощью bash scripts/test-distributions.sh. Скрипт пропускает проверки контейнера, если Docker недоступен.

Поддержка

По вопросам, сообщениям об ошибках или запросам функций, пожалуйста, откройте issue на GitHub Issues.

Политика конфиденциальности

Этот MCP-сервер действует как локальный прокси между вашим ИИ-ассистентом и TfL Unified API. Он не собирает, не хранит и не передаёт никаких персональных данных, кроме тех, что необходимы для пересылки ваших запросов в TfL.

  • Сбор данных: Не собирается никакая аналитика или телеметрия. Ограниченные операционные диагностические данные записываются в стандартный поток ошибок, но не сохраняются сервером; хост может хранить их в соответствии со своей политикой ведения журналов.

  • Использование и хранение: Запросы пересылаются в TfL в реальном времени, а ответы возвращаются немедленно. История запросов и результаты не сохраняются.

  • Передача третьим лицам: Запросы пересылаются в TfL Unified API (api.tfl.gov.uk). См. политику конфиденциальности TfL о том, как TfL обрабатывает данные об использовании API.

  • Хранение данных: Сервер не хранит никаких данных и не сохраняет состояние между запросами. Хранение стандартного потока ошибок, управляемое хостом, находится вне контроля сервера.

  • Контакт: По вопросам конфиденциальности откройте issue на https://github.com/oneill9/tfl-mcp-server/issues.

Полная политика конфиденциальности доступна в PRIVACY.md.

Соответствие требованиям

Этот сервер был проверен на соответствие Условиям каталога программного обеспечения Anthropic и Политике каталога программного обеспечения Anthropic. Полное заявление о соответствии и обязательствах сопровождающих см. в COMPLIANCE.md.

Справочник по TfL API

Related MCP Connectors

Related MCP Servers