Add your description here
Project description
🤖 PR Reviewer with Claude + Notion + GitHub
This project automates the analysis of Pull Requests (PRs) using a LLM (Claude) connected via the MCP (Model Context Protocol).
The system receives a PR link, generates a technical summary, and stores it in a Notion page as documentation.
🧩 Architecture
- The user sends a PR URL to Claude Desktop.
- Claude interprets the request and uses its internal MCP Client.
- The MCP Client sends a structured request to the local MCP Server.
- The MCP Server acts as an adapter to fetch PR data from GitHub and save a summary to Notion, using both platforms’ APIs.
- The retrieved and processed information is returned to Claude, who presents it to the user as a technical summary.
- Finally, the information is automatically saved to a Notion page.
✨ Features
- Automatically fetches PR changes via GitHub API.
- Uses Claude Desktop to generate a semantic analysis of the code.
- Creates a Notion entry with the generated summary.
- Modular and extensible: you can add more tools to the MCP server.
🚀 How It Works
- Claude Desktop detects the MCP server when it runs locally.
- The user sends a PR link to Claude.
- Claude calls the MCP server and uses:
fetch_pr→ fetches PR metadata and diffs from GitHub.create_notion_page→ saves the analysis in a new Notion page.
- The whole process is triggered from Claude's interface with no manual steps.
🔧 Requirements
- Python 3.10+
- Claude Desktop
- Account / API key from:
⚙️ Setup
-
Install
uv(lightweight Python environment manager):curl -LsSf https://astral.sh/uv/install.sh | sh
-
Initialize project:
uv init pr_reviewer cd pr_reviewer uv venv source .venv/bin/activate
-
Install dependencies:
uv add "mcp[cli]" requests python-dotenv notion-client
-
Create
.envfile:GITHUB_TOKEN=ghp_*************** NOTION_API_KEY=secret_************** NOTION_PAGE_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
-
Configure Claude Desktop with the
claude_desktop_config.jsonfile, e.g.:{ "mcpServers": { "pr-reviewer": { "command": "/path/to/python", "args": ["/path/to/pr_anayzer.py"], "cwd": "/path/to/project" } } }
🧪 Usage
-
Run the MCP server:
python pr_anayzer.py -
Open Claude Desktop and pass a PR link:
https://github.com/your_username/your_repo/pull/1 -
Claude will analyze the PR and ask whether to save the result in Notion.
📌 Possible Improvements
- Full automation using
n8nor GitHub Actions. - PR validation with custom rules.
- Integration with other tools like Slack or ClickUp.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_andy_aranda_pr_reviewer-0.1.1.tar.gz.
File metadata
- Download URL: iflow_mcp_andy_aranda_pr_reviewer-0.1.1.tar.gz
- Upload date:
- Size: 2.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98ef7bf358e351f09669c0ef7c47409316fb434a1c74afb3570433ef2763eec0
|
|
| MD5 |
5d744026a33dbedf6f3e7eba60f902d3
|
|
| BLAKE2b-256 |
99e8bcb67692df5456f413d130be2d9ece16b8282ab43266ced3d75f9a55fca1
|
File details
Details for the file iflow_mcp_andy_aranda_pr_reviewer-0.1.1-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_andy_aranda_pr_reviewer-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b381a081e1269890af5fe8215d4139e40da604169c1c5034cdbacc7a761d494
|
|
| MD5 |
a609d586331c229d14361a39f5624fd7
|
|
| BLAKE2b-256 |
22b5d3d5b5c73162186bfcfa7b889b4ed7a91f1660c88fc2e08931e5674ae357
|