Octocode

项目简介

Octocode是一款智能代码索引器和语义搜索引擎,能够构建代码知识图谱,实现对代码库的深度理解和关系映射。它集成了基于Model Context Protocol (MCP)的服务器,实现了标准化的上下文信息服务,支持通过JSON-RPC协议与LLM客户端交互,提供代码及文档的语义搜索、工具调用、会话管理等功能。

主要功能点

  • 语义代码搜索:支持多查询输入,能理解自然语言描述的代码功能,返回相关代码片段。
  • 关系型知识图谱(GraphRAG):自动发现文件间关系,支持复杂架构查询及依赖分析。
  • 多语言支持:涵盖Rust、Python、JavaScript、TypeScript、Go、PHP、C++、Ruby等多种主流语言。
  • AI辅助功能:包括智能提交、代码审核、上下文记忆系统。
  • MCP服务器支持:内置MCP服务器,符合协议规范,支持工具注册和调用,且支持基于LSP的扩展。
  • 高效性能与灵活性:结合本地及云端模型优化,支持快速索引和查询。
  • 安全与隐私:支持本地模式,API密钥安全管理,不上传完整代码。

安装步骤

  1. 通过脚本安装(支持Linux/macOS/Windows):
    • 执行:'curl -fsSL https://raw.githubusercontent.com/Muvon/octocode/master/install.sh | sh'
  2. 也可从GitHub Releases下载对应平台的预编译版本。
  3. Rust环境用户可直接通过Cargo安装:
    • 'cargo install --git https://github.com/Muvon/octocode'

MCP服务器配置

MCP客户端配置示例如下,使用JSON形式描述:

{
  "server_name": "octocode-mcp",
  "command": "octocode",
  "args": ["mcp", "--path", "/your/project/path"],
  "description": "启动Octocode MCP服务器,服务指定代码库的上下文请求"
}
  • server_name:服务器标识名称,可自定义。
  • command:启动命令(通常为'octocode'二进制文件)。
  • args
    • '"mcp"':指定以MCP服务器模式启动。
    • '"--path"':后接项目路径,指定代码库根目录。
  • 其他可选参数:
    • '"--debug"' 开启调试日志。
    • '"--no-git"' 跳过Git集成。
    • '"--with-lsp"' 后面跟LSP服务器命令以启用语言服务器集成功能。
    • '"--bind"' 配置HTTP监听地址和端口。

基本使用方法

  1. 启动MCP服务器
    • 在项目根目录执行:
      octocode mcp --path /your/project/path
    • 或使用HTTP模式:
      octocode mcp --path /your/project/path --bind 0.0.0.0:12345
  2. MCP客户端连接服务
    • 配置客户端连接命令及参数(见上节配置示例)。
  3. 利用MCP工具调用
    • 发送JSON-RPC请求调用工具,如'semantic_search'进行代码搜索,'graphrag'查询代码关系,或启用LSP功能进行代码导航。
  4. 索引和同步
    • 使用'octocode index'命令对代码库进行索引。
    • 文件变化时,MCP服务器会自动监听并触发增量索引,确保上下文准确。
  5. 其他命令
    • 'octocode commit':集成智能AI辅助提交信息生成。
    • 'octocode review':自动代码审核。
    • 'octocode release':版本发布与变更日志生成。
    • 'octocode watch':持续监视文件变化,实现自动索引。

更多详细说明请阅读仓库内其他文档,如安装指南和MCP集成文档。

服务器信息