第三章:工具与资源

欢迎回来!

  • 在之前的旅程中,我们认识了客户端(第一章:客户端)——AI的信使组件

  • 以及MCP服务器(第二章:MCP服务器)——接收请求并具备执行能力的智能助理。

但MCP服务器本身并非文件柜实体、网页浏览器或计算器。它是懂得如何操作这些实体的软件。

服务器实际对接的操作对象与能力载体,我们称之为工具/资源

什么是工具与资源?

设想一个车间:

  • 客户端如同提出制作需求的顾客
  • MCP服务器是掌握制作技艺的木匠
  • 工具/资源则是完成工作的锯子、锤子、木材等必要物料。

awesome-mcp-servers生态中:

  • 工具指MCP服务器可执行的特定操作指令
  • 资源指操作所作用的数据源或实体系统

核心运作流程:

  1. 客户端发送MCP操作请求
  2. MCP服务器解析请求,识别目标工具
  3. 服务器调用对应资源执行工具指令
  4. 获取资源操作结果并返回客户端

本质上,MCP服务器充当客户端(需求方)与工具/资源(执行方)之间的协议转换器与操作执行器。

本资源列表收录的各类MCP服务器,正是不同工具/资源的能力载体

工具与资源实例

不同服务器对接不同资源类型,提供多样化工具指令:

资源类型工具示例功能描述
文件系统read_file, list_directory本地文件读写与目录管理
数据库query_db, insert_record数据库查询与记录操作
网页浏览器navigate, click_element网页导航元素交互
日历系统list_events, create_event日程事件管理
版本控制list_files, get_commit代码仓库操作
计算引擎add, subtract, multiply数学运算执行

每个MCP服务器专注于特定资源类型,并实现对应工具指令集。

文件读取案例(工具/资源视角)

延续前文案例:用户通过客户端请求AI总结report.txt文件。

在第二章中,服务器接收{"tool_name": "read_file", "params": {"path": "report.txt"}}请求。现聚焦工具/资源交互:

  1. 客户端将请求发送至文件系统MCP服务器
  2. 服务器解析出需执行read_file工具指令
  3. 识别该指令作用于文件系统资源
  4. 调用操作系统级文件读取接口
  5. 文件系统资源定位并返回文件内容
  6. 服务器封装结果至MCP响应报文

此处read_file为具体工具指令,文件系统为支撑该指令的底层资源。

完整交互

在这里插入图片描述

该流程图完整呈现:用户指令经客户端→AI→MCP服务器→工具/资源的多级传递,最终逆向返回处理结果。

服务器作为工具/资源操作器

回顾第二章的Python示例代码,with open(path, 'r') as f:正是服务器调用文件系统资源执行read_file工具的关键:

import json
import os  # 为清晰性添加,尽管open是内置函数def handle_mcp_request(request_json):"""MCP请求处理函数"""request = json.loads(request_json)tool_name = request.get("tool_name")params = request.get("params", {})if tool_name == "read_file":path = params.get("path")if path:# 此处为服务器与文件系统工具/资源的交互try:with open(path, 'r') as f:  # <--- 调用工具/资源接口!content = f.read()response = {"status": "success","result": {"content": content}}except FileNotFoundError:response = {"status": "error","error": {"message": f"文件未找到: {path}"}}except Exception as e:response = {"status": "error","error": {"message": f"文件读取错误: {e}"}}else:response = {"status": "error","error": {"message": "缺少路径参数"}}else:response = {"status": "error","error": {"message": f"未知指令: {tool_name}"}}return json.dumps(response)# 'open()'函数属于Python标准库
# 实际通过操作系统文件API完成操作
# MCP服务器代码提供框架结构
# 具体操作由底层工具/资源能力实现

handle_mcp_request函数定义可用工具集(如read_file),而工具集中的open()函数作为资源接口实现具体操作。

总结

工具/资源是MCP协议体系的最终能力载体

  • 作为MCP服务器对接的实际操作系统或数据源,它们使AI能力突破虚拟边界,实现与现实世界的深度交互。

  • 通过部署不同MCP服务器(文件系统、数据库、Web API等),AI模型得以调用多样化工具指令,形成强大的生态能力网络。

至此,我们已经掌握MCP体系的三大核心要素:客户端MCP服务器工具/资源

下一章我们将深入解析**模型上下文协议(MCP)**本身——连接三者的通信语言。

下一章:模型上下文协议(MCP)


第四章:模型上下文协议(MCP)

在前三章中,我们认识了生态系统的核心角色:

  • 提出需求客户端(第一章:客户端)

  • 掌握执行方法MCP服务器(第二章:MCP服务器)

  • 以及服务器对接的实际操作对象工具/资源(第三章:工具与资源)。

但各组件间如何实现精准通信

这正是模型上下文协议(MCP)的核心作用。


什么是模型上下文协议(MCP)?

MCP是客户端服务器通信的标准化语言通用规则集

如同不同品牌家电 需要通用遥控协议,MCP确保不同开发者构建的客户端与服务器可无缝交互。

(实现了 客户端和服务端 构建的解耦,方便了开源生态的发展)

核心运作机制:

  • MCP定义了客户端与服务器间消息的结构化格式

  • 当AI(客户端)需要读取文件时,不会直接发出"读取report.txt"的指令,而是构建符合MCP规范的请求报文

  • 文件系统服务器(MCP服务器)接收后解析报文,执行操作并返回结构化响应

在这里插入图片描述

该流程图展示MCP报文在客户端与服务器间的桥梁作用,确保跨系统操作的可预测性与安全性

MCP报文结构

MCP报文采用结构化数据格式(如JSON),主要包含两类:

MCP请求(客户端→服务器)

{"tool_name": "read_file","params": {"path": "report.txt"}
}
  • tool_name:指定目标工具指令(如read_file
  • params:传递操作参数(如文件路径)

MCP响应(服务器→客户端)

成功响应示例:

{"status": "success","result": {"content": "这是report.txt的内容..."}
}

错误响应示例:

{"status": "error","error": {"message": "文件未找到: report.txt","code": "FileNotFoundError"}
}
  • status:操作状态(success/error
  • result:成功时返回操作结果
  • error:失败时返回错误详情(含描述信息与错误代码)

MCP的核心价值

  1. 互操作性
    任何符合MCP规范的客户端均可对接任意MCP服务器,构建开放生态系统

  2. 可扩展性
    新增能力只需部署支持MCP的新服务器,现有客户端无需改造即可调用

  3. 清晰性与可预测性
    结构化报文提升开发效率,标准化错误代码增强系统健壮性

  4. 专注分工
    客户端开发者聚焦AI交互,服务器开发者专注资源对接,避免重复造轮

总结

模型上下文协议(MCP)是AI工具生态的通信基石。

通过定义结构化报文规范,实现客户端与服务器的解耦协作,使AI能力突破训练数据局限,安全对接多样化工具与资源。

下一章将探讨分类体系——如何组织管理海量MCP服务器。

下一章:分类体系


第五章:分类体系

在前几章中,我们深入探讨了MCP生态的核心组件:

  • 发起请求AI 客户端(第一章:客户端)

  • 执行操作MCP服务器(第二章:MCP服务器)

  • 对接实体系统工具/资源(第三章:工具与资源)

  • 以及连接三者的模型上下文协议(MCP)(第四章:模型上下文协议)。

当我们浏览awesome-mcp-servers资源列表时,可能会惊叹于其庞大规模。

如何从成百上千个服务器中快速定位目标

例如,当AI需要操作数据库时,如何高效筛选出相关服务器?这正是分类体系的价值所在。

什么是分类体系?

想象awesome-mcp-servers如同巨型图书馆。若所有书籍杂乱堆放,寻书将如大海捞针。

图书馆通过分区管理(文学、科技、历史等)解决此问题,分类体系正是MCP生态的"图书管理系统"。

核心功能:

分类体系通过**资源类型标签**对MCP服务器进行分组,使开发者能快速定位所需能力模块。其运作逻辑如下:

  1. 明确AI需执行的任务类型(如文件操作、数据库查询)
  2. 在资源列表中查找对应分类标签
  3. 浏览该分类下的所有MCP服务器
  4. 选择适配的服务器进行部署对接

在之前的开源指南专栏中,有提到过锚点分类体系:[project-based-learning] docs | 教程列表 | 格式规范 | 锚点分类体系

文件系统服务器查找案例

延续经典案例:需要AI读取report.txt文件时,如何通过分类体系定位文件系统服务器?

  1. 查阅分类目录
    浏览awesome-mcp-servers的README文档主分类
  2. 筛选目标分类
    寻找"文件系统"或类似标签
  3. 定位服务器列表
    在该分类下查找提供read_filelist_directory等工具的服务器
  4. 选择部署方案
    根据文档指引安装运行选定服务器,并连接客户端

在这里插入图片描述

该流程展示分类体系如何将搜索范围从全局收敛至特定领域,极大提升效率。

分类体系结构

观察awesome-mcp-servers的README文档,可见其通过Markdown标题构建层级化分类:

## 服务器实现* 🔗 - [聚合服务](#聚合服务)
* 📂 - [浏览器自动化](#浏览器自动化)
...
* 🗄️ - [数据库](#数据库)
...
* 📂 - [文件系统](#文件系统)
...
* 🛠️ - [其他工具集成](#其他工具集成)

(此为结构示意,完整列表包含更多分类)

每个二级标题代表一个分类标签,其下罗列相关MCP服务器。典型分类示例如下:

分类名称服务器/工具类型AI应用场景案例
文件系统文件读写、目录管理服务器文档总结、代码生成、文件整理
数据库数据库查询、记录操作服务器客户信息查询、销售数据分析
浏览器自动化网页导航、元素交互服务器在线调研、表单填写、内容监控
版本控制Git仓库交互服务器代码库分析、问题管理、PR创建
通讯服务Slack等消息平台对接服务器通知推送、消息读取、频道管理

该体系确保资源列表具备可扩展性,随着生态发展持续吸纳新分类与新服务器。

总结

分类体系awesome-mcp-servers资源列表的导航骨架。

通过按工具/资源类型分组MCP服务器,形成类图书馆的分区管理体系,使开发者能快速定位扩展AI能力所需的"专业助理"。

至此,我们已掌握MCP生态的完整架构:客户端发起请求给AIMCP 服务器执行操作→工具/资源实体支撑→MCP协议通信

分类体系导航选择合适的 MCP 服务器。

下一章将探讨开发框架——助力开发者快速构建MCP组件的基础设施。

下一章:开发框架

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88773.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88773.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88773.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年06月27日Github流行趋势

项目名称&#xff1a;edit 项目地址 url&#xff1a;https://github.com/microsoft/edit项目语言&#xff1a;Rust历史 star 数&#xff1a;10807今日 star 数&#xff1a;411项目维护者&#xff1a;lhecker, DHowett, b6k-dev, rhysd, MingcongBai项目简介&#xff1a;我们都编…

Camera Api 2 和 OPEN GL ES 使用(显示滤镜效果)

Camera Api 2 和 OPEN GL ES 使用&#xff08;显示滤镜效果&#xff09; 相机预览和open GL 使用实现滤镜效果 代码 https://github.com/loggerBill/camera 相机预览 1.相机动态权限 <uses-permission android:name"android.permission.CAMERA" /><uses-f…

CAS教务系统单点登录分析

1. 核心 URL 结构 GET /authserver/login?servicehttp%3A%2F%2F192.168.254.188%2Fjsxsd%2Fframework%2FxsMainV.htmlx认证服务器&#xff1a;authserver.XXXX.edu.cn&#xff08;典型 CAS 系统&#xff09;目标服务&#xff1a;http://192.168.254.188/jsxsd/framework/xsMa…

利用云雾自动化在智能无人水面航行器中实现自主碰撞检测和分类

大家觉得有读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 工业信息物理系统 &#xff08;ICPS&#xff09; 技术是推动海上自主化的基础&#xff0c;尤其是对于无人水面航行器 &#xff08;USV&#xff09;。然而&#xff0c;船上计算限制和通信延迟…

AI+物联网:从万物互联到万物智联

AI物联网&#xff1a;从万物互联到万物智联的范式革命 当农田传感器自主决策灌溉时机&#xff0c;当咖啡机根据睡眠数据调节浓度&#xff0c;当城市交通系统在拥堵发生前主动干预——这些场景不再是科幻想象&#xff0c;而是2025年AIoT&#xff08;人工智能物联网&#xff09;…

Python爬虫实战:研究Levenshtein库相关技术

1. 引言 1.1 研究背景与意义 随着电子商务的快速发展,网络上积累了海量的产品数据。这些数据来自不同的电商平台、卖家,存在着产品名称不统一、规格描述差异大等问题,给数据整合、价格比较、竞品分析等应用带来了极大挑战。传统的精确匹配方法无法处理产品名称中的拼写错误…

MySQL 总是差八个小时,如何破?

MySQL 总是差八个小时&#xff0c;如何破&#xff1f;_mysql__江南一点雨-Byzer 白泽 解决 SpringBoot 应用中 MySQL 时区配置引起的时间不一致问题 - 路有所思 - 博客园

iOS 为图片添加水印

(instancetype)waterMarkWithImage:(UIImage *)image andMarkImageName:(NSString *)markName{ UIImage *watermarkImage [UIImage imageNamed:markName]; if (!watermarkImage) { NSLog("水印图片加载失败: %", markName); return image; } // 获取原图尺寸和方向 …

蓝牙工作频段与跳频扩频技术(FHSS)详解:面试高频考点与真题解析

蓝牙技术凭借其低功耗、短距离通信的特性,已成为物联网、智能穿戴等领域的核心技术之一。其核心竞争力在于对 2.4GHz ISM 频段的高效利用与跳频扩频技术(FHSS)的创新应用。本文将系统梳理蓝牙工作频段与 FHSS 的高频考点,并结合历年真题与解析,快速掌握核心知识,轻松应对…

ArkTS与仓颉开发语言:鸿蒙编程的双子星

前言 鸿蒙是多语言生态&#xff0c;ArkTS、仓颉和 C/C充分互补。ArkTS 是动态类型编程语言&#xff0c;主打易学易用、生态丰富、极简开发、持续创新四大特征&#xff1b;仓颉是静态类型编程语言&#xff0c;主打高性能、强安全、跨平台、智能化等特性。为满足不同业务场景诉求…

怎么把本地仓库push 到gitlab 上

1. 首先 我们需要再gitlab 上建立一个group &#xff0c; &#xff08;group 可也设定是public 还是private&#xff09;&#xff0c;public 可以不用用户密码用 https 下载 2. 再gitlab 的group 下 建立一个仓库 &#xff08;pulbic/private) 如何删除 一个仓库&#xff08;…

论文笔记(八十六)V-HOP: Visuo-Haptic 6D Object Pose Tracking

V-HOP: Visuo-Haptic 6D Object Pose Tracking 文章概括摘要1. 引言2.背景A. 问题定义B. 触觉表示基于单元阵列的传感器基于视觉的传感器 3. 方法学A. 手爪表示B. 物体表示C. 网络设计D. 训练范式 IV. 实验A. 多形态数据集B. 位姿跟踪比较C. 模态消融D. 融合策略消融E. 遮挡对性…

[论文阅读] (40)CCS24 PowerPeeler:一种通用的PowerShell脚本动态去混淆方法

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

DeepSeek工具对AI编程帮助

一、技术架构&#xff1a;混合专家模型&#xff08;MoE&#xff09;的颠覆性优势 DeepSeek的核心竞争力源于其混合专家模型架构&#xff08;Mixture of Experts&#xff09;&#xff1a; 参数规模&#xff1a;6710亿参数&#xff0c;每个token仅激活37亿参数&#xff0c;实现超…

链表题解——两数相加【LeetCode】

方法一&#xff1a;递归 写法一&#xff1a;创建新节点 算法思路解析 该实现采用 递归方式 逐位处理两个链表&#xff0c;并考虑进位 carry&#xff1a; ✨ 步骤拆解 递归终止条件&#xff1a;当 l1, l2 都为空且没有进位&#xff08;carry 0&#xff09;&#xff0c;说明…

AutoGen框架的ReAct推理模式的多跳测试

问题&#xff1a;特斯拉公司 CEO 的出生地是哪个国家&#xff1f; 答案&#xff1a;南非。 推理过程&#xff1a; 第一跳&#xff1a;确定特斯拉&#xff08;Tesla, Inc.&#xff09;的 CEO。特斯拉的 CEO 是埃隆马斯克&#xff08;Elon Musk&#xff09;。 第二跳&#xff1a;…

MCP-安全(entra)

保护 AI 工作流程&#xff1a;模型上下文协议服务器的 Entra ID 身份验证 介绍 保护模型上下文协议 (MCP) 服务器的安全与锁好家门一样重要。保持 MCP 服务器开放会导致您的工具和数据遭受未经授权的访问&#xff0c;从而导致安全漏洞。Microsoft Entra ID 提供强大的基于云的身…

Node.js特训专栏-实战进阶:8. Express RESTful API设计规范与实现

🔥 欢迎来到 Node.js 实战专栏!在这里,每一行代码都是解锁高性能应用的钥匙,让我们一起开启 Node.js 的奇妙开发之旅! Node.js 特训专栏主页 专栏内容规划详情 Express RESTful API设计规范与实现:构建标准化、可维护的接口服务 在前后端分离架构盛行的今天,RESTful A…

2025企业数字化转型之道

进入2025年&#xff0c;企业的数字化转型已经不再是选择题&#xff0c;而是生存和发展的关键。如何抓住技术的浪潮&#xff0c;提高效率、提升客户体验、加强创新&#xff0c;成了企业亟需解决的问题。 1.自动化&#xff1a;释放人力潜力 自动化是数字化转型的起点。通过RPA&a…

TCP 保活定时器详解:原理、配置与最佳实践

一、TCP 保活定时器基础原理 TCP 保活定时器&#xff08;TCP Keepalive Timer&#xff09;是 TCP 协议中用于检测长时间无数据传输的连接是否仍然有效的机制。它通过在连接空闲一段时间后发送探测报文&#xff0c;确认对方主机是否仍然可达&#xff0c;从而避免在对端异常断开…