MCP 协议(Model Context Protocol)

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

在当今人工智能快速发展的时代,大型语言模型(LLMs)已经成为许多应用程序的核心组件。然而,如何有效地为这些模型提供上下文信息,仍然是一个亟待解决的问题。为了解决这一挑战,MCP(Model Context Protocol,模型上下文协议)应运而生。MCP 是一种开放协议,它标准化了应用程序向 LLMs 提供上下文的方式,使得开发者能够更高效地构建智能应用。

在本系列教程中,我将带领大家逐步了解 MCP 的核心概念、工作原理以及实际应用。无论你是刚刚接触人工智能的初学者,还是已经有一定开发经验的开发者,这些内容都将为你提供清晰的指导。我们将从基础开始,逐步深入,最终通过开发一个简单的应用程序,展示如何利用 MCP 与 LLMs 进行交互。

开篇

对于初次接触 MCP 协议及相关开发的小伙伴,建议先阅读以下两篇内容:

MCP(Model Context Protocol)模型上下文协议 理论篇1 - 架构

MCP(Model Context Protocol)模型上下文协议 理论篇2 - 连接管理

这两篇文章主要介绍了 MCP 的基本架构以及基于 client-server 的连接方式。

然后,我们可以开始了解核心 MCP 概念,即 MCP 服务器可以提供三种主要类型的功能:

MCP(Model Context Protocol)模型上下文协议 理论篇3 - 核心元素

提高篇

在了解了基本架构和核心概念的相关组成元素之后,我们可以详细的了解这三种功能:

Tools:可由 LLM 调用的函数 MCP(Model Context Protocol)模型上下文协议 理论篇4 - 工具(Tools)

Resources:可供客户端读取的类文件数据(如 API 响应或文件内容) 

MCP(Model Context Protocol)模型上下文协议 理论篇5 - 资源(Resources)

Prompts:预先编写的模板,帮助用户完成特定任务 

MCP(Model Context Protocol)模型上下文协议 理论篇6 - 提示模板(Prompts)

在这一系列的学习过程中,为了帮助大家更好地理解核心内容,我特别补充了三篇番外篇,深入探讨了一些相关的附加概念:

MCP(Model Context Protocol)模型上下文协议 番外篇 JSON-RPC 2.0

MCP(Model Context Protocol)模型上下文协议 番外篇 Server-Sent Events (SSE)

MCP(Model Context Protocol)模型上下文协议 番外篇 Stdio

实战篇

最后,我开发了一款演示用的APP,旨在帮助大家深入理解并掌握如何从零开始构建一个简易的应用程序。通过这个实践项目,你将学会从基础概念到实际操作的完整流程,逐步上手APP开发:

MCP(Model Context Protocol) 模型上下文协议 实战篇

MCP 官方也提供了一系列基于此协议的现成 servers 供直接使用,因此我最后以 MCP servers 中的 filesystem 代码为例,解读一个典型的MCP server tool开发包含哪些内容:

MCP Servers 代码解读

总结

MCP(Model-Context-Protocol)提供了一种标准化的方式,使应用程序能够:

  1. 与语言模型共享上下文信息:通过MCP,应用程序可以向语言模型提供必要的上下文信息,以增强模型的理解和响应能力。

  2. 向AI系统暴露工具和能力:MCP允许应用程序将各种工具和功能暴露给AI系统,使其能够利用这些资源进行更复杂的任务处理。

  3. 构建可组合的集成和工作流:通过MCP,开发者可以轻松地将不同的组件和服务集成在一起,构建灵活且可扩展的工作流。

MCP协议采用JSON-RPC 2.0消息格式,用于在以下三者之间建立通信:

  • Hosts(主机):发起连接的LLM(大型语言模型)应用程序。

  • Clients(客户端):主机应用程序中的连接器,负责与服务器进行交互。

  • Servers(服务器):提供上下文信息和功能的服务。

MCP的设计灵感部分来源于语言服务器协议(Language Server Protocol, LSP),后者标准化了如何在开发工具生态系统中添加对编程语言的支持。类似地,MCP标准化了如何在AI应用生态系统中集成额外的上下文信息和工具,从而推动AI应用的互操作性和扩展性。

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

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

MCPModel Context Protocol)即模型上下文协议,是一种开放标准,用于在数据源和 AI 驱动的工具之间构建安全的双向连接,定义了应用程序和 AI 模型之间交换上下文信息的方式,目标是创建通用标准,让 AI 应用程序的开发和集成更简单统一[^1][^2]。 ### 架构组成 - **MCP 主机**:像 Claude Desktop、IDE 或 AI 工具这类希望通过 MCP 访问数据的程序[^4]。 - **MCP 客户端**:维护与服务器 1:1 连接的协议客户端,可构建连接到 MCP 服务器的 AI 应用程序[^1][^4]。 - **MCP 服务器**:通过标准化模型上下文协议公开特定功能的轻量级程序,开发人员可通过它公开自己的数据,还能安全访问本地数据源和连接远程服务[^1][^4]。 - **本地数据源**:计算机文件、数据库和服务等,可被 MCP 服务器安全访问[^4]。 - **远程服务**:可通过互联网(如 API)提供的外部系统,MCP 服务器能与之连接[^4]。 ### 原理 MCP 作为中间协议层,如同 USB - C 接口,使不同的数据源、工具和功能能够以一致的方式连接到 AI 模型,实现应用程序和 AI 模型之间上下文信息的交换[^2]。 ### 应用 在人工智能应用快速发展背景下,MCP 提供了一套完整的扩展机制,帮助开发者构建高性能、可扩展的 AI 应用。开发人员可利用 MCP 构建高性能的 AI 应用,通过 MCP 服务器公开数据,开发连接这些服务器的 AI 应用程序(MCP 客户端),实现数据源和 AI 驱动工具之间的安全双向连接[^1][^3]。 ### 代码示例 虽然没有直接针对 MCP 的通用代码示例,但一个简单示意的伪代码可以展示其连接逻辑: ```python # 模拟 MCP 服务器 class MCPServer: def __init__(self, local_data_source, remote_service): self.local_data_source = local_data_source self.remote_service = remote_service def expose_functionality(self): # 模拟公开特定功能 return "Functionality exposed" # 模拟 MCP 客户端 class MCPClient: def __init__(self, server): self.server = server def connect_to_server(self): # 模拟连接到服务器 return self.server.expose_functionality() # 模拟本地数据源和远程服务 local_data = "Local data" remote_api = "Remote API" # 创建 MCP 服务器 mcp_server = MCPServer(local_data, remote_api) # 创建 MCP 客户端并连接到服务器 mcp_client = MCPClient(mcp_server) result = mcp_client.connect_to_server() print(result) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值