[mcp-servers] docs | AI客户端-MCP服务器-AI 架构
链接:https://github.com/punkpeye/awesome-mcp-servers
服务器调用 相关专栏:实现Json-Rpc
docs:精选MCP服务器资源列表
本专栏为精选 模型上下文协议(MCP)服务器的列表。
MCP 是一种标准协议语言,允许*AI客户端
与各类计算机程序和服务(MCP服务器
)进行交互。
这些服务器通过提供对特定工具或资源*(涵盖文件系统、数据库、浏览器自动化及云平台等)的访问,扩展AI能力。
本列表按分类整理服务器资源,包含构建新服务器的框架及支持生态系统的工具集。
我们提供了向列表贡献 新服务器模型 的指南。
可视化概览
章节结构
- 客户端
- MCP服务器
- 工具/资源
- 模型上下文协议(MCP)
- 分类体系
- 开发框架
- 生态工具
- 贡献指南
第一章:客户端
欢迎来到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
文件为例,完整流程如下:
- 用户指令:“请总结report.txt内容”
- AI识别文件读取需求,客户端定位可用文件系统MCP服务器
- 客户端构建MCP请求(示例为简化版协议):
{"tool_name": "read_file","params": {"path": "report.txt"}
}
tool_name
:指定操作类型(文件读取)params
:传递文件路径参数
- 请求发送至文件系统
MCP服务器
- 服务器执行本地文件读取(需通过权限验证)
- 返回文件内容至 AI 客户端
- 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
文件内容。
从服务器端观察完整流程:
-
文件系统MCP服务器持续监听客户端请求
-
接收客户端构建的MCP请求(简化示例):
{"tool_name": "read_file","params": {"path": "report.txt"} }
tool_name
:指定操作类型(文件读取)params
:传递文件路径参数
-
服务器解析请求,定位
report.txt
文件路径 -
在权限验证通过后执行本地文件读取
-
构建MCP响应报文:
{"status": "success","result": {"content": "这是report.txt的内容..."} }
status
:操作状态(成功/失败)result
:返回文件内容或其他执行结果
-
将响应报文返回客户端
-
客户端将文件内容传递给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_name
与path
参数有效性 - 通过Python原生文件接口执行读取操作
- 构建符合MCP规范的响应报文
实际生产级服务器还需实现网络通信
、多工具
管理、安全防护
等进阶功能
但上述示例清晰展现了MCP服务器的核心逻辑:请求解析→操作执行→响应反馈。
总结
MCP服务器是MCP生态系统
的动力核心。
作为专业化服务提供者,它接收客户端请求,通过对接工具与资源
执行具体操作
,最终返回结构化结果
。
通过部署不同MCP服务器,AI模型得以突破原始训练限制,获得文件管理
、在线服务交互
等扩展能力。
下一章我们将深入探讨工具与资源——服务器所对接的实际操作对象(如数据库、文件系统、Web API等)。
下一章:工具与资源