掘金 人工智能 22小时前
Cursor只支持MCP的tools功能,来用Claude演示下完整的MCP服务是如何被调用的
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了如何在Claude客户端中使用MCP服务,包括Tools、Prompts、Resources和Roots四大功能。通过实际操作演示,展示了如何配置和调用这些功能,帮助读者理解MCP的开发和应用,并鼓励开发者尝试构建自己的小工具,从而更好地利用MCP的强大能力。

⚙️ **Tools功能:** 提供了让大模型执行各种操作的工具,如文件操作、任务执行等。通过配置和调用,可以扩展大模型的能力,使其能够与外部世界交互。

💬 **Prompts功能:** 允许用户根据输入生成定制的提示词,并将其提供给大模型执行。这就像构建一个提示词库,方便团队共享和复用提示词,提高工作效率。

📚 **Resources功能:** 允许将知识库、文件或文章等作为附件提供给大模型,供其进行任务处理。这使得大模型能够基于特定知识进行推理和生成,提升其解决问题的能力。

🔒 **Roots功能:** 用于限制MCP服务的文件操作范围,防止越界操作。通过配置,可以控制大模型能够访问和修改的文件,增强系统的安全性。

上个文章中,我们自己用ts实现了一个MCP服务,添加了Resources,Prompts,Tools这个功能。并且接入了Cursor。但是Cursor只支持Tools功能的调用。

本文通过claude客户端,完整看一下,这3个功能的具体使用。

上一篇文章看这:

如何搭建一个 MCP 服务,然后在Cursor中调用,半小时,彻底掌握MCP mp.weixin.qq.com/s/b-zZqOHHZ…

MCP的基本概念

MCP 可以被理解为AI 应用程序的“USB-C 接口”。就像USB-C标准化了设备与各种外设的连接方式一样,MCP则标准化了AI模型如何连接到不同的数据源和工具。

Sampling和Discovery基本只有个定义,实际应用不多,也不好理解,就先跳过了。

常见的支持MCP的客户端有下面这些。可以看到大家一致支持的是tools功能,其他功能支持度一般。

所以当下我们也可以将MCP当作一个工具集合。

完整的客户端支持情况见:modelcontextprotocol.io/clients

一、下载安装Claude

下载安装 claude.ai/download

访问需要魔法、需要登陆,claude每天有一定的免费次数。

二、配置MCP

右上角点击Setting -> Developer -> Edit Config

然后用编辑器打开配置文件:claude_desktop_config.json

添加mcpServers,配置我们自己开发的服务mcp-demo。这个类似上篇文章的Cursor配置。配置怎么生成,可以去上篇文章看下。

{  "mcpServers": {    "mcp-demo": {      "command": "node",      "args": [        "--experimental-specifier-resolution=node",        "/Users/chen/Desktop/workspace/demo-projects/mcp/mcp-demo/build/index.js"      ]    }  }}

注意⚠️⚠️:配置完成后,需要重启claude

三、调用tools功能

然后点击第二个图标按钮,可以看到mcp-demo添加成功了。

里面有我们开发的2个工具。

执行命令:

执行echo_message, 用户输入为:你好👏

看下代码实现:

总结一下:

Tools工具就是提供一些工具,让大模型执行,可以是文件操作,任务执行等等。

四、调用Prompts功能

对话框第一个按钮,点击Add

进去之后会有2个选项:

我们选择generate_slogan功能,这个我们开发的提示词功能。

输入环保,点击Add prompt

可以看到对话框底部有个TXT的文件,打开之后,可以看到这是我们的MCP服务返回的提示词。

到这里就可以直接执行了。

最后再看下我们的代码实现:

总结一下:

Prompts功能,可以根据用户的输入生成一个定制的提示词,然后返回供大模型执行。相当于与搭建提示词库,这对团队中共享提示词很有帮助。

五、调用Resource功能

类似上一步的Prompts,这次我们选择status,这是我们开发的Resource功能。

输入框下面就会有一个附件,内容是我们返回的内容,他会被当作附件给到大模型处理。

总结一下:

Resource可以当作一个知识库,或者文件、文章等,让大模型,根据这些知识进行任务处理。

六、Roots功能

这一步我们找一个其他的MCP服务来演示。

在mcpServers增加一个服务filesystem,用来操作计算机上的文件。这里我添加了我的Downloads目录。

这样就会限制这个MCP服务只会操作修改我的Downloads文件夹下的文件,不会改其他的。

{  "mcpServers": {    "mcp-demo": {      "command": "node",      "args": [        "--experimental-specifier-resolution=node",        "/Users/chen/Desktop/workspace/demo-projects/mcp/mcp-demo/build/index.js"      ]    },    "filesystem": {      "command": "npx",      "args": [        "-y",        "@modelcontextprotocol/server-filesystem",        "/Users/chen/Downloads"      ]    }  },  "globalShortcut": ""}

添加之后,重启Claude

现在问问Claude我的Downloads目录有哪些文件?

点击允许

后面会让你授权文件夹的访问权限,点击允许:

可以看到Claude执行了2个命令,然后读取到了我的本地文件。

再来让他帮我改下文件名:

执行了move_file命令,将文件名修改了。

再来试试让他访问授权外的文件。成功拦截住了,还不错。

总结一下:

Roots功能用来限制文件的操作范围。避免MCP越界。不过这个需要MCP服务自己实现范围的限制。我们上面的案例,就是通过在配置中的环境变量做的限制。


到这里我们就把MCP的几个基本功能演示完了。

Tools:提供工具调用

Prompts:提供提示词

Resource: 提供附加知识等

Roots:限制文件的操作范围

希望通过这个演示,你也对MCP的开发和使用有了一些理解。有兴趣的,不妨尝试自己开发一些小工具。

我是柒崽,就酱紫,下课。

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

MCP Claude Tools Prompts Resources Roots
相关文章