Octocode
项目简介
Octocode是一款智能代码索引器和语义搜索引擎,能够构建代码知识图谱,实现对代码库的深度理解和关系映射。它集成了基于Model Context Protocol (MCP)的服务器,实现了标准化的上下文信息服务,支持通过JSON-RPC协议与LLM客户端交互,提供代码及文档的语义搜索、工具调用、会话管理等功能。
主要功能点
- 语义代码搜索:支持多查询输入,能理解自然语言描述的代码功能,返回相关代码片段。
- 关系型知识图谱(GraphRAG):自动发现文件间关系,支持复杂架构查询及依赖分析。
- 多语言支持:涵盖Rust、Python、JavaScript、TypeScript、Go、PHP、C++、Ruby等多种主流语言。
- AI辅助功能:包括智能提交、代码审核、上下文记忆系统。
- MCP服务器支持:内置MCP服务器,符合协议规范,支持工具注册和调用,且支持基于LSP的扩展。
- 高效性能与灵活性:结合本地及云端模型优化,支持快速索引和查询。
- 安全与隐私:支持本地模式,API密钥安全管理,不上传完整代码。
安装步骤
- 通过脚本安装(支持Linux/macOS/Windows):
- 执行:'curl -fsSL https://raw.githubusercontent.com/Muvon/octocode/master/install.sh | sh'
- 也可从GitHub Releases下载对应平台的预编译版本。
- 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监听地址和端口。
基本使用方法
- 启动MCP服务器:
- 在项目根目录执行:
octocode mcp --path /your/project/path - 或使用HTTP模式:
octocode mcp --path /your/project/path --bind 0.0.0.0:12345
- 在项目根目录执行:
- MCP客户端连接服务:
- 配置客户端连接命令及参数(见上节配置示例)。
- 利用MCP工具调用:
- 发送JSON-RPC请求调用工具,如'semantic_search'进行代码搜索,'graphrag'查询代码关系,或启用LSP功能进行代码导航。
- 索引和同步:
- 使用'octocode index'命令对代码库进行索引。
- 文件变化时,MCP服务器会自动监听并触发增量索引,确保上下文准确。
- 其他命令:
- 'octocode commit':集成智能AI辅助提交信息生成。
- 'octocode review':自动代码审核。
- 'octocode release':版本发布与变更日志生成。
- 'octocode watch':持续监视文件变化,实现自动索引。
更多详细说明请阅读仓库内其他文档,如安装指南和MCP集成文档。