当前位置: 首页 > news >正文

[mcp-servers] docs | AI客户端-MCP服务器-AI 架构

链接:https://github.com/punkpeye/awesome-mcp-servers

服务器调用 相关专栏:实现Json-Rpc


docs:精选MCP服务器资源列表

本专栏为精选 模型上下文协议(MCP)服务器的列表。
MCP 是一种标准协议语言,允许*AI客户端与各类计算机程序和服务(MCP服务器)进行交互。
这些
服务器通过提供对特定工具资源*(涵盖文件系统、数据库、浏览器自动化及云平台等)的访问,扩展AI能力。

本列表按分类整理服务器资源,包含构建新服务器的框架及支持生态系统的工具集

我们提供了向列表贡献 新服务器模型 的指南。

可视化概览

在这里插入图片描述

章节结构

  1. 客户端
  2. MCP服务器
  3. 工具/资源
  4. 模型上下文协议(MCP)
  5. 分类体系
  6. 开发框架
  7. 生态工具
  8. 贡献指南

第一章:客户端

欢迎来到awesome-mcp-servers

我们将从理解这个激动人心的生态系统中的不同组件开始探索之旅。

我们的第一站是客户端

试想一个AI模型,比如您可能使用的智能聊天机器人。这种AI虽然具备卓越的智能,但其知识通常受限于训练数据。

它无法直接读取您电脑上的文件,也无法实时获取股票行情。

假设希望AI助手读取桌面新建的report.txt文档,AI本身无法直接访问本地文件——这存在严重安全隐患!这正是客户端的用武之地。

什么是客户端?

简而言之,客户端是调用MCP服务器的软件实体。

它通常是AI模型本身,或是托管/交互AI模型的应用程序。

当AI遇到超出其知识范畴的请求(如"读取我电脑中的report.txt文件"),客户端负责将需求转化为标准化请求,通过模型上下文协议(MCP)发送至专用工具。

核心流程如下:

  • 客户端识别AI需要外部资源支持的操作(如文件读取、数据库查询)
  • 通过MCP协议向特定MCP服务器发送结构化请求
  • 服务器执行操作并返回结果
  • 客户端将结果反馈给AI进行后续处理

这种机制使AI能力突破训练数据限制,实现与现实世界的深度交互。


典型客户端形态

客户端呈现多样化形式:

  • **AI聊天应用**:如Claude Desktop等应用,在与用户对话时后台调用MCP客户端功能
  • 智能开发环境:如Cursor、Windsurf、Zed等集成AI的编程工具,通过文件系统服务器实现代码文件读写
  • AI托管平台:任何需要扩展AI能力的软件系统,均可集成MCP客户端组件

参阅README文档"客户端"章节,可见已支持的客户端案例:

  • Glama Chat(多模态AI客户端)
  • Cursor(智能编程IDE)
  • Zed(协作式代码编辑器)

文件读取案例

以读取report.txt文件为例,完整流程如下:

  1. 用户指令:“请总结report.txt内容”
  2. AI识别文件读取需求,客户端定位可用文件系统MCP服务器
  3. 客户端构建MCP请求(示例为简化版协议):
{"tool_name": "read_file","params": {"path": "report.txt"}
}
  • tool_name:指定操作类型(文件读取)
  • params:传递文件路径参数
  1. 请求发送至文件系统MCP服务器
  2. 服务器执行本地文件读取(需通过权限验证)
  3. 返回文件内容至 AI 客户端
  4. AI生成摘要并反馈用户

底层交互流程

在这里插入图片描述

该流程展示用户指令如何通过 客户端-MCP服务器(json请求) -AI的协同处理完成。

总结

客户端是扩展AI能力的门户,负责将AI的需求转化为标准化MCP请求,通过MCP服务器实现文件管理、数据查询等多样化操作。

这种架构使AI突破数据局限,成为真正智能化的数字助手。

下一章我们将深入探讨交互的另一端——接收并执行请求的MCP服务器。

下一章:MCP服务器


第二章:MCP服务器

欢迎回来!

在第一章:客户端中,我们认识了客户端——这个常驻于AI应用中的信使组件,当AI需要与其训练数据之外的实体交互时,客户端负责发起请求。

那么谁来接收这些请求
又是谁实际执行诸如文件读取、数据库查询等操作?

这正是**MCP服务器**的职责所在。

什么是MCP服务器?

MCP服务器如同AI的智能助理。

当**客户端**传递请求时,服务器凭借其专业化工具与知识体系完成具体操作

作为理解模型上下文协议(MCP)的软件实体,MCP服务器兼具翻译器执行者的双重属性。

各类MCP服务器专注于特定领域的功能实现:

  • 文件系统服务器:管理本地文件的读写操作
  • 数据库服务器:执行数据库连接与查询
  • 浏览器自动化服务器:控制网页浏览器进行数据采集
  • 版本控制服务器:对接Git等代码仓库系统

本资源列表(awesome-mcp-servers)正是此类专业化服务器的集合!

每个条目代表着一个可扩展AI能力的"权限执行者"。

文件读取案例解析(服务器视角)

延续第一章的案例:用户通过客户端请求AI总结report.txt文件内容。

从服务器端观察完整流程:

  1. 文件系统MCP服务器持续监听客户端请求

  2. 接收客户端构建的MCP请求(简化示例):

    {"tool_name": "read_file","params": {"path": "report.txt"}
    }
    
    • tool_name:指定操作类型(文件读取)
    • params:传递文件路径参数
  3. 服务器解析请求,定位report.txt文件路径

  4. 在权限验证通过后执行本地文件读取

  5. 构建MCP响应报文:

    {"status": "success","result": {"content": "这是report.txt的内容..."}
    }
    
    • status:操作状态(成功/失败)
    • result:返回文件内容或其他执行结果
  6. 将响应报文返回客户端

  7. 客户端将文件内容传递给AI进行后续处理

底层交互流程

服务器端处理逻辑:

在这里插入图片描述

该流程揭示MCP服务器作为核心执行组件的运作机制——接收原始请求,通过专用接口(如磁盘访问)执行操作,最终返回结构化结果

服务器代码实现示例

以下Python代码片段演示read_file请求处理逻辑:

import jsondef 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)# 客户端请求示例
# client_request = '{"tool_name": "read_file", "params": {"path": "report.txt"}}'
# server_response = handle_mcp_request(client_request)
# print(server_response)
  • handle_mcp_request函数解析传入的JSON请求
  • 校验tool_namepath参数有效性
  • 通过Python原生文件接口执行读取操作
  • 构建符合MCP规范的响应报文

实际生产级服务器还需实现网络通信多工具管理、安全防护等进阶功能

但上述示例清晰展现了MCP服务器的核心逻辑:请求解析→操作执行→响应反馈。

总结

MCP服务器MCP生态系统的动力核心。

作为专业化服务提供者,它接收客户端请求,通过对接工具与资源执行具体操作,最终返回结构化结果

通过部署不同MCP服务器,AI模型得以突破原始训练限制,获得文件管理在线服务交互等扩展能力。

下一章我们将深入探讨工具与资源——服务器所对接的实际操作对象(如数据库、文件系统、Web API等)。

下一章:工具与资源

相关文章:

  • WPF 实现自定义弹窗输入功能
  • 第一章-人工智能概述-深度学习与AI发展(2/36)
  • 星型模式(Star Schema)
  • 代码随想录|图论|05岛屿数量(深搜DFS)
  • 重建与数字子序列匹配的最小数字序列的有效方法
  • element-plus 按钮 展开/隐藏
  • css 颜色与字体
  • Flux.create
  • Mac电脑如何搭建基于java后端的开发的各种工具服务
  • WebSocket 与 HTTP 的区别及 Spring Boot 实战应用
  • FANUC机器人教程:用户坐标系标定及其使用方法
  • Java——注解开发模式下的 Spring IoC/DI 与 Bean 管理实战
  • 机器学习15-规则学习-知识加强
  • 【NLP】自然语言项目设计
  • vllm加载多个Lora部署
  • 数据分享:教育数据集-预测学生辍学风险和学术成功数据集
  • 01【C++ 入门基础】命名空间/域
  • 8、做中学 | 四年级下期 Golang运算符
  • [论文阅读] 人工智能 + 软件工程 | AI 与敏捷开发的破局之路:从挫败到成功的工作坊纪实
  • Git 使用规范与命令使用场景详解