MCP server for Propel code review API - submit git diffs for AI-powered code review
Project description
MCP Server for Propel
Submit git diffs for AI-powered code review directly from Claude using the Propel code review platform.
Features
- Submit git diffs for async code review
- Automatically polls for results (reviews take 5-10 minutes)
- Retrieve detailed review comments with file paths, line numbers, and severity
- Quick status checks for in-progress reviews
Installation
uv pip install mcp-server-propel
Setup
-
Get your Propel API token from propelcode.ai/settings/api
- Your token needs
reviews:writescope - Note:
reviews:writeautomatically grantsreviews:read, so a single scope is sufficient
- Your token needs
-
Add to your Claude Desktop config:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"propel": {
"command": "mcp-server-propel",
"env": {
"PROPEL_API_TOKEN": "your-api-token-here"
}
}
}
}
- Restart Claude Desktop
Tools
submit_review
Submit a git diff for code review. Returns immediately with a review ID, then instructs Claude to call get_review to poll for results.
Parameters:
diff(required): Unified git diff outputrepository(required): Repository identifier (name, full name, or URL)base_commit(optional): Base commit SHA for additional context
get_review
Get review results. Polls the API automatically every 12 seconds until the review completes or fails (~12 min max).
Parameters:
review_id(required): The review job identifier
check_review_status
Quick, non-polling status check. Returns only status and timing info without waiting.
Parameters:
review_id(required): The review job identifier
Usage Examples
Submit a diff for review:
Review this diff on Propel for repository myorg/myrepo:
<paste git diff output>
Check review status:
Check the status of Propel review abc-123
Get full review results:
Get the results of Propel review abc-123
Getting a Git Diff
# Uncommitted changes
git diff
# Between branches
git diff main..feature-branch
# Last commit
git diff HEAD~1 HEAD
# Staged changes
git diff --cached
Local Development
# Install with dev dependencies
cd mcp-server-propel
uv sync --group dev
# Run tests
uv run pytest -v
# Test against local Propel API
export PROPEL_API_TOKEN="your-token"
export PROPEL_API_URL="http://localhost:6060"
uv run mcp-server-propel
For testing with MCP Inspector:
uv run mcp dev src/mcp_server_propel/server.py
For local Propel API, add to Claude Desktop config:
{
"mcpServers": {
"propel": {
"command": "mcp-server-propel",
"env": {
"PROPEL_API_TOKEN": "your-token",
"PROPEL_API_URL": "http://localhost:6060"
}
}
}
}
Troubleshooting
"PROPEL_API_TOKEN environment variable is required"
- Add the token to your Claude Desktop config
envsection - Restart Claude Desktop after updating the config
"Invalid authorization token" / "Authorization token has expired"
- Generate a new token at propelcode.ai/settings/api
- Ensure it has
reviews:writescope (reviews:writeautomatically includesreviews:read— you don't need both)
"Diff too large"
- Your diff exceeds the 1 MB size limit
- Try reviewing a smaller changeset (fewer files or commits)
"Repository not found"
- The repository must be connected to your Propel workspace
- Check the repository name matches what's configured in Propel
Support
- Documentation: https://docs.propelcode.ai
- Issues: https://github.com/propel/mcp-server-propel/issues
Project details
Release history Release notifications | RSS feed
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 mcp_server_propel-0.1.0.tar.gz.
File metadata
- Download URL: mcp_server_propel-0.1.0.tar.gz
- Upload date:
- Size: 64.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"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 |
a08cde4c81bb9cde6d4691bac97d8367aa5bb4a7ecde9ee2809a6b1872e28073
|
|
| MD5 |
cd8abef41d4a0592ff059beffb2e8621
|
|
| BLAKE2b-256 |
6eaecd0937a0c943135fd14d3bfab8cac5aa64c0ece6db70ff32eb3c570fec36
|
File details
Details for the file mcp_server_propel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_server_propel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"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 |
0a087ba12791933b6ec4550540596f108fb81356f75eabbfcee718ccef56dbd3
|
|
| MD5 |
5645073d9af1c0d691cb0d71c41d1b63
|
|
| BLAKE2b-256 |
259654894ae1ad6270296875154c7ab7d85e96a1102936c1c142dd9bb93f710d
|