TinyMCP
TinyMCP是什么?
TinyMCP是一个轻量级的C++SDK,用于实现MCP服务器。
什么是MCP?
MCP是一个开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP提供了一个将AI模型连接到不同数据源和工具的标准化方法。
详情参考
TinyMCP支持的系统平台
- 视窗
- Linux
- MacOS
- 安卓
- 其他支持标准c++的平台。..
使用指南
请检查 维基 了解更多信息。
依赖项
MCP协议版本
代码结构简述
| 目录 | 简介 |
|---|---|
| Public | SDK公共目录,用于存储全局类型定义、全局常量资源、辅助类等。 |
| 消息 | MCP协议基本数据结构的定义和实现,主要包括遵循JSON-RPC 2.0协议的标准请求、响应和通知等协议数据的实现。 |
| 会话 | MCP协议交互会话的定义和实现,主要包括基于C/S架构的有状态会话的实现和完整MCP会话生命周期(初始化阶段、运行阶段和关闭阶段)的维护。 |
| 传输 | 基于C/S架构的各种端点之间的数据传输通道的定义,其中还包括默认stdio传输通道的实现。 |
| 任务 | 各种MCP任务的定义和实现,如初始化阶段的三次握手和能力协商任务,以及Prompts、Resources、Tools等主要请求的处理任务。耗时的任务是异步执行的,而普通任务是同步执行的。 |
| Entity | MCP各种协议实体类的定义,主要包括遵循Singleton模式的服务器基类。 |
功能支持简介
虽然并非MCP协议的所有功能都已实现,但实现自己的MCP服务器就足够了。
| 功能 | 备注 | 基本功能 | 是否支持 |
|---|---|---|---|
| 基础协议 | 核心JSON-RPC消息类型 | 是 | 是 |
| 生命周期管理 | 连接初始化、功能协商和会话控制 | 是 | 是 |
| 运输 | stdio | 是 | 是 |
| 取消 | 通过通知消息取消正在进行的请求。 | 是 | 是 |
| 进度 | 通过通知消息跟踪长时间运行的操作的进度。 | 是 | 是 |
| 工具 | 工具使模型能够与外部系统交互,例如查询数据库、调用API或执行计算。 | 是 | 是 |
| 资源 | 资源允许服务器共享为语言模型提供上下文的数据,如文件、数据库模式或特定于应用程序的信息。 | 是 | 是 |
| 分页 | 分页允许服务器以较小的块生成结果,而不是一次生成所有结果。 | 否 | 是 |
| Ping | Ping机制,允许任何一方验证其对方是否仍在响应,以及连接是否处于活动状态。 | 否 | 是 |
| 自定义通知 | JSON-RPC 2.0通知,由MCP服务器或客户端使用自定义方法名称发送,用于传输任意业务数据。 | 否 | 是 |
| 提示 | 提示允许服务器提供结构化消息和指令,以便与语言模型进行交互。 | 否 | 是 |
| 完成 | 服务器为提示和资源URI提供参数自动完成建议的标准化方法。 | 否 | 是 |
| 日志记录 | 服务器向客户端发送结构化日志消息的标准化方法。 | 否 | 是 |
| 传输 | HTTP与服务器发送事件(SSE) | 否 | 尚未 |
许可证
TinyMCP根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
