lctx MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- lctx MCP 服务器是一个完整的后端实现,按照 MCP 标准向客户端提供上下文资源、工具执行能力以及提示模板的渲染与渲染配置,方便将本地代码库、文档等本地上下文暴露给大型语言模型进行编码辅助、文档查阅和工具调用。
-
主要功能点
- 资源管理与查询:支持本地源(如 Git 仓库、文档、文件、目录)的注册、查询和路径解析,确保 LLM 客户端可以读取本地上下文。
- 工具注册与执行:暴露 list_sources、ask_sources 等工具,允许 MCP 客户端查询可用源并向子代理(Subagent)发起请求。
- Prompt 模板渲染:配合 FilePromptTemplateLoader,根据模板渲染问题、源列表等信息,生成 prompt 文件供执行代理使用。
- 子代理执行支持:通过 SubagentRunner 在隔离临时目录内执行代理任务,确保主进程安全、可追踪。
- 多传输协议支持(示例实现使用 stdio):服务器通过 StdioServerTransport 与 MCP 客户端进行通信,后续可扩展为 SSE、WebSocket 等传输。
- 会话与状态管理:对源健康、版本、更新时间等信息进行跟踪与暴露,提升上下文可控性与可复现性。
-
安装步骤
- 安装与构建环境准备:确保已经安装 Bun,并具备 TypeScript/JavaScript 运行环境。
- 获取代码:从仓库获取源码(或克隆项目)。
- 安装依赖并编译:在仓库根目录执行相应的构建/安装命令,确保核心模块、MCP 服务端及相关工具能够编译通过。
- 启动服务器:根据项目提供的入口,启动 MCP 服务器。示例通常通过执行 mcp 模块的启动入口来启动。
-
服务器配置(供 MCP 客户端使用的启动信息,JSON 格式) { "serverName": "lctx", "command": ["bunx", "lctx", "mcp"], "args": [] } 说明:
- serverName: MCP 服务器对外标识名称,与客户端进行对接时的目标名称一致。
- command: 启动服务器的命令,通常为在项目中可执行的启动命令,例如 bunx lctx mcp。
- args: 启动时需要传递的参数数组,若无需额外参数可为空。
-
基本使用方法
- 以 MCP 客户端连接:在配置了上述信息后,客户端(如 Claude Code、Cursor、Gemini CLI 等 MCP 客户端)通过命令或 UI 指定服务器名称、启动命令以及参数,建立 JSON-RPC 通道。
- 使用服务器暴露的工具:通过 list_sources 查看已配置的本地源、通过 ask_sources 调用子代理获取对指定源的回答、通过 mcp 提供的 prompts 与工具实现灵活的对话和工具调用。
- 运行与维护:监控服务器日志、健康检查和源的最新状态,结合子代理的隔离执行确保安全可控的上下文提供。
-
基本注意事项
- MCP 客户端与服务器通过标准化的 JSON-RPC 进行通信,确保在同一运行环境下的兼容性与错误处理。
- 服务器应具备对多种传输协议的扩展能力,以适应不同的客户端环境(当前实现示例使用 stdio)。