Back to MCP directory
publicPublicdnsLocal runtime

mcp-starter

一个MCP服务器,用于获取GitHub拉取请求的变更信息并创建Notion分析摘要页面。

article

README

🚀 GitHub PR分析器与Notion集成

这是一个模型上下文协议(MCP)服务器,可获取GitHub拉取请求的变更信息,并在Notion中创建分析摘要。

教程:请按照DataCamp的MCP教程进行逐步操作。

✨ 主要特性

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

📦 安装指南

前提条件

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

安装步骤

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

# 激活虚拟环境
# 在macOS/Linux上:
source venv/bin/activate

# 在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 文件中

Notion API密钥

  1. 访问https://www.notion.so/my-integrations
  2. 创建一个新的集成,并复制内部集成令牌
  3. 将你的Notion页面共享给该集成

Notion页面ID

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

💻 使用示例

运行MCP服务器

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

# 在macOS/Linux上:
source venv/bin/activate

# 在Windows上:
# venv\Scripts\activate

然后运行服务器:

python pr_analyzer.py

服务器提供了两个MCP工具:

1. fetch_pr

从GitHub获取拉取请求信息。 参数

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

返回值

  • 拉取请求元数据和详细的文件变更信息

2. create_notion_page

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

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

返回值

  • 成功或错误消息

直接使用(开发/测试)

你也可以直接使用 github_integration.py 模块:

from github_integration import fetch_pr_changes

# 获取拉取请求变更信息
pr_data = fetch_pr_changes('owner', 'repo', 123)
print(pr_data)

🔧 技术细节

项目结构

mcp-starter/
├── github_integration.py  # GitHub API集成
├── pr_analyzer.py         # MCP服务器实现
├── requirements.txt       # 项目依赖项
├── .env                   # 环境变量(不在git中)
└── README.md             # 本文件

依赖项

主要依赖项包括:

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

完整列表请参考 requirements.txt

错误处理

该应用程序包含全面的错误处理机制:

  • 捕获并记录API请求失败信息
  • 缺少凭证时触发相应的错误消息
  • 将堆栈跟踪信息打印到标准错误输出,以便调试

开发

若要贡献代码或进行修改:

  1. 确保你的 .env 文件配置正确
  2. 在运行MCP服务器之前,使用直接使用方法测试变更
  3. 查看标准错误输出以获取调试信息

安全注意事项

⚠️ 重要提示

切勿将你的 .env 文件提交到版本控制中,因为它包含敏感凭证信息。

将以下内容添加到你的 .gitignore 文件中:

.env
__pycache__/
*.pyc

📄 许可证

本项目采用MIT许可证。

版权所有 (c) 2024

特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,允许其无限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做,但须遵守以下条件:

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

软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对因合同、侵权或其他方式引起的任何索赔、损害或其他责任负责,无论是在与软件或软件的使用或其他交易有关的任何行动中。


本项目根据Unlicense许可发布到公共领域。

你可以自由使用、修改、分发和利用本软件,用于任何目的,包括商业和非商业用途,无需任何限制或归属要求。

更多详情,请参阅Unlicense

作者

Kiet Tran (Leo Loves Coding)

支持

如有问题或疑问,请在仓库中创建一个issue。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client