12306 智能数据查询工作流 (基于 MCP 协议与 AI Agent)
  ](https://www.docker.com/)
完成了一个基于 MCP 协议的 12306 车次信息智能查询与可视化系统小项目。通过容器化部署 12306 MCP 服务端,并在 Dify 平台上构建 AI Agent 工作流,本系统能将用户的自然语言查询(如“帮我找下周一下午北京到上海的高铁”)自动转换为精准的 API 调用,并返回清晰的结构化车次信息,实现了数据检索过程的智能化和用户体验的优化。
✨ 效果演示 (Demo)
- Dify 聊天界面输入自然语言,Agent 思考并调用工具,最终返回车次信息的完整流程。*
workflow/架构图 (Workflow Architecture)
graph LR
A["用户输入自然语言
"明天北京到成都的高铁票""] --> B("Dify 平台");
subgraph B ["AI Agent 工作流"]
C{"Agent 思维节点
(LLM 理解意图)"} --> D["调用12306-mcp接口"];
end
D --> E["Docker 容器
12306-mcp 服务端"];
E --> F["(12306 实时数据)"];
E --> G["结构化车次信息"];
B --> G;⚙️ 部署与使用步骤 (Getting Started)
复现本项目需要两个核心步骤:部署 MCP 服务端和在 Dify 中构建工作流。
步骤一:部署 12306-mcp 服务端
- 克隆
12306-mcp项目代码
git clone https://github.com/Joooook/12306-mcp.git
cd 12306-mcp- 打包镜像及启动容器
docker build . -t 12306-mcp
docker run --name 12306-mcp -p 12306:8080 -d 12306-mcp npx 12306-mcp --port 8080服务启动后,MCP 服务将在本地 12306 端口上运行。
步骤二:在 Dify 中构建并运行工作流
- 登录 Dify 平台:
访问你的 Dify 实例 (我使用的是本地部署的Dify)。
- 创建工作流:
- 方法一:导入 DSL 文件: 首先,你需要获取本项目的 DSL (Domain Specific Language) 配置文件。
你可以通过以下两种方式之一获取:
- 方式 A: 直接下载 1. 访问此文件链接:dify-workflow-export/12306车票查询-AI应用.yml 2. 点击页面右上角的 "Download raw file" 按钮,将 12306车票查询-AI应用.yml 文件保存到你的本地电脑。
- 方式 B: 克隆整个仓库 如果你熟悉 Git,也可以直接克隆本仓库到本地:
git clone https://github.com/xcatxcatxcat/dify-12306-mcp-workflow.git- 方法二:手动构建工作流 (Workflow): - 创建一个新的应用,类型选择「Chatflow」。 - 在「编排」中,拖拽以下节点:开始 -> Agent -> 直接回复。 - 配置 Agent 节点: - 配置服务地址:
{
"12306-mcp":
{
"transport": "sse",
"url": "http://部署mcp服务的ip:12306/sse"
}
}- 在「提示词」中,编写结构化提示,引导 LLM 理解用户意图并决定调用哪个工具。 - 在「直接回复」设置回复信息。
- 测试运行:
- 在 Dify 的预览聊天窗口中,输入自然语言查询,如:“帮我查一下明天从北京到成都的高铁票”。 - 观察 Agent 的思考过程和日志,确认它是否成功调用了 MCP 服务并返回了正确的数据。
🎯 核心亮点 (Features)
- 自然语言驱动: 用户无需学习复杂的查询语法,直接通过日常对话即可查询车次信息。
- AI Agent 赋能: 利用 LLM 的推理能力,精确理解用户意图,自动选择并调用合适的工具(12306 MCP 查询接口)。
- 标准化工具封装: 成功将
12306-mcp数据服务封装为 AI Agent 可靠调用的工具,打通了外部服务与 LLM 之间的壁垒。 - 低代码快速实现: 基于 Dify 平台,通过拖拽节点和编写提示词即可完成整个工作流的搭建,无需编写大量代码。
🛠️ 技术栈 (Technology Stack)
- 核心协议: MCP (Meta-protocol Client-server Protocol)
- 服务端部署: Docker,
12306-mcp - 工作流平台: Dify (低代码 LLM 应用开发平台)
- 核心技术: AI Agent, 大语言模型 (LLM), 工具调用 (Tool Calling)
