cocoindex-code

使用说明

  • 项目简介
    • 该仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务器,用于对代码仓库进行语义检索、索引管理以及向 LLM 客户端暴露工具(如 code search)等能力。服务器通过 JSON-RPC 形式与客户端通信,支持会话管理、资源与工具注册,以及基于向量检索的代码查询。
  • 主要功能点
    • MCP 服务端:实现标准的 MCP 服务端框架,能够处理 MCP 客户端的请求与响应。
    • 代码索引与查询:内置代码索引器(indexer)与查询接口,支持增量更新和多语言代码检索。
    • Embedding 与模型管理:支持本地 SentenceTransformer 模型或 LiteLLM 方案,具备设备选择与远程代码信任设置。
    • 搜索工具:提供“search”工具,客户端可以通过自然语言或代码片段进行语义检索,结果包含文件路径、语言、代码片段及分数。
    • 兼容多传输与会话:设计上可配合不同传输、会话和安全策略,适用于嵌入式后端场景。
  • 安装步骤
    1. 安装依赖:确保系统上已安装 Python 3.x。
    2. 安装包:pip install cocoindex-code
    3. 配置环境(可选):若使用本地 embedding 模型,请确保 torch/相关依赖可用,或者按需选择 LiteLLM 方案。
    4. 启动服务器(CLI 推出入口):默认以 serve 模式启动,命令示例可为 cocoindex-code 或 cocoindex-code serve。
  • 服务器配置(MCP 客户端需要的最小信息) 下面给出用于 MCP 客户端的配置示例描述,JSON 配置需要包含服务端的启动信息,以便客户端正确连接与调用工具。 { "server_name": "cocoindex-code", "command": ["cocoindex-code"], "args": ["serve"], "description": "CocoIndex Code MCP 服务端,提供代码库的语义检索与上下文服务" } 说明:
    • server_name:MCP 客户端在本地配置中使用的服务器名称,需与你在 MCP 客户端注册的一致。
    • command:启动 MCP 服务端的可执行命令(通常为项目的 CLI 工具名,如 cocoindex-code)。
    • args:启动参数,通常包括 "serve" 用于启动服务器;也可根据需要使用 "index" 来先建/更新索引等操作。
    • description:简要描述该 MCP 服务的用途与能力。
  • 基本使用方法
    • 启动后,客户端可以通过调用名为 search 的工具进行代码检索,传入自然语言查询或代码片段,服务器返回匹配的代码块及元信息。
    • 你可以先执行一次索引构建(如 index 命令),以生成初始的向量索引;随后进行增量更新以保持索引新鲜。
    • 服务器支持多语言代码检索及路径/语言过滤,便于在大规模代码库中精准定位。

服务器信息