当前位置: 首页 > ai >正文

启程: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通信机制:
  1. stdio(标准输入输出):主要用在本地服务上,操作你本地的软件或者本地的文件。比如Blender这种就只能用Stdio因为他没有在线服务。
  2. 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

  1. 请前往Node.js官网,下载并安装 Node.js 18 或更高版本。
  2. 安装完成后,在终端中运行以下命令确认是否安装成功。
    node -v
    npx -v
    
  3. 重启 Trae IDE,使 Node.js 生效。

安装 uvx(Python 工具)

  • uvx 是 uv 提供的命令行工具,用于快速运行 Python 脚本。
  1. 前往Python官网,下载并安装 Python 3.8 或更高版本。
  2. 安装完成后,在终端中执行以下命令确认是否安装成功。若安装成功,终端中会输出已安装的 Python 的版本号。
    python --version
    
  3. 执行以下命令,安装 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"
    
  4. 执行以下命令,验证是否安装成功。若安装成功,终端中会输出已安装的 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

  1. 访问百度开放平台,注册为开发者,然后打开控制台,创建应用,申请api
    在这里插入图片描述
    在这里插入图片描述
  2. 打开MCP.so Baidu Maps详情页面,复制服务器配置到trae,添加地图mcp 服务。
{"mcpServers": {"baidu-map": {"command": "npx","args": ["-y","@baidumap/mcp-server-baidu-map"],"env": {"BAIDU_MAP_API_KEY": "xxx"}}}
}

在这里插入图片描述

运行测试

  1. 新建一个文件夹,然后使用trae开发这个文件夹作为工作目录。
  2. 打开一个新的聊天窗口,然后输入以下要求,注意修改自己的目录。
现在交给你一个任务,编写一个开封一日游的出行攻略
1. 不要错过重要景点,注意保存百度地图数据,并将数据保存到数据库表kaifeng_trip中
2. 不要错过开封美食,并将美食信息保存到数据库表foods中
3. 在工作目录 D:\code\mcp_test 创建新的文件,命名为开封一日游.txt,分别从数据库中将 kaifeng_trip和foods中内容保存进 开封一日游.txt 文件
4. 最后根据 开封一日游.txt 文件的内容,生成一个赛博朋克风格的适应于电脑web端的html前端页面,并放到工作目录 D:\code\mcp_test 下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/9065.html

相关文章:

  • 基于NSGA2算法的无人机航迹规划算法
  • BaseProviderMultiAdapter多布局总结
  • vertica优化
  • 网口XDP-报文回环转发
  • 知识图谱系列(3):构建方法与流程
  • vue3获取两个日期之间的所有时间
  • 解决leetcode第3509题.最大化交错和为K的子序列乘积
  • OceanBase数据库全面解析(高级特性篇)
  • Real2Render2Real:无需动力学仿真或机器人硬件即可扩展机器人数据
  • AI智能混剪核心技术解析(一):字幕与标题生成的三大支柱-字幕与标题生成-优雅草卓伊凡
  • 海思3519V200ARM Linux 下移植 Qt5.8.0
  • 开疆智能Profinet转Profibus网关连接丹佛斯FC300变频器配置案例
  • Windows11+WSL2+Ubuntu22 安装
  • 汽车恒温器行业2025数据分析报告
  • 【Pandas】pandas DataFrame drop_duplicates
  • 【springMVC】springMVC学习系列一:springMVC的组件
  • 调度算法中的轮盘赌与锦标赛选择算子:优势对比与选择策略
  • 创建一个简易的风扇动画界面:基于 WPF 和 XAML 的实现教程
  • 第Y1周打卡——调用官方权重进行检测
  • 每日算法 -【Swift 算法】字符串转整数算法题详解:myAtoi 实现与正则表达式对比
  • 直线参数方程何时必须化为标准形式 |新高考已删
  • golang channel 的特点、原理及使用场景
  • 人工智能 - Magentic-UI与Browser Use 技术选型
  • C++基础算法————递推
  • Neural Blind Deconvolution Using Deep Priors论文阅读
  • 【Dify系列教程重置精品版】第十章:Dify与RAG
  • Guard Trace 值得吗?
  • 3.python操作mysql数据库
  • 切换目录大全
  • Voice Conversion语音转换