启程:MCP开发环境配置和旅游攻略案例体验
文章目录
- MCP概念
- MCP服务平台
- MCP通信机制
- stdio通信机制优缺点
- SSE通信机制的优缺点
- 开发环境
- 安装Trae
- 配置系统环境
- 安装 Node.js
- 安装 uvx(Python 工具)
- 旅游攻略案例
- 工具介绍
- trae的启动方式
- trace 配置mysql mcp server
- trace 配置map mcp server
- 运行测试

MCP概念
- MCP(Model Context Protocol):模型上下文协议是由Anthropic公司于2024年11月推出的开放标准协议,旨在为大型语言模型(LLM)提供标准化的外部资源连接接口。它被类比为AI领域的"USB-C接口",实现了模型与外部世界的双向实时交互,解决了AI模型与数据源、工具之间的连接问题。
- 更多详细的概念和内容,参看开篇:MCP理论理解和学习
MCP服务平台
- modelcontextprotocol/servers
- awesome-mcp-servers/blob
- Glama
- Smithery
- cursor mcp
- MCP.so
- 阿里云百炼
MCP通信机制
- MCP通信机制:
- stdio(标准输入输出):主要用在本地服务上,操作你本地的软件或者本地的文件。比如Blender这种就只能用Stdio因为他没有在线服务。
- SSE(Server-SentEvents):主要用在远程通信服务上,这个服务本身就有在线的API,比如访问你的谷歌邮件,天气情况等。
stdio通信机制优缺点
优点:
- 适用于客户端和服务器在同一台机器上运行的场景。
- stdio模式无需外部网络依赖,通信速度快,适合快速响应的本地应用。
- 可靠性高,且容易调试
缺点:
- stdio配置比较复杂,需要提前安装需要的命令行工具
- stdio为单进程通信,无法并行处理多个客户端请求,同时由于进程资源开销较大,不适合在本地运行大量服务。
SSE通信机制的优缺点
优点:
- 实时性好:支持服务器主动向客户端推送数据,适合需要实时更新的应用场景
- 协议简单:基于HTTP协议,实现简单,兼容性好
- 自动重连:内置断线重连机制,提高了通信的可靠性
- 轻量级:相比WebSocket,SSE协议开销更小
- 浏览器原生支持:现代浏览器都原生支持SSE,无需额外库
- 单向通信高效:对于只需服务器向客户端推送数据的场景非常高效
缺点:
- 仅支持文本数据:二进制数据传输需要额外编码处理
- 单向通信:只能服务器向客户端推送数据,客户端不能通过同一连接向服务器发送数据
- 连接数限制:浏览器对每个域的SSE连接数有限制(通常6个)
- 代理/防火墙问题:某些代理服务器或防火墙可能会中断长连接
- 老浏览器兼容性:IE及部分老版本浏览器不支持
- 心跳机制必要:需要额外实现心跳机制来保持连接活跃
- 服务器资源消耗:大量并发连接会消耗较多服务器资源
开发环境
- stdio的本地环境安装:Python编写的服务和TypeScript编写的服务,分别对应uvx和npx两种指令。
安装Trae
- 访问Trae下载并安装应用
配置系统环境
为确保正常启动 MCP Server,你可能需要安装:
- npx:依赖于 Node.js,版本需大于等于 18。
- uvx:基于 Python 的快速执行工具,需手动安装。
- Docker(可选) :容器化平台,用于隔离和运行应用程序,需根据系统版本安装对应版本。若使用 GitHub MCP Server,则需要使用 Docker。
安装 Node.js
- 请前往Node.js官网,下载并安装 Node.js 18 或更高版本。
- 安装完成后,在终端中运行以下命令确认是否安装成功。
node -v npx -v
- 重启 Trae IDE,使 Node.js 生效。
安装 uvx(Python 工具)
- uvx 是 uv 提供的命令行工具,用于快速运行 Python 脚本。
- 前往Python官网,下载并安装 Python 3.8 或更高版本。
- 安装完成后,在终端中执行以下命令确认是否安装成功。若安装成功,终端中会输出已安装的 Python 的版本号。
python --version
- 执行以下命令,安装 uv(包含 uvx)。安装脚本会自动下载 uv 并放置到系统默认路径中。
- macOS / Linux 安装命令:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows 安装命令(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- 执行以下命令,验证是否安装成功。若安装成功,终端中会输出已安装的 uvx 的版本号。
uvx --version
旅游攻略案例
工具介绍
- 开发工具:Trae
- 地图服务:百度地图
- MCP Server:mysql mcp server、baidu map mcp server、filesystem mcp server
- Mysql数据库:本地或远程数据库,提前创建好仓库和角色
trae的启动方式
- trae软件一定要注意使用管理员角色运行,可以避免权限问题导致的mcp server启动失败问题。
trace 配置mysql mcp server
- Mysql数据库:本地或远程数据库,提前创建好仓库和角色
- 可以在应用市场中直接搜索mysql,然后打开应用市场中提供的mysql项目仓库地址,但是仓库中给的案例其中js配置文件括号不匹配,导致配置失败,可以直接赋值我提供的js配置代码,修改必要的信息。
{"mcpServers": {"mysql": {"command": "uvx","args": ["--from","mysql-mcp-server","mysql_mcp_server"],"env": {"MYSQL_HOST": "your_mysql_server_ip","MYSQL_PORT": "3306","MYSQL_USER": "your_user_name","MYSQL_PASSWORD": "your_password","MYSQL_DATABASE": "your_database"}}}
}
trace 配置map mcp server
- 访问百度开放平台,注册为开发者,然后打开控制台,创建应用,申请api
- 打开MCP.so Baidu Maps详情页面,复制服务器配置到trae,添加地图mcp 服务。
{"mcpServers": {"baidu-map": {"command": "npx","args": ["-y","@baidumap/mcp-server-baidu-map"],"env": {"BAIDU_MAP_API_KEY": "xxx"}}}
}
运行测试
- 新建一个文件夹,然后使用trae开发这个文件夹作为工作目录。
- 打开一个新的聊天窗口,然后输入以下要求,注意修改自己的目录。
现在交给你一个任务,编写一个开封一日游的出行攻略
1. 不要错过重要景点,注意保存百度地图数据,并将数据保存到数据库表kaifeng_trip中
2. 不要错过开封美食,并将美食信息保存到数据库表foods中
3. 在工作目录 D:\code\mcp_test 创建新的文件,命名为开封一日游.txt,分别从数据库中将 kaifeng_trip和foods中内容保存进 开封一日游.txt 文件
4. 最后根据 开封一日游.txt 文件的内容,生成一个赛博朋克风格的适应于电脑web端的html前端页面,并放到工作目录 D:\code\mcp_test 下