使用说明
集成Notion的GitHub PR分析器
一个模型上下文协议(MCP)服务器,用于获取GitHub拉取请求更改并在Notion中创建分析摘要。
辅导的: 请按照以下分步指南进行操作: DataCamp的MCP教程
特性
- 🔍 获取详细的GitHub拉取请求信息,包括:
- 文件更改(添加、删除、修改)
- PR元数据(标题、描述、作者、时间戳)
- 每个更改文件的不同补丁
- 📝 使用PR分析创建Notion页面
- 🔌 MCP服务器集成,实现无缝工具使用
先决条件
- Python 3.8或更高版本
- GitHub个人访问令牌
- 通知API密钥和页面ID
安装
- 克隆存储库:
git clone <repository-url>
cd mcp-starter
- 创建并激活Python虚拟环境:
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On macOS/Linux:
source venv/bin/activate
# On Windows:
# venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 创建一个
.env使用您的凭据在项目根目录中创建文件:
GITHUB_TOKEN=your_github_token_here
NOTION_API_KEY=your_notion_api_key_here
NOTION_PAGE_ID=your_notion_page_id_here
获取您的凭据
GitHub令牌:
- 转到GitHub设置→ 开发人员设置→ 个人访问令牌
- 使用生成新令牌
repo范围 - 将令牌复制到您的
.env文件
通知API密钥:
- 首选https://www.notion.so/my-integrations
- 创建新的集成并复制内部集成令牌
- 与集成共享您的Notion页面
通知页面ID:
- 在浏览器中打开您的Notion页面
- 从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进行调试
发展
贡献或修改:
- 确保您的
.env文件配置正确 - 在运行MCP服务器之前,使用直接使用方法测试更改
- 检查stderr输出以获取调试信息
安全说明
⚠️ 重要提示: 永远不要承诺你的 .env 文件到版本控制。它包含敏感凭据。
添加到您的 .gitignore:
.env
__pycache__/
*.pyc
许可证
MIT许可证
版权所有(c)2024
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。
-+--+-+-+-+-+
该项目在Unlicense下发布到公共领域。
您可以自由使用、修改、分发和使用本软件,用于任何目的,无论是商业还是非商业目的,不受任何限制或归因要求。
有关更多详细信息,请参阅 无许可证.
作者
Kiet Tran(Leo热爱编程)
支持
对于问题或疑问,请在存储库中打开问题。
