MCP简介和实现技术路线概述

部署运行你感兴趣的模型镜像

MCP简介和实现技术路线概述

1 MCP简介

MCP 起源于 2024 年 11 月 25 日 Anthropic 发布的文章:Introducing the Model Context Protocol

MCP(模型上下文协议)是一种用于将人工智能应用程序连接到外部系统的开源标准。

MCP (Model Context Protocol,模型上下文协议)定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型(一个中间协议层),就像 USB-C 让不同设备能够通过相同的接口连接一样。MCP 的目标是创建一个通用标准,使 AI 应用程序的开发和集成变得更加简单和统一。

借助 MCP,像 Claude 或 ChatGPT 这类人工智能应用程序能够连接到数据源(如本地文件、数据库)、工具(如搜索引擎、计算器)和工作流(如专用提示词),从而使它们能够获取关键信息并执行任务。

请添加图片描述

2 MCP的构成

核心组件

MCP 由三个核心组件构成:Host、Client 和 Server。

MCP Host:协调和管理一个或多个 MCP 客户端的人工智能应用程序

MCP Client:维持与 MCP 服务器的连接,并从 MCP 服务器获取上下文供 MCP 主机使用的组件

MCP Server:为 MCP 客户端提供上下文的程序

例如:Visual Studio Code 充当 MCP 主机。当 Visual Studio Code 与 MCP 服务器(如 Sentry MCP 服务器)建立连接时,Visual Studio Code 运行时会实例化一个 MCP 客户端对象,该对象维持与 Sentry MCP 服务器的连接。当 Visual Studio Code 随后连接到另一个 MCP 服务器(如本地文件系统服务器)时,Visual Studio Code 运行时会实例化另一个 MCP 客户端对象来维持此连接,因此 MCP 客户端与 MCP 服务器之间保持着一对一的关系。

请添加图片描述

MCP 服务器指的是提供上下文数据的程序,无论其运行在何处。MCP 服务器可以在本地或远程执行。例如,当 Claude 桌面版启动文件系统服务器时,该服务器在同一台机器上本地运行,因为它使用 STDIO 传输方式。这通常被称为 “本地” MCP 服务器。官方的 Sentry MCP 服务器运行在 Sentry 平台上,并使用可流式传输的 HTTP 传输方式。这通常被称为 “远程” MCP 服务器。

MCP的层次

MCP 由两个层级构成:

数据层:定义基于 JSON-RPC 的客户端 - 服务器通信协议,包括生命周期管理以及核心基础组件(如工具、资源、提示词和通知)。

传输层:定义实现客户端与服务器之间数据交换的通信机制和渠道,包括特定于传输方式的连接建立、消息帧处理和授权。

从概念上讲,数据层是内层,而传输层是外层。

数据层

数据层实现了基于 JSON-RPC 2.0 的交换协议,该协议定义了消息结构和语义。这一层包含:

生命周期管理:处理客户端与服务器之间的连接初始化、能力协商和连接终止

服务器功能:使服务器能够提供核心功能,包括供人工智能执行操作的工具、用于上下文数据的资源以及往返于客户端的交互模板提示词

客户端功能:使服务器能够请求客户端从主机大语言模型采样、获取用户输入以及向客户端记录消息

实用功能:支持附加功能,如用于实时更新的通知和用于长时间运行操作的进度跟踪

传输层

传输层负责管理客户端与服务器之间的通信渠道和身份验证。它处理 MCP 参与方之间的连接建立、消息帧处理和安全通信。

MCP 支持两种传输机制:

标准输入输出(Stdio)传输:使用标准输入 / 输出流在同一台机器上的本地进程之间进行直接进程通信,可提供最佳性能且无网络开销。

可流式 HTTP 传输:使用 HTTP POST 处理客户端到服务器的消息,并可选地使用服务器发送事件SSE(Server-Sent Events)实现流式传输功能。这种传输方式支持远程服务器通信,并支持标准 HTTP 身份验证方法,包括承载令牌(bearer tokens)、API 密钥和自定义标头。MCP 建议使用 OAuth 获取身份验证令牌。

传输层从协议层抽象出通信细节,使相同的 JSON-RPC 2.0 消息格式能够在所有传输机制中使用。

3 实现 MCP

使用SDK

官方提供支持Node.js、Python、Go、Kotlin、Swift、Java、C#、Ruby、Rust、PHP的SDK。

所有 SDK 都支持:

  • 创建可公开工具、资源和提示的 MCP 服务器
  • 构建可连接到任何 MCP 服务器的 MCP 客户端
  • 本地和远程传输协议
  • 符合类型安全的协议

使用fastMCP框架

fastMCP 是一款专为 “模型上下文协议” 设计的轻量级 Python 框架,它内置了 MCP 所需的 “数据格式校验”“权限管控”“传输适配” 等核心能力,无需像 FastAPI 那样手动搭建完整流程,可大幅减少重复编码,让开发者更聚焦于业务逻辑而非协议基础组件。

fastMCP 的核心特性与 MCP 需求的契合度:

  1. 原生上下文模型支持:提供 ContextModel 基类,可直接定义上下文结构,自动实现格式校验(替代 FastAPI + Pydantic 的手动校验逻辑);

  2. 内置权限引擎:基于 RBAC 模型封装了权限过滤功能,只需配置角色 - 字段映射,即可自动过滤无权访问的上下文数据;

  3. 传输层自适应:支持 HTTP/gRPC/MQ 等多种传输方式,无需手动编写不同协议的接口适配代码;

  4. 可追溯日志:自动记录上下文的生成、传输、校验全流程日志,便于问题排查(如上下文丢失、权限异常)。

相比官方 SDK,FastMCP的 API 设计更加简洁、开发效率更高,且具备更强的可扩展性,支持多种客户端/服务端传输模式(Stdio、SSE、内存)、资源模板机制,极大地降低了 MCP 服务器与客户端的开发门槛

4 使用 MCP Inspector 验证服务端功能

MCP Inspector 是专为 Model Context Protocol(MCP)服务端设计的交互式调试工具,提供了一个直观的界面,使得开发者能够快速地验证服务端的响应和状态。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值