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

大模型(一)什么是 MCP?如何使用 Charry Studio 集成 MCP?

目录

    • 一、什么是 MCP?
      • 1.1 🤔 开始之前的思考
      • 1.2 MCP 的定义
      • 1.3 MCP 结构
    • 二、MCP 的使用
      • 2.1 uv 的安装
      • 2.2 MCP 广场
      • 2.3 MCP 的配置
      • 2.4 MCP 的依赖安装
      • 2.5 Charry Studio
      • 2.6 测试结果

背景:

MCP 这个概念大概是 2025 年上半年火起来的,每天都活跃在我所浏览的一些文章及评论区中。突然发现我对它仅有粗略的理解,我决定深入学习并记录一下。

  • 官网地址: https://modelcontextprotocol.io/docs/getting-started/intro
  • GitHub地址:https://github.com/modelcontextprotocol

一、什么是 MCP?

1.1 🤔 开始之前的思考

在深入了解 MCP 之前,让我们先思考几个问题:

  • 🔍 你有没有试过让 ChatGPT 帮你查询数据库?
  • 🛠️ 你有没有想过让 AI助手帮你操作 Excel 文件?
  • 🌐 你有没有希望 AI 能够调用你公司内部的 API?

如果答案是 “有”,那么你很可能遇到了这样的困扰:AI模型很聪明,但它无法直接操作外部工具

1.2 MCP 的定义

MCP(Model Context Protocol),即 “模型上下文协议”,是一个开放、标准化的协议,由 Claude 的母公司 Anthropic 于 2024 年底开元发布的。简单来说,MCP 就是 AI 大模型的标准化工具箱,大模型可以利用这些工具与外界互动、获取信息并且完成具体任务(就像 USB-C 让不同设备能够通过相同的接口连接一样)。MCP 的目标是创建一个通用标准,使 AI 应用程序的开发和集成变得更加简单和统一。

从上图可以看出,MCP 就是以更标准的方式让 LLM Chat 使用不同工具。

1.3 MCP 结构

MCP 由三个核心组件构成:HostClientServer。让我们通过一个实际场景来理解这些组件如何协同工作:

  1. Host:Claude Desktop 作为 Host,负责接收你的提问并与 Claude 模型交互。
  2. Client:当 Claude 模型决定需要访问你的文件系统时,Host 中内置的 MCP Client 会被激活。这个 Client 负责与适当的 MCP Server 建立连接。
  3. Server:在这个例子中,文件系统 MCP Server 会被调用。它负责执行实际的文件扫描操作,作为你的桌面目录,并返回找到的文档列表。

整个流程是这样的:

这种架构设计使得 Claude 可以在不同场景下灵活调用各种工具和资源,而开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。


二、MCP 的使用

下面我们通过一个简单的例子来深入了解 MCP。

2.1 uv 的安装

uv 是一款高性能的 Python 包管理工具,可以提供比传统 pip 更快的包安装和依赖管理体验。

  • uv 官网: https://docs.astral.sh/uv/

在使用 MCP 之前,我们需要先安装 uv ,大家可以使用如下命令检查电脑上是否安装了:

uv --version
  • 如果提示 uv 命令不存在,则需要安装。
  • 如果出现了 uv 的版本号,则说明已安装,如下所示:

如果未安装 uv,我们可以使用如下命令进行安装:

# Linux/macOS
curl -LsSf https://astral.sh/uv/install.sh | sh# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

确保 uv 安装完毕之后,我们需要使用如下命令创建虚拟空间:

# 创建虚拟环境并激活
uv venv

虚拟空间创建完毕之后,就可以去 MCP 广场挑选我们需要的 MCP 工具了。

2.2 MCP 广场

跟大家推荐两个常用的 MCP 广场:

  • ModelScope MCP 广场: https://modelscope.cn/mcp
  • 阿里云百炼 MCP 广场: https://bailian.console.aliyun.com/?spm=a2c6h.12873639.article-detail.11.6cbb563fdn0kGe&tab=mcp#/mcp-market

这里我们使用 ModelScope MCP 广场,在搜索框中输入 mysql 搜索,点击下面搜索到的 MySQL MCP 服务器,如下图所示:

2.3 MCP 的配置

其实 MCP 配置采用的是 键值对 模式,其中:

  • key插件名称
  • value 是插件的 执行命令参数个性化配置 等。

在 MCP 广场的插件详情页面,我们可以在右侧看到在 uv 下的配置文件,如下图所示:

页面中的 mcpServers 就是我们的大模型配置对象,对象下面的各个属性就代表了不同的插件。所以我们需要的部分为 mcpServers 对象下的 mysql 对象部分,这部分才是插件的内容。

2.4 MCP 的依赖安装

很多新手接触 MCP 的一大误区在于认为在 JSON 文件里面配置好了 MCP 之后,大模型就会自动下载 MCP 的依赖包(就像我们 IDE 里面的插件一样),其实并不是!!

我们需要手动安装 MCP 的依赖包,一般安装方法会直接在 MCP 服务器的详情页面说明,如下所示:

如果电脑上没有 pip 命令,我们可以在前面使用 uv,如下所示:

uv pip install mysql-mcp-server

安装之后,需要再根据具体 MCP 服务器的需要进行相关环境变量的配置。(如果我们已经在 MCP 配置里面指定了具体的变量值,就不需要环境变量了,如下图所示)

2.5 Charry Studio

这里我们以 Charry Studio 为例,具体说明 MCP 的使用。Charry Studio 是目前市面上最流行的 大模型 工具,免费开源,内部还可以集成各种 MCP 和大模型 API,推荐大家用一下,具体下载地址如下:

  • Charry Studio 官网下载: https://www.cherry-ai.com/download

下载安装完 Charry Studio 之后,我们打开页面,在点击右上角的设置:

我们点击 +添加服务器

选择 从 JSON 导入

将如下内容,复制粘贴到框内,点击确定即可。

(具体的 mysql_mcp_server 安装路径和数据库信息需要根据个人情况修改。)

{"mcpServers": {"mysql": {"args": ["--directory","/Users/acgkaka/.venv/bin","run","mysql_mcp_server"],"command": "uv","env": {"MYSQL_HOST": "localhost","MYSQL_PORT": "3306","MYSQL_USER": "root","MYSQL_PASSWORD": "12345678","MYSQL_DATABASE": "my_db"}}}
}

可以看到我们的 MCP 服务器已经添加成功了,我们可以点击右上角的开关进行打开。

(打开时会检测 MySQL 数据库的连接信息,如果连接失败会无法打开)

打开成功之后,如下所示:

2.6 测试结果

做好以上步骤之后,我们就可以在大模型里面使用了。

我们先在 Charry Studio 中配置好自己的大模型 API Key,例如我这里使用的是 DeepSeek,点击 点击这里获取密钥,会自动打开 DeepSeek 的页面。

  • Deep Seek API Key地址: https://platform.deepseek.com/api_keys

由于 Deep Seek API Key 只有在第一次创建的时候才能看到,我们这里可以先创建一个。

创建好之后,将 API Key 复制到 Charry Studio 中就可以正常使用了。

例如我们让 DeepSeek 帮我们查询一下 数据库中表的数据,大模型会自动调用 MCP 服务器去查询数据库,生成相应的 SQL,然后执行之后得到数量为 174 的结果。

到这里你已经学会如何使用 MCP 了,赶紧去 MCP 广场看看有没有可以解决你痛点的 MCP 工具吧~

整理完毕,完结撒花~🌻





参考地址:

1.MCP (Model Context Protocol),一篇就够了。https://zhuanlan.zhihu.com/p/29001189476

2.模型上下文协议——MCP,https://mcp.meetcoding.cn/

3.MCP是啥?技术原理是什么?一个视频搞懂MCP的一切。Windows系统配置MCP,Cursor Cline使用MCP,https://www.bilibili.com/video/BV1AnQNYxEsy/

http://www.dtcms.com/a/350874.html

相关文章:

  • SQL查询-设置局部变量(PostgreSQL、MySQL)
  • 嵌入式学习 day58 驱动字符设备驱动
  • 玳瑁的嵌入式日记D25-0825(进程)
  • Java全栈开发实战:从Spring Boot到Vue3的项目实践
  • Android Glide 缓存机制深度解析与优化:从原理到极致实践
  • 集成电路学习:什么是ONNX开放神经网络交换
  • 深度学习③【卷积神经网络(CNN)详解:从卷积核到特征提取的视觉革命(概念篇)】
  • 详解 Transformer 激活值的内存占用公式
  • SOME/IP-SD报文中 Entry Format(条目格式)-理解笔记5
  • 算法题记录01:
  • 0826xd
  • Trip Footprints 旅行App开发全流程解析
  • UALink是什么?
  • 数字化转型:概念性名词浅谈(第四十二讲)
  • 牛客周赛 Round 106(小苯的方格覆盖/小苯的数字折叠/ 小苯的波浪加密器/小苯的数字变换/小苯的洞数组构造/ 小苯的数组计数)
  • 撤回git 提交
  • 算法训练营day62 图论⑪ Floyd 算法精讲、A star算法、最短路算法总结篇
  • C# 中常见的 五大泛型约束
  • [系统架构设计师]应用数学(二十一)
  • 云计算学习笔记——Linux用户和组的归属权限管理、附加权限、ACL策略管理篇
  • 联邦雪框架FedML自学---第四篇---案例一
  • 浅谈:运用幂的性质
  • 程序的“烽火台”:信号的产生与传递
  • 【基础-单选】使用http发起网络请求,需要以下哪种权限?
  • C6.2:小信号、交流电流增益分析
  • 立轴式小型混凝土搅拌机的设计含14张CAD
  • 客户生命周期价值帮助HelloFresh优化其营销支出
  • 快速了解工业相机中的连续采集、软触发、硬触发和同步触发以及PTP同步触发
  • Spring介绍
  • Linux iptables 防火墙