掘金 人工智能 前天 12:03
【MCP】从零开始了解模型上下文协议MCP
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章介绍了Model Context Protocol (MCP),一个开放协议,旨在实现LLM应用与外部数据源和工具的无缝集成。通过MCP,开发者可以构建AI驱动的IDE、改善聊天交互或创建自定义AI工作流程。文章详细阐述了MCP的核心概念、架构,以及如何在Claude Desktop、Cline和Cursor等客户端中使用MCP。此外,还提供了SQLite MCP的示例,帮助读者理解MCP的配置和使用流程。

💡 MCP的核心是开放协议,它允许LLM应用与外部数据源和工具无缝集成,提供了标准化的方式,将LLM与它们所需的上下文连接起来,类似于智能体应用程序的USB-C接口。

💻 MCP采用客户端-服务器架构,其中MCP Hosts(如Claude Desktop)连接到MCP Servers,后者通过MCP Clients提供特定能力,访问本地数据源或远程服务。

🔑 MCP的组成部分包括MCP协议规范、本地MCP服务的支持和开源MCP服务器库,核心概念包括Resources、Prompts、Tools、Sampling、Roots和Transports,这些共同构成了MCP的功能基础。

🛠️ 开发者可以使用Python、TypeScript等多种语言开发MCP服务,并提供了在Claude Desktop、Cline和Cursor等不同客户端中的配置和使用方法,例如SQLite MCP案例。

🛡️ MCP注重安全性,MCP服务器仅暴露特定、受控的功能,并且在本地运行,访问的资源不会暴露在互联网上,敏感操作需要用户确认。

关于MCP

MCP简介

MCP的全称是 Model Context Protocol,是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LLM 与它们所需的上下文连接起来。

用下面这个图来理解会更形象,将 MCP 想象成智能体应用程序的 USB-C 接口,它为连接 AI 模型与不同的数据源和工具提供了标准化的方法。

入门前文档

如果和我一样对MCP不太了解的小伙伴,可以通过如下文档对MCP进行初步了解,更多文档可以查看【友情链接】

习惯中文的小伙伴可以查看MCP中文文档,中文文档地址:mcp-docs.cn/introductio…

MCP官方简介:www.anthropic.com/news/model-…

MCP官网文档:modelcontextprotocol.io

MCP官方服务示例:github.com/modelcontex…

目前已有很多社区和三方服务了

MCP通用架构图

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:

MCP主要组成部分

MCP针对开发者来说有三个主要的组成部分:

MCP核心概念

MCP有以下几个核心功能:

MCP服务开发方式

MCP Server目前有 Python、TypeScript、Java、Kotlin、Ruby、C#、Swift 等7 种环境开发方式,目前使用最多的开发语言为 Python 和 TypeScript :

安装环境依赖

依次执行上面命令行环境检查如有提示“command not foud”表示没有安装对应的UV命令行环境,需要进行安装。

官方推荐安装方式,文档地址:modelcontextprotocol.io/quickstart/…

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

MCP客户端

MCP客户端一开始只有Claude Desktop app,随着MCP的爆火,陆续涌现了众多MCP客户端,如 Cline、Roo Code、Continue、Cursor、Cherry Studio、ChatWise等等,这些客户端大致可以分为 桌面端、编辑器、插件 3大类。

Claude Desktop app

Claude桌面端之前一直没有使用过,这里单独了解一下。

1、MacOS版本要求11.0及更高版本

2、选择合适的科学网络

3、没有订阅Claude的也可以不用安装,没有订阅Claude无法使用MCP

点击应用程序拖拽到【Applications】进行安装

打开Claude桌面端,输入邮箱进行登录

登录完成后即可进入Claude桌面端

Cherry Studio桌面端

关于Cherry Studio的安装和使用可以参考往期内容:
【Cherry Studio】Cherry Studio让人爱不释手的AI Chat

Cursor编辑器客户端

关于 Cursor 的安装和使用可以参考往期内容:
【Cursor】安装注册

插件类客户端

常见的几个插件类的客户端,在往期内容中多少都了解过,感兴趣的小伙伴可以看往期

Cline:【VS Code】Cline+DeepSeek平替Cursor?

Roo Code:【VS Code】Roo Cline正式更名为Roo Code

Continue:【VS Code】AI代码助手Continue体验如何?

SQLite MCP案例

我们跟着MCP中文文档中的入门案例进行操作,了解一下MCP的基本配置和使用过程,详细信息查看MCP中文文档地址:mcp-docs.cn/quickstart

SQLite MCP服务简介

该示例为Claude Desktop客户端通过SQLite MCP可以访问本地SQLite服务的配置过程

前提条件

创建数据库文件

在命令行中执行如下指令,在本地创建一个sqlite3数据库文件,我这里将文件指定到桌面目录下

# 创建一个新的 SQLite 数据库sqlite3 /Users/username/Desktop/test.db <<EOFCREATE TABLE products (  id INTEGER PRIMARY KEY,  name TEXT,  price REAL);INSERT INTO products (name, price) VALUES  ('Widget'19.99),  ('Gadget'29.99),  ('Gizmo'39.99),  ('Smart Watch'199.99),  ('Wireless Earbuds'89.99),  ('Portable Charger'24.99),  ('Bluetooth Speaker'79.99),  ('Phone Stand'15.99),  ('Laptop Sleeve'34.99),  ('Mini Drone'299.99),  ('LED Desk Lamp'45.99),  ('Keyboard'129.99),  ('Mouse Pad'12.99),  ('USB Hub'49.99),  ('Webcam'69.99),  ('Screen Protector'9.99),  ('Travel Adapter'27.99),  ('Gaming Headset'159.99),  ('Fitness Tracker'119.99),  ('Portable SSD'179.99);EOF

创建完成后可在桌面上看到该数据库文件

执行如下命令可以查到结果说明数据库创建成功

配置Claude Desktop

如果claude_desktop_config.json不存在,需要自己手动创建

在文本编辑器中打开 ~/Library/Application Support/Claude/claude_desktop_config.json 中的 Claude Desktop 应用配置

如果你安装了VS Code可以直接使用如下命令行

$ code ~/Library/Application\ Support/Claude/claude_desktop_config.json

如果没有claude_desktop_config.json文件需要自己手动创建

$ touch ~/Library/Application\ Support/Claude/claude_desktop_config.json

打开claude_desktop_config.json文件后编辑文件如下:

{  "mcpServers": {    "sqlite": {      "command": "uvx",      "args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]    }  }}

命令解析:

上面配置相当于通过运行 vux mcp-server-sqlite --db-path /Users/YOUR_USERNAME/test.db 启动一个名为 sqlite 的mcp服务,更多Sqlite用法可以参考MCP Sqlite服务库:github.com/modelcontex…

在Claude Desktop使用

Claude订阅用户看这里,只有Claude订阅用户才可以正常使用MCP

重启Claude Desktop桌面应用(重启是为了Claude Desktop重新加载配置文件),重启后在Claude Desktop右下角看到一个🔨标志表示配置成功

输入提示词验证结果(我不是Claude订阅用户,这里就不演示了)

你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格

在Cline中使用

建议在Act模式下使用

点击右上角【MCP Servers】进入MCP Servers配置

点击【Configure MCP Servers】打开配置文件

在配置文件中,配置如下Sqlite信息

{  "mcpServers": {    "sqlite": {      "command": "uvx",      "args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]    }  }}

配置完成后保存,在MCP Servers服务列表就可以看到刚刚配置的Sqlite MCP服务启用状态

点击【sqlite】展开可以对MCP服务进行数据库授权,我这里为其授权了 read_query(Select查询权限)、list_tables(列举所有表权限)、describe_table(获取表的详细信息权限)权限,这样Cline在访问Sqlite数据库时就不会一直请求授权了

输入提示词,Cline就会通过我们定义的sqlite服务读取数据库信息了

你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格

在Cursor中使用

当前Cursor版本0.45.11,使用Agent模式

进入Cursor配置页面,切换到【Features】,点击【Add new MCP server】添加一个MCP server

输入MCP Name为【sqlite】, Type类型选择【command】, Command输入如下执行指令,点击【Add】添加

uvx mcp-server-sqlite --db-path /Users/YOUR_USERNAME/test.db

等待sqlite前面的状态变为绿色即为添加成功(如果状态一致没有变化可以点击右侧的刷新按钮进行手动刷新),可以看到这里默认为sqlite服务添加了所有权限

输入提示词,Cursor就会通过我们定义的sqlite服务读取数据库信息了

你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格

使用快捷键【Cmd+I】唤起Composer,选择【agent】模式(Chat模式和Composer的normal模式下Cursor无法直接使用MCP服务)

可以看到Cursor调用了对应的MCP工具并为我们输出了数据内容

MCP交互流程

友情链接

友情提示

见原文:【MCP】从零开始了解模型上下文协议MCP

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP LLM AI 协议
相关文章