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

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

相关推荐
Patrick在香港2 小时前
MCP 的 initialize 握手真的没了?67 行标准库实测 2026-07-28 规范
python·agent·claude·mcp·json-rpc
EatFan20 小时前
AI Agent 进入工程化下半场:从多智能体编排走向治理、标准化与运行沙箱
人工智能·多智能体·ai agent·开源框架·mcp·agents.md
code2cat21 小时前
【随笔】MCP缓存期限与共享范围:让Agent复用资料时记住边界
java·后端·缓存·ai agent·mcp
一缕82年的清风1 天前
实战指南:如何把现有 REST API 工业级封装为 MCP(Model Context Protocol)服务
python·mcp
网络毒刘1 天前
手写一个最小 MCP Server:stdio 传输、两个 tools、在 Cursor 里验通调用链
cursor·mcp·stdio·atomgit·工具实践
EatFan1 天前
当 CubeMX 遇上 AI Agent:用 MCP 让 AI 直接生成 STM32 HAL 工程
人工智能·stm32·嵌入式硬件·cubemx·stm32cubemx·hal·mcp
可乐ea2 天前
GitHub Security Lab 开源 Fuzzing Taskflow:让 LLM 智能体自己跑完 C/C++ 模糊测试
jvm·c++·github·模糊测试·mcp·代码agent·智能体自动化
网络毒刘2 天前
Token 账单的「隐形税」:系统提示、工具定义与历史滚动为何比生成贵
agent·token·cursor·成本·mcp
吃饱了得干活2 天前
Agent 的记忆与工具:从上下文窗口到 MCP
python·agent·mcp
VIP_CQCRE2 天前
让 Claude 实时联网搜索:Ace Data Cloud Serp MCP 接入指南
ai·claude·搜索·mcp·acedatacloud