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)。

服务器信息