LCYT MCP 服务器实现集合
使用说明(简要)
- 项目简介
- 该仓库实现了用于 MCP 客户端的后端服务器,核心职责是通过 MCP 标准化接口提供资源、工具、以及提示模板等能力,并通过 JSON-RPC 与客户端通信。支持多种传输协议(stdio、SSE 等),并包含会话管理、能力声明和安全访问控件。
- 主要功能点
- 资源管理:对资源进行读取、列举、快照读取等操作,方便 LLM 客户端获取上下文信息。
- 工具注册与执行:定义一组工具(Tools),允许 MCP 客户端发起 start、send_caption、send_batch、sync_clock、get_status、stop 等动作及参数传递。
- 会话管理与鉴权:通过 JWT/API Key 机制进行会话注册、状态查询与结束,并实现基于会话的状态快照与同步。
- 多传输协议支持:提供 stdio 与 SSE 等传输实现,便于在不同运行环境中部署与集成。
- 测试覆盖:包含 Python 与 Node 的 MCP 服务实现及相应的单元测试,确保核心流程(start → send → stop 等)可用。
- 安装与运行步骤(示例)
- Python 版本(stdio 传输的 MCP 服务端)
- 安装依赖并运行服务端脚本,例如:
- 安装 Python 依赖(如有 requirements,按项目说明安装)
- 运行命令:python -m lcyt_mcp.server
- 安装依赖并运行服务端脚本,例如:
- Node 版本(SSE 传输的 MCP 服务端)
- 安装依赖后运行服务端脚本,例如:
- node packages/lcyt-mcp-sse/src/server.js
- 安装依赖后运行服务端脚本,例如:
- 注意:MCP 客户端需要的不是直接运行指令,而是包含 serverName、command 与 args 的配置,用于启动对应的 MCP 服务端进程(见下方配置示例)。
- Python 版本(stdio 传输的 MCP 服务端)
- 服务器配置(供 MCP 客户端使用的配置 JSON)
说明:MCP 客户端在启动连接时通常需要知道服务器启动指令,以便在宿主环境中托管/执行该 MCP 服务器。以下给出两种常见实现的示例配置(JSON),请根据实际部署选择一种或扩展成你的环境配置。
- Python stdio MCP 服务器(lcyt-mcp-stdio):
{
"serverName": "lcyt-mcp-stdio",
"command": "python",
"args": ["-m", "lcyt_mcp.server"]
}
说明:
- serverName: MCP 服务器的名称标识,便于在客户端侧区分不同服务器。
- command: 启动服务器的命令(这里使用 Python 解释器)。
- args: 启动参数,-m 指定作为模块运行,lcyt_mcp.server 即实现了 MCP 服务器的入口。
- Node SSE MCP 服务器(lcyt-mcp-sse):
{
"serverName": "lcyt-mcp-sse",
"command": "node",
"args": ["packages/lcyt-mcp-sse/src/server.js"]
}
说明:
- 该服务器使用 SSE 传输实现,客户端通过 MCP 协议与其通信。
- 说明
- 以上配置用于 MCP 客户端在启动时产生子进程来承载 MCP 服务端。具体的工作方式依赖客户端实现,示例中的 serverName、command、args 已尽可能贴合仓库提供的入口点与部署路径。
- Python stdio MCP 服务器(lcyt-mcp-stdio):
{
"serverName": "lcyt-mcp-stdio",
"command": "python",
"args": ["-m", "lcyt_mcp.server"]
}
说明:
- 基本使用方法
- 启动 MCP 服务器进程(按上面的配置选项选择对应实现)
- 使用 MCP 客户端通过 JSON-RPC 方式向服务器提交请求:
- 列出工具(list_tools),列出资源(list_resources),读取资源快照(read_resource),调用工具(call_tool)等
- 客户端会根据工具执行结果获取会话信息、同步偏移与状态等,并通过服务器端的会话管理进行持久化或清理
- 如需在生产环境中启用安全访问,参考仓库中对 Bearer Token、JWT、Admin Key 的实现进行集成