Cursor只支持MCP的tools功能,来用Claude演示下完整的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模型如何连接到不同的数据源和工具。

  • Resources(资源):资源允许服务器公开数据和内容,供客户端读取并用作大型语言模型(LLM)的上下文。就类似你给大模型提供的文件。

  • Prompts(提示):定义可重用的提示模板和工作流,客户端可以轻松地将这些模板呈现给用户和LLM19。就好比一个提示词库,方面在客户端使用。

  • Tools(工具):最常用的功能。Tools公开可执行的功能给客户端。它们被设计为 "模型控制"的, 这意味着AI模型可以根据其上下文理解和用户提示自动调用这些工具(通常需要用户的批准)

  • Roots(根): 根定义了MCP服务器可以操作的边界。它们主要用于文件系统路径,控制大模型可以操作的文件范围。

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配置。配置怎么生成,可以去上篇文章看下。

json 复制代码
{
  "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文件夹下的文件,不会改其他的。

perl 复制代码
{
  "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的开发和使用有了一些理解。有兴趣的,不妨尝试自己开发一些小工具。

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

相关推荐
ServBay16 小时前
Laravel Herd MCP 的替代,多语言与跨平台的 AI 本地开发选择
后端·ai编程·mcp
码哥字节17 小时前
我把整个代码库喂给 Claude Code,工具超 50 个就静默丢失,这个坑太阴了
mcp·claude code·ai编程工具
ServBay4 天前
打通 AI 编程本地运维边界,利用 MCP 协议简化环境与服务管理
后端·ai编程·mcp
Solis程序员6 天前
MCP (Model Context Protocol):AI应用连接外部世界的标准协议
人工智能·microsoft·agent·skill·mcp
-星空下无敌6 天前
Skills详解(2万字详细教程),Skills是什么,如何安装并使用Skills
人工智能·ai·提示词·codex·mcp·skills·agent skills
老H科研技术6 天前
第 07 篇:OAuth 2.1 与授权架构 —— AS/RS 分离的正确姿势
人工智能·mcp
海天一色y6 天前
深入理解 Function Calling、MCP 与 Skills:AI Agent 的三层能力架构
人工智能·mcp·skills
未秃头的程序猿7 天前
别再重复适配了!用MCP给AI配个"万能工具箱",Java项目接入新能力再也不改代码
后端·ai编程·mcp
宋哥转AI7 天前
Spring AI Alibaba实战:通过MCP协议串联Graph编排与RAG检索
agent·mcp