完成了基于MCP协议的12306列车时刻表智能查询与可视化系统小型项目。通过容器化部署了12306 MCP服务器并在Dify平台上构建了AI代理。该系统的流程可以自动将用户的自然语言查询(例如:“找一下下周一下午从北京到上海的高铁”)转化为精确的API调用,并返回清晰、结构化的列车信息,实现了智能化的数据检索和优化了用户体验。

graph LR
A["用户输入自然语言<br/>"明天北京到成都的高铁票""] --> B("Dify 平台");
subgraph B ["AI Agent 工作流"]
C{"Agent 思维节点<br/>(LLM 理解意图)"} --> D["调用12306-mcp接口"];
end
D --> E["Docker 容器<br/>12306-mcp 服务端"];
E --> F["(12306 实时数据)"];
E --> G["结构化车次信息"];
B --> G;
重现此项目需要两个核心步骤:部署MCP服务器和在Dify平台上构建工作流程。
克隆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)。
创建工作流程:
方法1:导入DSL文件: 首先,您需要获取该项目的DSL(领域特定语言)配置文件。
您可以通过以下两种方式之一获得它:
方法A:直接下载
dify-workflow-export/12306车票查询-AI应用.yml12306车票查询-AI应用.yml文件保存到您的本地计算机。方法B:克隆整个仓库 如果您熟悉Git,也可以将此仓库克隆到本地:
git clone https://github.com/xcatxcatxcat/dify-12306-mcp-workflow.git
方法2:手动构造工作流程(Workflow):
{
"12306-mcp":
{
"transport": "sse",
"url": "http://部署mcp服务的ip:12306/sse"
}
}
测试运行:
12306-mcp数据服务的封装,使其成为可靠可由AI代理调用的工具,打破了外部服务与LLMs之间的壁垒。12306-mcp