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

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

相关推荐
程序员海军2 小时前
从0到1开发一个MCP Server:让AI助手拥有数据库操作能力
aigc·openai·mcp
coder_pig15 小时前
【Trae + 掘金MCP】不写代码,靠嘴遁花0.5h定制公号排版工具
aigc·mcp·trae
wenb1n18 小时前
深入解析MCP的三种传输方式实现
mcp
穿过生命散发芬芳18 小时前
基于MCP实现实时北京旅游信息智能体的方案
mcp
阿里云云原生19 小时前
通义灵码带你玩转 MCP 最佳实践(合辑,持续更新中)
mcp
Captaincc21 小时前
MCP 很好,但它不是万灵药!真正的技术进步,往往始于祛魅之后的清醒认知
ai编程·mcp
仙人掌_lz1 天前
如何打造一款金融推理工具Financial Reasoning Workflow:WebUI+Ollama+Fin-R1+MCP/RAG
人工智能·搜索引擎·ai·金融·llm·rag·mcp
Elecat2 天前
25年6月 Figma MCP Server + Cursor踩坑记录
ai编程·cursor·mcp
Ombré_mi2 天前
MCP客户端Client开发流程
大模型·uv·deepseek·mcp·mcp客户端