项目简介
Repo2LLM代码仓库上下文服务器是一个基于 Model Context Protocol (MCP) 的后端服务,旨在帮助大型语言模型 (LLM) 更好地理解和处理代码仓库。它能够智能地扫描代码仓库,提取代码结构和内容,并以LLM友好的格式提供给客户端。通过预置的工具,LLM可以方便地获取代码仓库的信息,从而提升在代码分析、代码生成等任务中的性能。
主要功能点
- 代码仓库扫描与转换: 支持本地仓库、GitHub 和 GitLab 仓库的代码扫描,并将代码仓库转换为结构化的文本格式,方便 LLM 理解。
- 多种仓库类型支持: 支持处理本地文件系统中的代码仓库,以及远程的 GitHub 和 GitLab 仓库。
- 工具化访问: 提供 'get_local_repo', 'get_github_repo', 'get_gitlab_repo' 等工具,允许 LLM 客户端通过 MCP 协议调用这些工具,获取特定仓库的代码内容。
- 上下文信息提取: 提取代码仓库的结构、文件内容以及 README 文档等重要信息,为 LLM 提供丰富的上下文。
- 易于集成: 作为一个 MCP 服务器,可以方便地与任何支持 MCP 协议的 LLM 客户端集成,为 LLM 应用提供代码仓库数据访问能力。
安装步骤
- 环境准备: 确保已安装 Python 环境。推荐使用 'uv' 包管理器,仓库 'README.md' 中提供了使用 'uv' 的安装示例。
- 下载仓库代码: 从 GitHub 克隆 'mcp-repo2llm' 仓库到本地。
- 安装依赖: 根据仓库 'README.md' 中的 'Installation' 部分,使用 'uv' 安装项目依赖。
- 配置Token (可选): 如果需要访问 GitHub 或 GitLab 私有仓库,请设置环境变量 'GITHUB_TOKEN' 和 'GITLAB_TOKEN'。
服务器配置
MCP 客户端需要配置以下 JSON 信息以连接到 Repo2LLM 代码仓库上下文服务器:
{ "serverName": "mcp-repo2llm-server", "command": "uv", "args": [ "run", "--with", "mcp[cli]", "--with-editable", "/path/to/mcp-repo2llm", // 请替换为 mcp-repo2llm 仓库在您本地的路径 "mcp", "run", "/path/to/mcp-repo2llm/mcp-repo2llm-server.py" // 请替换为 mcp-repo2llm-server.py 文件在您本地的路径 ], "env":{ "GITHUB_TOKEN":"your-github-token", // GitHub Token (可选,用于访问私有仓库) "GITLAB_TOKEN":"your-gitlab-token" // GitLab Token (可选,用于访问私有仓库) } }
配置参数说明:
- 'serverName': 服务器名称,设置为 '"mcp-repo2llm-server"'。
- 'command': 启动服务器的命令,这里使用 'uv'。
- 'args': 传递给 'uv run' 命令的参数列表:
- '--with mcp[cli]': 指定使用 'mcp[cli]' 插件。
- '--with-editable /path/to/mcp-repo2llm': 以可编辑模式引入本地仓库,'/path/to/mcp-repo2llm' 需要替换为实际的仓库路径。
- 'mcp run': 运行 MCP 服务器。
- '/path/to/mcp-repo2llm/mcp-repo2llm-server.py': 指定服务器启动脚本的路径,需要替换为实际路径。
- 'env': 环境变量配置,用于设置 GitHub 和 GitLab 的访问 Token,如果不需要访问私有仓库可以不配置。
注意: 请将 '/path/to/mcp-repo2llm' 替换为您本地 'mcp-repo2llm' 仓库的实际路径。
基本使用方法
- 启动服务器: MCP 客户端根据上述配置信息启动 'Repo2LLM代码仓库上下文服务器'。
- 调用工具: LLM 客户端可以通过 MCP 协议调用服务器提供的工具,例如:
- 调用 'get_github_repo' 工具并传入 GitHub 仓库 URL 和分支名,获取 GitHub 仓库的代码内容。
- 调用 'get_gitlab_repo' 工具并传入 GitLab 仓库 URL 和分支名,获取 GitLab 仓库的代码内容。
- 调用 'get_local_repo' 工具并传入本地仓库路径,获取本地仓库的代码内容。
- 获取代码上下文: 服务器将处理仓库并将代码内容以文本形式返回给 LLM 客户端,LLM 可以利用这些代码上下文信息进行后续的任务,如代码分析、代码补全等。
示例工具调用 (概念性,MCP客户端具体调用方式略有不同):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "get_github_repo", "arguments": { "repo_url": "https://github.com/example/repo", "branch": "main" } }, "id": "123" }
服务器会返回包含仓库代码内容的 JSON-RPC 响应。
信息
分类
开发者工具