Skip to main content
Glama
AhmedAliQadir

Duffel MCP Server

Duffel MCP Server

一个 Model Context Protocol 服务器,为 AI 助手提供基于 Duffel 旅行 API 的类型化工具层——航班、住宿和租车,均针对实时库存进行搜索,而非由模型自行想象生成。

使用 TypeScript 构建,基于官方 Anthropic MCP SDK。通过 stdio 运行,因此可直接接入 Claude Desktop 或任何兼容 MCP 的客户端。

仅搜索,设计使然。 此服务器不暴露任何预订、支付或个人数据接口。它只读取可用性和价格;无法花钱或进行预订。


为什么存在

旅行是智能体 AI 的一个很好的测试用例:问题以自然语言提出("五月份在里斯本待一周,预算 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 → 开发者 → 访问令牌 免费获取

设置

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

针对实时 Duffel 测试 API 调用 resolve_placesearch_flights。失败时以非零状态退出,并且从不打印你的令牌。

架构

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

来源

Ahmed Ali Qadir 于 2026 年构建,作为 Tourista 的工具层,Tourista 是 Orbixio Ltd(英国,公司编号 16587877)的一款 AI 旅行产品。此处提取为独立、可复用的 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