Skip to main content
Glama
AhmedAliQadir

Duffel MCP Server

Duffel MCP Server

Сервер Model Context Protocol, который предоставляет ИИ-ассистенту типизированный слой инструментов поверх API путешествий Duffel — авиаперелёты, отели и аренда автомобилей, поиск по живому инвентарю, а не по сгенерированным из воображения модели данным.

Написан на TypeScript на базе официального Anthropic MCP SDK. Работает через stdio, поэтому подключается напрямую к Claude Desktop или любому MCP-совместимому клиенту.

Только поиск, по дизайну. Этот сервер не предоставляет поверхности для бронирования, оплаты или работы с персональными данными. Он читает наличие и цены; он не может тратить деньги или создавать бронь.


Зачем это существует

Путешествия — хороший тест для агентного ИИ: вопросы формулируются на естественном языке («неделя в Лиссабоне в мае, до £800»), но ответы должны приходить из реального инвентаря с реальными ценами. Языковая модель не может выдумать расписание рейсов. Ей нужны инструменты.

Этот сервер предоставляет четыре таких инструмента, спроектированных так, чтобы модель могла выстраивать их в цепочку без догадок.

Related MCP server: Travel Assistant MCP

Инструменты

Инструмент

Что делает

resolve_place

Преобразует название города или аэропорта в код(ы) IATA и широту/долготу. Вызывается первым — для перелётов нужен код IATA, для отелей и автомобилей — координаты.

search_flights

Ищет предложения по авиаперелётам. Опустите return_date для перелёта в одну сторону. Возвращает самые дешёвые предложения с ценой, авиакомпанией, временем вылета/прилёта и количеством пересадок.

search_stays

Ищет жильё вокруг координат. Возвращает самые дешёвые варианты с названием, рейтингом и общей ценой за выбранный диапазон дат.

search_cars

Ищет аренду автомобилей вокруг координат точки выдачи. Возвращает тарифы с автомобилем, поставщиком и общей ценой.

Ключевая точка дизайна — resolve_place: без него модель вынуждена угадывать, что Лиссабон — это LIS, и выдумывать координаты. С ним каждый последующий вызов опирается на реальный идентификатор.

Дизайн-решения, которые стоит отметить

  • Проверка учётных данных при запуске. Если DUFFEL_API_KEY не задан, процесс пишет в stderr и завершается с ненулевым кодом, а не запускается и не падает с непонятной ошибкой при первом вызове инструмента.

  • stdout зарезервирован для протокола MCP. Вся запись логов идёт в stderr. Запись чего-либо ещё в stdout повреждает поток JSON-RPC — тонкий сценарий отказа, от которого стоит защищаться явно.

  • Тестовые токены обязательны в смоук-тесте. test/smoke.ts отказывается запускаться, если токен не начинается с duffel_test_, чтобы живой токен не был использован случайно. Он никогда не печатает токен.

  • Нет поверхности бронирования. Эндпоинты бронирования и оплаты намеренно не предоставлены. Агент, использующий этот сервер, может исследовать поездку; он не может обязать вас к ней.

Требования

  • Node.js 18+

  • Тестовый токен Duffel — бесплатно на app.duffel.com → Developers → Access tokens

Установка

npm install
cp .env.example .env   # then add your Duffel test token
npm run build

Запуск

npm run dev     # development, via tsx
npm start       # production, from dist/

Использование с Claude Desktop

Добавьте в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "duffel-travel": {
      "command": "node",
      "args": ["/absolute/path/to/duffel-mcp/dist/index.js"],
      "env": { "DUFFEL_API_KEY": "duffel_test_your_token_here" }
    }
  }
}

Перезапустите Claude Desktop — появятся четыре инструмента. Попробуйте: «Найди мне рейсы из Эдинбурга в Лиссабон в мае и жильё рядом с центром».

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

npx tsx --env-file=.env test/smoke.ts

Вызывает resolve_place и search_flights против живого тестового API Duffel. Завершается с ненулевым кодом при сбое и никогда не печатает ваш токен.

Архитектура

src/
├── index.ts    entry point — credential guard, stdio transport
├── server.ts   MCP server: registers the four tools with zod schemas
└── duffel.ts   Duffel API client and response normalisation

Ответы нормализуются до того, как попадают к модели — сырые полезные нагрузки Duffel объёмны, а агенту проще рассуждать над урезанной, предсказуемой структурой, чем над глубоко вложенным ответом API.

Технологии

TypeScript · @modelcontextprotocol/sdk · @duffel/api · zod

Происхождение

Создан в 2026 году Ahmed Ali Qadir как инструментальный слой для Tourista, ИИ-продукта для путешествий от Orbixio Ltd (Великобритания, рег. номер 16587877). Вынесен сюда как самостоятельный, переиспользуемый MCP-сервер.

Не аффилирован с Duffel или Anthropic и не одобрен ими.

Лицензия

MIT — см. LICENSE.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.

  • Live flight prices and working booking links for AI agents and travel apps.

  • Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AhmedAliQadir/duffel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server