Model Context Protocol(MCP)正在成为 AI Agent 接入外部能力的事实标准。本文以龙虾出行为例,演示如何把机票搜索封装成 MCP Server,让 Claude Desktop 这样的 AI 助手直接帮你查票、订票。
为什么用 MCP 而不是直接调 API
直接给 Agent 一个 REST API 文档,它需要自己理解参数含义、处理错误、组织调用顺序。而 MCP 把这些能力封装成「工具(Tool)」,每个工具有清晰的描述和参数 Schema,Agent 看到工具定义就知道怎么用。
对用户来说,这意味着你只需在 Claude 里说「查一下明天上海到深圳的机票」,它会自动调用你配置好的 MCP 工具,无需你写任何提示词模板。
定义机票搜索工具
一个 MCP 工具的核心是它的 name、description 和 inputSchema。description 要写清楚「什么场景该用这个工具」:
{
name: "search_flights",
description: "搜索机票。用户提到'机票/航班/飞/出发去某地'时使用",
inputSchema: {
type: "object",
properties: {
from: { type: "string", description: "出发城市,如'上海'" },
to: { type: "string", description: "到达城市,如'深圳'" },
date: { type: "string", description: "YYYY-MM-DD" }
},
required: ["from", "to", "date"]
}
}注意 description 里写了「用户提到'机票/航班/飞'时使用」——这帮助 Agent 在对话中正确识别何时调用这个工具,而不是在用户聊酒店时误调。
让响应对 Agent 友好
工具返回的结果要便于 Agent 理解和转述。龙虾出行的语义化 API 给每条航班都带了 summary 字段:
{
"flight_no": "MU5357",
"summary": "东方航空 MU5357,上海 20:30 出发,23:00 到达深圳,直飞,飞行2小时30分",
"recommend_reason": "当前列表价格最低,直飞省时",
"quick_facts": { "price": 450, "direct": true }
}Agent 拿到这个响应后,可以直接把 summary 念给用户,再附上 recommend_reason 解释为什么推荐这条。用户问「最便宜的是哪个」,Agent 也能从 quick_facts 里秒定位。
在 Claude Desktop 里接入
配置 MCP Server 后,在 Claude Desktop 的设置文件里加上你的 Server 地址,重启即可。之后在对话中,Claude 会自动识别出行相关的意图,调用搜索工具,把结果用自然语言反馈给你。
完整的下单闭环(搜索→验价→下单→支付)也可以封装成 MCP 工具链。Agent 按顺序调用,用户只需在对话里确认乘客信息,Agent 自动完成验价和下单,最后返回收银台链接。
MCP 的价值不在于「让 AI 能调 API」,而在于「让 AI 在正确的时机、用正确的方式、调正确的接口」。语义化的工具定义是这一切的基础。