Simple-CLI MCP 服务器集成与实现
使用说明(Markdown 格式)
-
项目简介
- 本仓库实现了一组基于 MCP(Model Context Protocol)的服务器端示例,聚焦于以标准化方式向 LLM 客户端提供资源、工具、以及可渲染的 Prompt 模板,帮助构建安全、可扩展的上下文服务框架。包含多种 MCP 服务器实现(如 simple_tools、crewai、jules、midjourney 等),以及底层的 MCP 客户端/服务通信与工具加载机制。
-
主要功能点
- MCP 服务器核心能力:托管和管理 Resources(用于数据访问)、注册和执行 Tools(外部功能调用)、定义/渲染 Prompts(与 LLM 的交互模式)。服务器通过传输通道(如 Stdio、WebSocket 等)与 MCP 客户端进行JSON-RPC 异步通信。
- 多种 MCP 服务器实现:覆盖从工具管理、持续上下文管理、对外部 API 的调用、到复杂协作场景的工作流服务器,旨在提供一个可扩展的后端框架用于 LLM 驱动的应用场景。
- 内存与向量化记忆:ContextManager 结合 Memory(sqlite-vec/SQLite 数据库)实现对历史目标、约束、最近变更的记忆与检索,提升对话上下文的一致性和可追溯性。
- 工具与技能的加载:Registry 自动从项目文件、技能目录、以及内置工具加载工具,确保 MCP 服务在不同工作空间中可以发现并暴露工具。
- 模块化设计:各 MCP 服务器实现解耦为独立模块,便于本地扩展、替换和并行开发。
-
安装步骤
- 安装依赖:在本地仓库根目录执行安装命令以获取必要的依赖(如 Node/TS 环境、依赖包等)。
- 构建与启动:将 TypeScript 源码编译成可执行 JS 后,逐个启动感兴趣的 MCP 服务器入口。例如 simple_tools、crewai、jules 等子服务器。具体入口脚本命名与路径请参考各服务器的 index.ts 文件。
- 传输适配:服务器通常通过 StdioServerTransport 进行对接,客户端需要相应的传输实现来连接与通信。
- 配置文件(客户端侧使用 MCP 服务器时需提供的 JSON 配置,服务端无需):
- 服务器配置示例(结构化描述,非代码):
- 名称:simple_tools
- 启动命令(command):node
- 参数(args):["path/to/src/mcp_servers/simple_tools/index.js"]
- 环境变量(env):可选,用于注入 API keys、Tokens 等
- 服务器配置示例(结构化描述,非代码):
- 注意:MCP 客户端需要的仅是启动命令与参数的配置信息,服务端的实现会暴露工具与能力供客户端调用。
-
服务器配置(示例描述,非代码)
- 配置文件采用 JSON 格式,包含以下字段(按服务器维度整理):
- name:服务器名称,唯一标识一个 MCP 服务器,例如 simple_tools、crewai、jules 等。
- command:启动服务器的可执行命令,例如 node。
- args:启动服务器时传入的参数数组,通常包含服务器入口脚本路径,例如 ["src/mcp_servers/simple_tools/index.js"]。
- env(可选):环境变量对象,用于注入 API KEY 等敏感信息。
- 备注:不同服务器实现的入口和参数可能略有差异,请结合实际运行环境与脚本路径配置。
- 配置文件采用 JSON 格式,包含以下字段(按服务器维度整理):
-
基本使用方法
- 连接阶段:MCP 客户端读取配置后,通过指定的启动命令和参数启动服务器进程,并建立与服务器的通信(通常通过标准输入/输出或 WebSocket 等传输方式)。
- 功能探索:通过客户端调用服务暴露的 Tools、查询/渲染 Prompts、管理 Resources、以及使用内置/自定义 Tools。
- 扩展能力:可以通过新增技能/工具到 skills 目录、扩展 ContextManager 的记忆能力、或者新增 MCP 服务器实现来增强系统能力。
-
关键词
- AI 协作、任务编排、上下文管理、工具执行、插件化
-
分类
- 6