MCP简单介绍
MCP是什么
模型上下文协议(Model Context Protocol, MCP)是一个开放的、标准化的协议,旨在解决大语言模型与外部工具、数据和服务交互时的混乱和不一致问题。
可以把 MCP 想象成 AI 应用的 USB-C 接口。在 MCP 出现之前,不同的 LLM 使用各自不同的方式(如 Function Call)来调用外部工具,而且各种工具的接口也五花八门,导致集成非常复杂。MCP 的目标就是提供一个统一的标准:
- 对上游(LLM 应用/客户端):提供标准的交互方式,无论后端连接了多少种不同的工具或数据源。
- 对下游(工具/数据源/服务器):提供标准的封装方式,让开发者可以更容易地将外部能力暴露给 LLM。
简单来说,MCP 就是一套规则,让 LLM 应用和外部工具能用一种大家都懂的“语言”进行交流和协作。
题外话,这东西怎么这么像串口啊
MCP架构
MCP 采用客户端-服务器架构:
- MCP 服务器 (Server):这是一个你构建的程序,它封装了特定的能力,比如访问文件、调用 API(如天气查询、网络搜索)、操作数据库等。服务器通过 MCP 协议将这些能力暴露出来。
- MCP 客户端 (Client):这是使用这些能力的应用程序。客户端通过 MCP 协议连接到一个或多个 MCP 服务器,并可以调用它们提供的能力。
服务器能提供什么?
MCP 服务器主要可以提供以下几种能力:
- 工具 (Tools):允许 LLM(在用户同意后)请求服务器执行某些动作,比如
get_weather(location)
或run_code(script)
。 - 资源 (Resources):允许客户端读取服务器提供的数据,比如文件的内容、API 的响应结果、数据库的模式信息等。
- 提示 (Prompts):提供预设的交互模板,帮助用户或 LLM 更方便地使用服务器的功能。
通信方式 (Transports)
客户端和服务器之间需要一种通信方式,MCP 定义了两种主要的传输协议:
- Stdio (标准输入/输出):主要用于本地场景,例如 IDE 插件连接到本地运行的 MCP 服务器。通信通过进程的标准输入和输出来进行。
- SSE (Server-Sent Events):主要用于网络/云端场景,例如连接到部署在云函数或服务器上的 MCP 服务。它基于 HTTP 长连接。
项目说明
MCP Gateway 是什么?
简单来说,MCP Gateway 就像是一格AI 工具的 USB-C Hub
它是一个基于 Python Starlette 构建的中央网关服务器。你可以让它连接到你所有其他的 MCP 服务器(无论它们是本地运行的 Stdio 工具,还是远程部署的 SSE 服务)。
然后,你的 AI 客户端只需要连接到 MCP Gateway 这一个地方,就能访问背后所有工具提供的能力!
MCP Gateway 特点
- 统一接入:客户端只需配置一个 Gateway 地址,告别繁琐的多服务器管理。
- 能力聚合:将来自不同服务器的工具(Tools)、资源(Resources)、提示(Prompts)无缝聚合,让你的 AI 能力瞬间翻倍!
- 灵活部署:支持连接 Stdio(本地)和 SSE(远程/本地)类型的后端 MCP 服务器。
项目还内置了 Bash、CMD、PowerShell、WMI,让你即刻拥有基础系统交互能力。
项目展示
项目地址
项目GitHub地址:https://github.com/trtyr/MCP-Gateway