GitHub PR分析工具

一款通过MCP服务器获取GitHub拉取请求变更并在Notion中创建分析摘要的工具。

  • by tuankiet1708
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 tuankiet1708/mcp-starter

使用说明

集成Notion的GitHub PR分析器

一个模型上下文协议(MCP)服务器,用于获取GitHub拉取请求更改并在Notion中创建分析摘要。

辅导的: 请按照以下分步指南进行操作: DataCamp的MCP教程

特性

  • 🔍 获取详细的GitHub拉取请求信息,包括:
    • 文件更改(添加、删除、修改)
    • PR元数据(标题、描述、作者、时间戳)
    • 每个更改文件的不同补丁
  • 📝 使用PR分析创建Notion页面
  • 🔌 MCP服务器集成,实现无缝工具使用

先决条件

  • Python 3.8或更高版本
  • GitHub个人访问令牌
  • 通知API密钥和页面ID

安装

  1. 克隆存储库:
git clone <repository-url>
cd mcp-starter
  1. 创建并激活Python虚拟环境:
# Create virtual environment
python -m venv venv

# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate

# On Windows:
# venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建一个 .env 使用您的凭据在项目根目录中创建文件:
GITHUB_TOKEN=your_github_token_here
NOTION_API_KEY=your_notion_api_key_here
NOTION_PAGE_ID=your_notion_page_id_here

获取您的凭据

GitHub令牌:

  1. 转到GitHub设置→ 开发人员设置→ 个人访问令牌
  2. 使用生成新令牌 repo 范围
  3. 将令牌复制到您的 .env 文件

通知API密钥:

  1. 首选https://www.notion.so/my-integrations
  2. 创建新的集成并复制内部集成令牌
  3. 与集成共享您的Notion页面

通知页面ID:

  1. 在浏览器中打开您的Notion页面
  2. 从URL(最后一个后面的部分)复制页面ID / 在 ?)

用法

运行MCP服务器

首先,确保您的虚拟环境已激活:

# On macOS/Linux:
source venv/bin/activate

# On Windows:
# venv\Scripts\activate

然后运行服务器:

python pr_analyzer.py

服务器公开了两个MCP工具:

1. fetch_pr

从GitHub获取拉取请求信息。

参数:

  • repo_owner (str):存储库所有者用户名
  • repo_name (str):存储库名称
  • pr_number (int):拉取请求号

退货:

  • PR元数据和详细的文件更改

2. create_notion_page

创建一个包含分析内容的Notion页面。

参数:

  • title (str):页面标题
  • content (str):页面内容

退货:

  • 成功或错误消息

直接使用(开发/测试)

您还可以使用 github_integration.py 模块直接:

from github_integration import fetch_pr_changes

# Fetch PR changes
pr_data = fetch_pr_changes('owner', 'repo', 123)
print(pr_data)

项目结构

mcp-starter/
├── github_integration.py  # GitHub API integration
├── pr_analyzer.py         # MCP server implementation
├── requirements.txt       # Project dependencies
├── .env                   # Environment variables (not in git)
└── README.md             # This file

依赖项

关键依赖关系包括:

  • mcp -模型上下文协议服务器
  • requests -GitHub API调用
  • notion-client -API集成理念
  • python-dotenv -环境变量管理
  • pydantic -数据验证
  • httpx -异步HTTP客户端

看 requirements.txt 查看完整列表。

错误处理

该应用程序包括全面的错误处理:

  • 捕获并记录API请求失败
  • 缺少凭据会触发相应的错误消息
  • 堆栈跟踪被打印到stderr进行调试

发展

贡献或修改:

  1. 确保您的 .env 文件配置正确
  2. 在运行MCP服务器之前,使用直接使用方法测试更改
  3. 检查stderr输出以获取调试信息

安全说明

⚠️ 重要提示: 永远不要承诺你的 .env 文件到版本控制。它包含敏感凭据。

添加到您的 .gitignore:

.env
__pycache__/
*.pyc

许可证

MIT许可证

版权所有(c)2024

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。

-+--+-+-+-+-+

该项目在Unlicense下发布到公共领域。

您可以自由使用、修改、分发和使用本软件,用于任何目的,无论是商业还是非商业目的,不受任何限制或归因要求。

有关更多详细信息,请参阅 无许可证.

作者

Kiet Tran(Leo热爱编程)

支持

对于问题或疑问,请在存储库中打开问题。