5分钟用IntentOrch+MCP搭建你的智能出行助手
📅 2026.04.11 ⏱️ 阅读约 7 分钟 🧠 实战 · MCP · IntentOrch
你是否想过,只需在终端输入一句:“查询 2026 年 4 月 15 日北京到上海的所有高铁票”,就能立刻得到结构完整的车次、票价、余票表格?
过去你可能需要:写正则提取参数 → 对接12306非标准API → 处理脏数据 → 手写排版……如今,借助 IntentOrch + 12306 MCP Server,你只需 3 步配置 + 1 句自然语言。
📌 本文是 IntentOrch 系列第二篇 —— 第一篇介绍见 《【开源】IntentOrch:意图驱动的MCP编排引擎 - 自然语言描述需求,AI自动编排MCP工具链执行》。本文将以真实场景带你跑通完整流程,并展示如何扩展到任意MCP服务。
✨ 先看效果:一句话 → 完整车次表
执行以下官网12306-demo的示例代码(核心代码仅以下几行逻辑)
import {
createSDK } from '@mcpilotx/intentorch';
import dotenv from 'dotenv';
dotenv.config();
async function main() {
// 1. 创建 SDK 实例
const sdk = createSDK();
// 2. 配置 AI 大模型 (使用 .env 文件存储 API Key 更安全)
// mv env_example .env (编辑.env替换api-key为你自己的)
await sdk.configureAI({
provider: 'deepseek',apiKey: process.env.DEEPSEEK_API_KEY,model: 'deepseek-chat'});
// 3. 连接 12306 MCP Server
await sdk.connectMCPServer({
name: '12306-mcp',transport: {
type: 'stdio',command: 'npx',args: ['-y', '12306-mcp']}});
// 4. 初始化 Cloud Intent Engine
await sdk.initCloudIntentEngine();
// 5. 执行意图:用自然语言查询火车票
const result = await sdk.executeWorkflowWithTracking("查询 2026 年 4 月 15 日北京到上海的所有高铁票");
// 6. 输出结果
console.log('查询结果:', result.result);
}
main().catch(console.error);
终端直接打印出所有高铁车次、席位、价格和余票。以下是真实运行的完整输出:
整个过程完全由 AI 自动完成意图解析、工具选择、参数映射,零规则、零硬编码。只需一句自然语言,就能获得结构清晰的火车时刻表。
⚙️ 三步搭建你的“自然语言查票助手”
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大模型 (deepseek / openai 均可)
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 的“一次接入,任意领域”的威力。
⚠️ 常见踩坑与解决方案
🔧 问题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 社区联合创作。转发请注明出处。
上一篇:【开源】IntentOrch:意图驱动的MCP编排引擎 - 自然语言描述需求,AI自动编排MCP工具链执行
© 2026 IntentOrch · 让自然语言驱动一切工具