项目简介

这是一个基于 Model Context Protocol (MCP) 的服务器实现,专门用于分析 GitHub 仓库信息,提取 README、依赖文件(如 requirements.txt, environment.yml)等关键内容,并提供执行系统命令的工具。它旨在作为大型语言模型(LLM)应用的一个后端服务,帮助 LLM 理解 GitHub 项目的结构和安装要求,进而辅助或自动化软件项目的环境配置和安装过程。

主要功能点

  • 系统信息检测: 提供工具检测运行服务器的操作系统、Python 版本、包管理器(如 conda)是否可用等环境信息。
  • GitHub仓库分析: 根据提供的GitHub仓库URL,自动克隆仓库到本地,生成目录树结构,并读取关键安装相关文件(如 README、requirements.txt)的内容。
  • 命令执行工具: 提供一个工具,允许LLM或其他客户端在指定的本地目录中执行任意的命令行指令,并返回执行结果、标准输出、标准错误及退出码。
  • 错误分析辅助: 对命令执行产生的错误信息进行初步分析,识别常见的错误类型(如 ModuleNotFoundError, FileNotFoundError 等)。
  • Prompt模板: 内置一个用于GitHub仓库安装工作流的Prompt模板,LLM客户端可以使用此模板引导安装过程。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/Tesla-SHT/Github-Easy-Install-MCP-Server.git
    cd Github-Easy-Install-MCP-Server
  2. 安装依赖: 该服务器使用 Python 编写,并依赖 'fastmcp', 'gitpython', 'PyGithub' 等库。请确保您的系统安装了 Python 3.7+ 和 'pip'。
    pip install fastmcp gitpython PyGithub
    或者,您可以直接运行服务器代码,它会在启动时尝试检查依赖并可能提示安装。

服务器配置(供MCP客户端使用)

该MCP服务器设计为通过标准输入/输出(stdio)协议与客户端通信。要将此服务器集成到支持MCP的LLM客户端(如某些AI助手或IDE插件)中,您需要在客户端的MCP服务器配置中添加以下信息。客户端通常以JSON格式存储这些配置:

  • 'name': MCP服务器的名称,用于在客户端界面中标识,此处应配置为 'GitHub Easy Install'。
  • 'command': 启动服务器进程的命令。对于此项目,通常是运行Python模块的命令,例如 'python -m src.github_install_mcp.server'。请确保在客户端执行此命令时,当前工作目录正确或使用了完整的路径。
  • 'args': 传递给启动命令的额外参数列表。该服务器通过stdio通信时不需要额外参数,因此此处应配置为空列表 '[]'。
  • 'transport': 通信协议,此处应配置为 'stdio'。
  • 'description': 服务器的描述,用于客户端界面展示,此处应配置为 'Analyze GitHub repositories and automate installation process'。

请注意:具体的配置方式和界面取决于您使用的MCP客户端软件,请参考您客户端的文档。上述信息是配置该服务器所必需的关键内容。

基本使用方法

配置完成后,在支持该服务器的MCP客户端中:

  1. 激活服务器: 客户端会根据配置启动此MCP服务器进程。
  2. 与LLM交互: 您通过客户端向LLM提出需要安装某个GitHub仓库的请求。
  3. LLM调用工具: LLM(如果经过适当Prompt工程)会识别任务,并使用客户端提供的、由本MCP服务器注册的工具来获取信息。例如:
    • 调用 'detect_system_info' 工具获取您的系统环境。
    • 调用 'analyze_github_repo' 工具,提供GitHub仓库URL,服务器将克隆并分析仓库,返回目录结构和关键文件内容给LLM。
    • LLM分析这些信息(结合其自身知识)后,生成安装步骤或命令。
    • LLM可能调用 'execute_cli_command' 或 'clone_and_setup_repo' 工具,将生成的命令发送给服务器执行。服务器执行命令并将结果返回给LLM。
    • 如果执行失败,LLM可能会根据服务器返回的错误信息和错误分析,尝试生成修正后的命令,并再次调用执行工具。
  4. 查看结果: 客户端会向您展示LLM的回复,其中包含安装过程的说明、执行的命令及结果。

整个过程由LLM主导,通过调用此MCP服务器提供的工具,实现了对GitHub仓库安装过程的自动化分析和执行辅助。

信息

分类

开发者工具