GitHub项目管理服务

MCP GitHub Project Manager 是一个允许将GitHub私有仓库作为项目信息数据库交互的服务,支持AI代理和自动化工具读写管理项目文档和配置。

  • by jeandrorc
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jeandrorc/mcp-github-project-manager

使用说明

[!注意] 这是一个示例项目,如果没有完整的安全审查,不应该在生产中使用。

MCP GitHub项目经理

O MCP GitHub项目经理 是一个服务器 模型上下文协议(MCP) 它允许您与私有的 GitHub 存储库进行交互,就像它是一个项目信息数据库一样。它被设计为人工智能和自动化代理使用,直接在 GitHub 上阅读、编写和管理项目的文档、配置和其他重要数据。

该服务器将您的存储库转换为结构化的真相来源,允许自动化系统以可编程和安全的方式访问和修改信息。

主要功能

  • 读取和写入文件访问和修改存储库中的文件(Markdown,JSON,YAML等)。
  • 配置管理读取并更新文件 config.json 项目元数据中心。
  • 内容搜索: 搜索仓库文件中的文本 。
  • 目录结构: 是否递归列出文件夹内容。
  • 安全认证使用 GitHub 个人访问令牌 (PAT) 进行身份验证,以确保访问受到限制。
  • 原子操作所有写入操作都是作为 Git 中的提交进行的,提供完整的更改历史记录。

使用案例

  • 文档自动化保持项目文档(指南,教程,架构)始终是最新的。
  • 知识 管理集中架构决策(ADR),最佳实践指南和团队信息。
  • 设置同步在中央位置管理环境和项目设置。
  • 自动报告: 从存储在仓库中的数据生成项目状态报告。
  • 与 AI 代理集成允许 AI 代理访问项目上下文以回答问题或执行任务。

多项目架构

此 MCP 现在支持使用集中式内存存储库和单个安装管理多个项目。 命名空间.

如何运作

  1. 全局设置您可以设置一个单一的中央存储库,以存储所有文档。
  2. 本地设置在您的每个工作项目中,您创建一个文件 .mcp-config.json 请定义um namespace 这个项目的文件夹。
  3. 操作所有操作(读取、写入等)都会自动重定向到中央存储库中的正确文件夹。

📚 阅读更多: docs/NAMESPACE_ARCHITECTURE.md 新架构的完整指南。

结构示例

内存存储库(memoria-central):

memoria-central/
├── meu-app-react/
│   └── docs/
└── meu-servico-node/
    └── docs/

您的项目(meu-app-react):

meu-app-react/
├── .mcp-config.json  // -> { "namespace": "meu-app-react" }
└── src/

CLI: mcp-github

添加了一个新的命令行工具,以方便配置:

  • mcp-github init设置全局内存仓库。
  • mcp-github init-project: 在您的工程中创建本地配置文件 。
  • mcp-github config: 显示当前配置 。

开始

先决条件

  • Node.js版本 18 或更高
  • GitHub 仓库: 用作后端的私有仓库 。
  • **个人访问令牌(PAT)**GitHub 代币,拥有 GitHub 权限 repo 进入仓库。

🔑 立即创建您的令牌: 点击此处生成具有正确范围的令牌

📚 有关代币的更多详细信息,请参阅 docs/TOKEN_GENERATION.md

配置

  1. 克隆 MCP 服务器仓库( 此工程) :

    git clone <URL_DESTE_REPOSITORIO>
    cd mcp-github-project-manager
    
  2. 安装依赖关系 :

    npm install
    
  3. 设置环境变量 :

    创建文件 .env 在项目的根目录中,复制示例 .env.example:

    cp .env.example .env
    

    编辑文件 .env 您的信息:

    # GitHub Configuration
    GITHUB_TOKEN=ghp_SEU_TOKEN_DE_ACESSO_PESSOAL
    GITHUB_OWNER=seu_nome_de_usuario_ou_organizacao
    GITHUB_REPO=nome_do_seu_repositorio_de_projeto
    
    # MCP Server Configuration (opcional)
    MCP_PORT=3000
    MCP_HOST=localhost
    
  4. 编译o código TypeScript:

    npm run build
    
  5. 启动或MCP服务器:

    npm start
    

    服务器现在正在运行,并准备通过接收 MCP 请求 stdio.

可用工具

服务器展示了一组工具来与 GitHub 仓库交互。

工具 描述 参数
read_file 读取特定文件的内容。 path: string
write_file 写入或更新文件的内容。 path: string, content: string, message: string
create_file 在仓库中创建一个新文件。 path: string, content: string, message: string
delete_file 从仓库中删除一个文件。 path: string, message: string
list_files 在目录中列出文件和文件夹。 path: string, recursive: boolean (可选)
search_content 搜索文件中的文本字符串。 query: string, path: string (可选)
get_project_info 返回文件的内容 config.json. Nenhum
update_config 更新文件中的密钥/值对 config.json. key: string, value: any
init_project 通过分析一个存储库来初始化内存结构。 target_owner: string (可选), target_repo: string (可选)

使用范例

读取文件

命令 :

{
  "tool": "read_file",
  "arguments": {
    "path": "docs/ARCHITECTURE.md"
  }
}

预期结果: 文件内容 docs/ARCHITECTURE.md 就像一个文本字符串。

创建新标签

命令 :

{
  "tool": "create_file",
  "arguments": {
    "path": "guides/new-feature-workflow.md",
    "content": "# Fluxo de Trabalho para Novas Features\n\n1. Crie uma branch a partir da `main`.\n2. Desenvolva a feature.\n3. Abra um Pull Request.",
    "message": "docs: add new feature workflow guide"
  }
}

预期结果: 包含文件创建提交链接的成功消息 。

更新工程版本

命令 :

{
  "tool": "update_config",
  "arguments": {
    "key": "project.version",
    "value": "1.1.0"
  }
}

预期结果: 一条消息,确认设置已更新,并且 config.json 存储库将反映新版本。

使用启动工具(init_project)

要根据现有项目自动配置内存存储库,请使用 init_project.

命令 :

{
  "tool": "init_project",
  "arguments": {
    "target_owner": "nome_do_usuario_do_projeto",
    "target_repo": "nome_do_repositorio_do_projeto"
  }
}

预期结果: JSON 报告详细说明检测到的项目类型、技术以及自动创建的所有文档和配置文件的列表。

列出所有架构文档

命令 :

{
  "tool": "list_files",
  "arguments": {
    "path": "decisions/adr",
    "recursive": true
  }
}

预期结果: 目录内所有文件和文件夹的 JSON 列表 decisions/adr.

指南和资源

📚 完整文档

🎯 快速开始

  1. 初学者阅读 QUICKSTART.md 5分钟内设置
  2. 开发者: 查看 PROMPTS_GUIDE.md 学习如何使用您最喜爱的人工智能工具
  3. 积分师: 查看 集成_AI_TOOLS.md 使用 Claude Desktop、Copilot 或 Cursor 进行配置

项目仓库结构

为了充分利用此 MCP,我们建议以结构化的方式组织您的项目仓库。我们提供了一个示例指南 example-repo-structure.md 详细说明推荐的文件夹和文件结构。

安全

  • 令牌范围: 创建所需最小范围的个人访问令牌 (repo 对于私人存储库来说就足够了)。
  • 不要暴露令牌: 从不提交文件 .env 或者展示你的 GITHUB_TOKEN 公众。
  • 路径验证服务器没有阻止目录扫描的机制 (../).在受控环境中小心使用。

贡献

欢迎捐款!随意打开 问题 e 拉取请求 为了改善这个项目。

许可证

这个项目是根据许可证 Licença MIT.