告别API,一句话查票!5分钟上手IntentOrch+MCP智能出行助手
过去你需要:写正则提取参数 → 对接12306非标准API → 处理脏数据 → 手写排版……
现在,只需一句自然语言,AI 自动完成车票查询。
先看效果:一句话 → 完整车次表
$ node index.js
输入:
查询 2026 年 4 月 15 日北京到上海的所有高铁票
终端直接打印出所有高铁车次、席位、价格和余票(真实运行输出):
整个过程完全由 AI 自动完成意图解析、工具选择、参数映射,零规则、零硬编码。
📌 本文是 IntentOrch 系列第二篇。第一篇介绍见:《【开源】IntentOrch:意图驱动的MCP编排引擎》
三步搭建你的“自然语言查票助手”
1️⃣ 初始化项目(解决最常见的模块警告)
mkdir intentorch-12306 && cd intentorch-12306
npm init -y
npm install @mcpilotx/intentorch dotenv
在 package.json 中添加 "type": "module" 消除 MODULE_TYPELESS_PACKAGE_JSON 警告:
{
"name": "intentorch-12306",
"type": "module",
"dependencies": {
"@mcpilotx/intentorch": "^latest",
"dotenv": "^16.0.0"
}
}
2️⃣ 配置 AI 模型 + 连接 MCP 服务
创建 .env 文件存放 DeepSeek API Key(也支持 OpenAI / Ollama):
DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx
新建 index.js,核心代码如下:
import { createSDK } from '@mcpilotx/intentorch';
import dotenv from 'dotenv';
dotenv.config();
async function main() {
const sdk = createSDK();
// 配置 AI 大模型
await sdk.configureAI({
provider: 'deepseek',
apiKey: process.env.DEEPSEEK_API_KEY,
model: 'deepseek-chat'
});
// 连接 12306 MCP Server(通过 stdio 子进程)
await sdk.connectMCPServer({
name: '12306-mcp',
transport: {
type: 'stdio',
command: 'npx',
args: ['-y', '12306-mcp']
}
});
// 初始化云端意图引擎(自动注册所有工具)
await sdk.initCloudIntentEngine();
// 自然语言直接执行
const result = await sdk.executeWorkflowWithTracking(
"查询 2026 年 4 月 15 日北京到上海的所有高铁票"
);
console.log('查询结果:', result.result);
}
main().catch(console.error);
3️⃣ 运行!
node index.js
第一次运行会自动下载 12306-mcp 包,稍等片刻即可看到整齐的火车时刻表。
🎉 你已实现了一个生产可用的自然语言查询接口,全程未写任何解析逻辑!
背后发生了什么?(轻原理,不吓人)
IntentOrch 的 Cloud Intent Engine 将整个过程抽象为四个阶段:
🧠 意图解析
LLM 将自然语言转换为结构化意图(日期、出发地、目的地、交通工具类型)。
🎯 工具选择
根据 MCP Server 提供的工具列表(如get-tickets),AI 自动匹配最合适的工具,置信度 1.0。
⚙️ 工具调用
通过 stdio 协议调用 12306 MCP,获取原始数据。
📦 结果返回
将 MCP 返回的文本或 JSON 直接交还给你,无需二次格式化。
从运行日志可以看到:引擎解析意图 → 记录反馈 → 选择工具 get-tickets → 649ms 完成调用 → 输出车次列表。
💡 为什么这对开发者极具价值?
传统方案需要手写 N 个 if/else、正则、参数校验,而 IntentOrch 让 AI 成为“语义路由器”。你只需要提供 MCP 工具(或使用社区已有的),剩下的交给意图引擎。
换一个 MCP 场景:这是通用范式
12306 只是一个例子。假如你想查询 GitHub Issues,只需把 connectMCPServer 换成:
await sdk.connectMCPServer({
name: 'github-mcp',
transport: {
type: 'stdio',
command: 'npx',
args: ['-y', '@modelcontextprotocol/server-github']
}
});
然后自然语言输入 “列出我仓库下未解决的 bug”,AI 就会自动调用 list_issues 工具。其余代码一行不改。
这就是 IntentOrch 的“一次接入,任意领域”的威力。更多 MCP Server 可以在 MCP 官方 Registry 发现。
常见踩坑与解决方案
🔧 问题1:
(node:xxxx) Warning: Module type of file...
✅ 解决:在package.json中添加"type": "module"。
🔧 问题2:
jq: command not found(如果你在脚本里用了 jq)
✅ 解决:使用 Node.js 原生JSON.parse替代,或安装jq(apt-get install jq/brew install jq)。
🔧 问题3: MCP Server 启动超时或找不到命令
✅ 解决:确保网络通畅,手动执行npx -y 12306-mcp测试;Node.js 版本建议 v18+。
进阶玩法:让助手更“聪明”
- 多 MCP 协同:同时连接天气 MCP + 12306 MCP,问“这周末北京去上海天气好么?顺便查高铁票”。
- 自定义 MCP 工具:用 MCP 协议 封装公司内部 API,瞬间让自然语言驱动内部系统。
- 可观测性集成:IntentOrch 内置反馈机制(
Feedback recorded),可收集用户行为持续优化意图解析准确率。
立即体验:一键复现项目
为了让开发者零摩擦体验,我们准备了可直接运行的 GitHub 模板仓库:
克隆后只需:
cp .env.example .env # 填入你的 API Key
npm install
npm start
即可看到车次清单。
互动时间
你想用 IntentOrch + MCP 做什么?是自动处理工单、操作数据库,还是控制智能家居?
欢迎在评论区留言你的创意,一起探讨实现的可能性~
如果这篇文章对你有帮助,欢迎点赞、收藏、关注,后续会带来更多 IntentOrch 和 MCP 生态的实战分享。
本文由 IntentOrch 社区联合创作。转发请注明出处。
© 2026 IntentOrch · 让自然语言驱动一切工具