AI学习记录-MCP协议

有用点赞收藏关注,有用继续完善

这篇文档是给有初级程序员看的文档:

1、MCP协议只是个特定的json格式,就像前后端联调约定一个请求和响应特定格式数据一样,写前后端的同学不是要经常约定字段吗,道理是一样的,MCP就是大家公认的特定的json格式。

2、官网提供了实现MCP Server的依赖库,如下,但是并不是要使用官方提供的依赖库去实现一个MCP Server,才叫一个MCP Server,只是官网的依赖封装了很多东西,包括参数校验,权限校验等等功能。但如果你自己不使用官方依赖,自己实现一个MCP Server,只要你这个MCP Server响应的数据格式跟官网一样,也叫一个MCP Server。

官方依赖
在这里插入图片描述

使用官网的依赖的写法
在这里插入图片描述

3、组成MCP协议的主体,一般分成 MCP Client(有的叫MCP Host)和 MCP Server,所谓的MCP协议(特定的json格式),就只是存在于 MCP Client 和 MCP Server 当中。

MCP Client 一般都是如下东西:

在这里插入图片描述
MCP Server大家应该看其他博客都知道,就是工具的集合体,这个集合体是怎么实现的不重要,是什么语言写的不重要,是否使用官网的依赖实现的也不重要。重要的是它提供了两个接口给到MCP Client端。第一个接口是返回我这个MCP Server有什么工具,也就是工具列表。第二个接口是MCP Client通过传参给MCP Server需要调用哪个方法,调用方法的时候传递什么参数。只要实现了这两个关键接口和握手接口,那就是MCP Server,符合了MCP协议。

4、网上的教程基本上都是说怎么在Cline或者Cursor怎么实现一个MCP Server,怎么对接一个MCP Server。但是你完全脱离他们,自己实现client和server,client和server之间的通讯协议是特定MCP Json格式数据,那也叫遵循了MCP协议。

5、看下面的流程图,MCP 协议仅仅存在于下面红色框,另外两边都不是。 在这里插入图片描述

依照上面的流程,我打印了MCP协议启动的时候,Cline和MCP server发起了那些请求,如下
在这里插入图片描述

6、工具调用阶段的json格式

在这里插入图片描述

7、MCP client不是一定要存在,MCP client也可以是一个模型,这个模型输出的东西就是上面红色框的json。也可以是一个人,例如你可以在命令行直接写一个红色框json直接调用MCP Server,如下图所示,这时候你就是所谓的MCP Client。

红色框是cline发给MCP Server
蓝色框是MCP Server发给cline

在这里插入图片描述

8、MCP Server一般来说本地的(怎么没有提供线上的MCP服务…),一般通过uv,node调用本地的python文件或者js文件。一般现在教程都是教你怎么把python文件安装在本地,通过uv调用。

9、MCP协议跟模型没有必然关系。

总结:MCP协议就是上面第5,6点的json协议,就是有这个字段,那个字段的。

Cursor 编辑器是一款基于 Visual Studio Code 的 AI 驱动代码编辑器,它支持多种编程语言和插件扩展。虽然 Cursor 本身并不直接提供数据库连接功能,但可以通过安装插件或使用内置终端执行脚本的方式间接实现与 MySQL 数据库的交互。 MCP(Message Channel Protocol)协议是一种用于在客户端和服务器之间建立双向通信的协议。尽管 MCP 协议主要用于某些特定场景下的消息传递,但在实际开发中,连接 MySQL 数据库通常采用标准的 JDBC(Java)、ODBC(C/C++)、MySQL Connector(Python、Node.js 等)等方式。 如果目标是通过某种方式在 Cursor 中配置 MCP 协议来连接 MySQL 数据库,则需要确认是否存在支持该协议的插件或自定义脚本。若不存在,建议采用以下替代方案: ### 使用 Python 脚本连接 MySQL 数据库 可以使用 `mysql-connector-python` 库来连接 MySQL 数据库,并在 Cursor 编辑器中运行该脚本[^1]。 ```python import mysql.connector # 建立数据库连接 db = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword", database="yourdatabase" ) # 创建游标对象 cursor = db.cursor() # 执行 SQL 查询 cursor.execute("SELECT * FROM yourtable") # 获取所有记录 results = cursor.fetchall() # 输出结果 for row in results: print(row) # 关闭连接 db.close() ``` ### 使用 Node.js 连接 MySQL 数据库 如果你更倾向于使用 JavaScript/Node.js,可以使用 `mysql2` 包来连接 MySQL 数据库[^1]。 ```javascript const mysql = require('mysql2'); // 创建连接池 const pool = mysql.createPool({ host: 'localhost', user: 'yourusername', password: 'yourpassword', database: 'yourdatabase', waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); // 执行查询 pool.query("SELECT * FROM yourtable", (error, results, fields) => { if (error) throw error; console.log(results); }); ``` ### 在 Cursor 中运行脚本 1. 安装必要的依赖包(如 `mysql-connector-python` 或 `mysql2`)。 2. 将上述代码粘贴到 `.py` 或 `.js` 文件中,并根据实际情况修改数据库连接参数。 3. 在 Cursor 编辑器中打开终端,导航至脚本所在目录。 4. 运行脚本以测试数据库连接是否正常。 通过这些方法,即使没有直接支持 MCP 协议的插件,也可以在 Cursor 编辑器中实现与 MySQL 数据库的有效交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值