Skip to main content

MCP Server for Propel

Submit git diffs for AI-powered code review directly from your IDE or terminal 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
  • Works with Claude Desktop, Cursor, Claude Code, Codex, and Windsurf

Requirements

Installation

uvx runs the server in an isolated environment automatically — no virtual environment setup, no dependency conflicts.

# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh

No further installation steps needed. Configure your client to use uvx directly (see Setup below).

Alternative: Using pipx

pipx installs the server in its own isolated environment:

pipx install mcp-server-propel

Alternative: Using pip

Use a virtual environment to avoid conflicts with system packages:

python3 -m venv ~/.venvs/mcp-propel
source ~/.venvs/mcp-propel/bin/activate
pip install mcp-server-propel

Avoid installing with pip into your system Python. System-managed packages (like cffi) can cause install failures. A virtual environment, uvx, or pipx avoids this entirely.

Setup

Step 1: Get your API token

Get your Propel API token from Propel Settings. Your token needs reviews:write and reviews:read scopes.

Step 2: Configure your client

Choose the setup instructions for your tool:


Claude Desktop

Config file location:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Using uvx (recommended):

{
  "mcpServers": {
    "propel": {
      "command": "uvx",
      "args": ["mcp-server-propel"],
      "env": {
        "PROPEL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Using a direct install (pipx or pip):

{
  "mcpServers": {
    "propel": {
      "command": "mcp-server-propel",
      "env": {
        "PROPEL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Restart Claude Desktop after saving.


Cursor

Config file location:

  • Project-level: .cursor/mcp.json (in the project root)
  • Global: ~/.cursor/mcp.json

You can also add it via Cursor Settings > Developer > MCP Tools > Add Custom MCP.

{
  "mcpServers": {
    "propel": {
      "command": "uvx",
      "args": ["mcp-server-propel"],
      "env": {
        "PROPEL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Claude Code

Option A: CLI command (quickest)

claude mcp add --transport stdio \
  --env PROPEL_API_TOKEN=your-api-token-here \
  propel -- uvx mcp-server-propel

Add --scope project to share with your team, or --scope user to enable across all projects.

Option B: Project config file (.mcp.json in project root)

{
  "mcpServers": {
    "propel": {
      "command": "uvx",
      "args": ["mcp-server-propel"],
      "env": {
        "PROPEL_API_TOKEN": "${PROPEL_API_TOKEN}"
      }
    }
  }
}

With .mcp.json, you can use ${PROPEL_API_TOKEN} to reference your shell environment variable instead of hardcoding the token.


Codex CLI

Option A: CLI command

codex mcp add propel \
  --env PROPEL_API_TOKEN=your-api-token-here \
  -- uvx mcp-server-propel

Option B: Config file (~/.codex/config.toml or .codex/config.toml)

[mcp_servers.propel]
command = "uvx"
args = ["mcp-server-propel"]

[mcp_servers.propel.env]
PROPEL_API_TOKEN = "your-api-token-here"

Windsurf

Config file location:

  • macOS/Linux: ~/.codeium/windsurf/mcp_config.json
  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "propel": {
      "command": "uvx",
      "args": ["mcp-server-propel"],
      "env": {
        "PROPEL_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Tools

submit_review

Submit a git diff for code review. Returns immediately with a review ID, then instructs the AI to call get_review to poll for results.

Parameters:

  • diff (required): Unified git diff output
  • repository (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

Troubleshooting

"PROPEL_API_TOKEN environment variable is required"

  • Ensure the token is set in your client's MCP config env section
  • Restart your client after updating the config

"Invalid authorization token" / "Authorization token has expired"

  • Generate a new token at Propel Settings
  • Ensure it has reviews:write and reviews:read scopes

"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

Cannot uninstall cffi or similar dependency conflicts

  • This happens when installing with pip into system Python
  • Fix: use uvx, pipx, or install inside a virtual environment (see Installation above)

Cursor not detecting tools

  • Ensure you are on Cursor v2.4.21 or later
  • Check that your PROPEL_API_TOKEN is set correctly in the config

Support

Metadata

Release files for mcp-server-propel 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-propel 0.2.0
File Size Uploaded Provenance
mcp_server_propel-0.2.0.tar.gz 71.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-propel 0.2.0
File Interpreter ABI Platform
mcp_server_propel-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 86.8 kB

Release files / mcp_server_propel-0.2.0.tar.gz

Download URL mcp_server_propel-0.2.0.tar.gz
Size 71.9 kB
Tags Source
SHA-256 checksum
How to use checksums
44daaf44aec398f7e2475dbdb2d4812f3020b479d13f1060b8dcc8475e9e1ffb
BLAKE2b-256 checksum
How to use checksums
4ac625f89b6b24b1fbbedd439acae43724cebdb5e5c69afde3854d92dc55fb9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mcp_server_propel-0.2.0-py3-none-any.whl

Download URL mcp_server_propel-0.2.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
449210b49a0bbf5d8adb2767f178b113cdc82c398ea24aea08eec6dcfc1ffd3f
BLAKE2b-256 checksum
How to use checksums
f9374aafc52eec047500c22b17b99857d2527d024a6c7548976af52028b13b10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for mcp-server-propel 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page