暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VScode + Cline + MySQL MCP Server尝试

原创 core dumped 2025-05-08
468

MCP 介绍

MCP是一种模型上下文协议,主要是用来将各类大模型调用外部工具的接口进行统一,在实现AI Agent的过程中需要几个重要的步骤,其中最重要的就是通过大模型语言调用外部的工具将智能体联动起来。在没有MCP之前调用外部工具多数使用Open AI 的Function call方案,
OpenAI

{ "index": 0, "message": { "role": "assistant", "content": null, "tool_calls": [ { "name": "get_current_stock_price", "arguments": "{\n \"company\": \"AAPL\",\n \"format\": \"USD\"\n}" } ] }, "finish_reason": "tool_calls" }

Claude

{ "role": "assistant", "content": [ { "type": "text", "text": "<thinking>To answer this question, I will: …</thinking>" }, { "type": "tool_use", "id": "1xqaf90qw9g0", "name": "get_current_stock_price", "input": {"company": "AAPL", "format": "USD"} } ] }

Gemini

{ "functionCall": { "name": "get_current_stock_price", "args": { "company": "AAPL", "format": "USD" } } }

LLaMA

{ "role": "assistant", "content": null, "function_call": { "name": "get_current_stock_price", "arguments": { "company": "AAPL", "format": "USD" } } }

例如大模型想获取"苹果公司股票价格",需要调用外部工具(函数:get_current_stock_price)获取,但是上面四个大模型厂商Function call接口都不同,造成调用外部工具时就会比较混乱,不同的模型和不同工具都要开发相应接口,甚至外部函数的逻辑都有可能不用需要单独处理,代码量增大。看起来就像下图左边这样。

68905fb6ab12fc7648201aaa42a2dd85.png

MCP的出现定义了统一的标准,实现在不同的模型及外部应用之间采用统一的接口,确保了在不同的模型及外部应用之间切换,具有很好的灵活性和扩展性。

MCP Host/MCP Client : 要通过MCP访问数据库应用客户端程序,当前支持的有:Claude、Cline、Cursor等,在这里可以看到完整的列表和支持情况:https://modelcontextprotocol.io/clients

MCP Server : 通过MCP协议连通外部工具实现具体的功能,当前已有的MCP Server已有很多:https://github.com/modelcontextprotocol/servers

8c43b9a9f0805ce25d4211a3a3cc429e.png

工作流程是:

  1. 当用户在MCP Client中输入信息后,MCP Client会将用户输入信息当前已存在的MCP Server信息发送给大模型,MCP Server信息会放到系统提示词中,包括了有哪些MCP Server、函数能力、使用方式、参数信息
  2. 大模型返回给MCP Client并告知需要调用对应MCP Server中的哪个函数
  3. 调用对应MCP Server中的函数
  4. 将输出返回给大模型,大模型根据返回信息进行整理返回给用户

可见第一步是比较关键,将MCP Server作为提示词告知大模型如何使用已有这些外部工具函数。

MySQL MCP Server尝试

社区中有很多开源的MCP Server,这里就拿MySQL作为一次尝试,MCP Client使用Cline。

部署步骤:

  1. 安装VScode及Cline插件并配置DeepSeek API
  2. 下载MySQL MCP Server
# Clone the repository git clone https://github.com/designcomputer/mysql_mcp_server.git cd mysql_mcp_server # Create virtual environment python -m venv venv source venv/bin/activate # or `venv\Scripts\activate` on Windows # Install development dependencies pip install -r requirements-dev.txt # Run tests pytest
  1. 在Cline配置MCP Server及MySQL连接信息
{ "mcpServers": { "mysql": { "command": "uv", "args": [ "--directory", "path/to/mysql_mcp_server", "run", "mysql_mcp_server.py" ], "env": { "MYSQL_HOST": "localhost", "MYSQL_PORT": "3306", "MYSQL_USER": "your_username", "MYSQL_PASSWORD": "your_password", "MYSQL_DATABASE": "your_database" } } } }
  1. 在Cline中针输入一些自然语言通过大模型和MCP Server结合完成对数据库的操作,测试几个针对MySQL的问题和操作,下面是测试的几个问题都可以正常完成:
    1. 数据库中有多少表?
      5ffc0aecd04e0ee4f9527d95f2d94ae3.png
    2. sbtest1表上的索引及索引选择性?
      f0937dd80b4333a2b734515361f90f54.png
    3. 当前数据库有多少连接?
      0f5ca8909e8cde06ac3549e4b752a4ce.png
    4. 创建一张订单表,字段名用英文,comment中文
      0ea254347add8f4b2b8643d6e06b5b2a.png
    5. 返回订单表的表结构
      9a981bc2d76db30ca58f1a8ec087f72d.png
    6. 向订单表中插入100条测试数据
      6b75ccef9c09081eacf74c0964434f70.png

完整的操作视频参考这篇文章中最后的视频:
https://mp.weixin.qq.com/s/uSJUwz0wI54_ecXVFpVWHg

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论