Skip to main content
Glama
README.md
# GitPilot MCP

An autonomous MCP-powered agent that automates GitHub contributions end-to-end, from issue analysis and code changes to pull requests, conflict resolution, and review updates.

---

## ๐Ÿš€ Overview

GitPilot MCP is an **Autonomous GitHub Contribution Agent** built using the **Model Context Protocol (MCP)**.
It helps developers and contributors automate the full open-source workflow:

* Forking repositories
* Analyzing issues
* Making code changes
* Running tests
* Creating pull requests
* Syncing with upstream changes
* Handling merge conflicts
* Updating PRs based on maintainer feedback

The agent is designed to be **minimal, safe, and extensible**, without overengineering.

---

## โœจ Key Features

* ๐Ÿ” Fork & clone GitHub repositories
* ๐ŸŒฟ Create and manage feature branches
* ๐Ÿ”„ Sync fork with upstream when new PRs are merged
* ๐Ÿง  Semantic code understanding using RAG
* โœ๏ธ Generate minimal, clean git diffs
* ๐Ÿงช Run tests and retry fixes automatically
* ๐Ÿ“ฆ Commit & push changes
* ๐Ÿ”€ Create pull requests programmatically
* ๐Ÿ› ๏ธ Update existing PRs after review feedback
* โš ๏ธ Detect merge conflicts before PR updates

---

## ๐Ÿง  Architecture (High Level)

```
Issue โ†’ Code Context (RAG) โ†’ Patch โ†’ Tests โ†’ Commit โ†’ PR
              โ†‘
      Sync / Review Feedback
```

The system follows **real-world open-source contribution practices**.

---

## ๐Ÿ“‚ Project Structure

```
mcp-github/
โ”‚
โ”œโ”€โ”€ main.py        # MCP server & tools
โ”œโ”€โ”€ rag.py         # RAG indexing and search
โ”œโ”€โ”€ config.py      # GitHub token & workspace
โ”œโ”€โ”€ .rag/          # Vector store (local)
โ””โ”€โ”€ README.md
```

## ๐Ÿงฉ Installation & Setup

Make sure you have the following installed:

- Python 3.10+
- Git
- Claude Desktop (latest version)
- Ollama (for embeddings)

### Step 1: Install uv

uv is used for dependency management and isolated execution.
```bash
pip install uv
```

### Step 2: Clone the Repository
```bash
git clone https://github.com/<your-username>/GitPilot-MCP.git
cd GitPilot-MCP
```

### Step 3: Initialize the Project (uv)

Initialize the project environment:
```bash
uv init
```

### Step 4: Install Dependencies

Add all required dependencies:
```bash
uv add fastmcp gitpython pygithub python-dotenv numpy faiss-cpu ollama
```

### Step 5: For MCP tools testing
```bash
uv run fastmcp dev main.py
```

---


## โš™๏ธ MCP Server Configuration

Use the following configuration to run the MCP server locally via **uv + fastmcp** in **Claude-desktop**:

paste this configuration in claudee-desktop-config file.

```json
{
  "mcpServers": {
    "GitPilot-MCP": {
      "command": "<PATH_TO_PYTHON>/Scripts/uv.exe",
      "args": [
        "run",
        "--project",
        "<PATH_TO_PROJECT_ROOT>",
        "--directory",
        "<PATH_TO_PROJECT_ROOT>",
        "fastmcp",
        "run",
        "main.py"
      ],
      "transport": "stdio"
    }
  }
}
```

---

## ๐Ÿ” Configuration

Create a `config.py` file:

```python
GITHUB_TOKEN = "your_github_personal_access_token"
WORKSPACE = "./workspace"
```

โš ๏ธ The token must have permissions to fork repositories and create pull requests.

---

## ๐Ÿ› ๏ธ Available MCP Tools

Some important tools exposed by the agent:

* `fork_repo`
* `clone_repo`
* `create_branch`
* `sync_with_upstream`
* `index_repo`
* `get_repo_context`
* `apply_patch`
* `run_tests`
* `retry_fix_with_tests`
* `commit_and_push`
* `create_pull_request`
* `check_for_conflicts`
* `update_pr_after_feedback`

Each tool is **single-responsibility and composable**.

---

## ๐Ÿงช Testing Workflow

1. Apply generated patch
2. Run tests (`pytest -q` by default)
3. Retry fixes automatically if tests fail
4. Stop immediately once tests pass

---

## ๐Ÿ”„ Handling Maintainer Feedback

When a maintainer requests changes:

* Generate a new patch
* Apply it to the same branch
* Commit & push

The existing PR updates automatically.
No new PRs are created.

---

## ๐Ÿงฉ Design Principles

* โœ… Minimal diffs
* โœ… Short, inline comments only when necessary
* โœ… No hard refresh or destructive git actions
* โœ… No silent failures
* โœ… Extensible for future improvements

---

## ๐Ÿšง Limitations

* Repository indexing may be limited on very large repos
* Conflict resolution is assisted, not fully automatic
* Designed for local / controlled environments (remote hardening can be added later)

---

## ๐Ÿ”ฎ Future Improvements

* Scoped repository indexing
* PR comment parsing
* CI status polling
* Refresh-token support
* Remote multi-user MCP deployment

---

## ๐Ÿ“œ License

MIT License (or as per your choice)

---

## ๐Ÿ™Œ Acknowledgements

Built using:

* FastMCP
* GitPython
* PyGitHub
* Ollama (for embeddings)
* Qdrant / FAISS (vector search)

## ๐Ÿ‘จโ€๐Ÿ’ป Author
Divyanshu Giri

TDQS

C2.5/5.0

Scored across 17 tools

Disambiguation4/5

Most tools have distinct purposes, though create_pull_request and update_pr_after_feedback lack descriptions, causing ambiguity. retry_fix_with_tests is a meta-tool but clear in its intent. Overall, minimal overlap.

Naming Consistency3/5

Tools predominantly use snake_case with verbs, but some are phrases like check_for_conflicts and retry_fix_with_tests, breaking consistency. get_index_storage_info uses 'info' instead of a standard noun.

Tool Count4/5

With 17 tools, it covers a wide range of git/GitHub operations. Some tools like get_index_storage_info are niche but still relevant. Slightly above ideal but reasonable.

Completeness3/5

Core workflows (clone, branch, commit, PR) are present, but missing operations like branch deletion, merge, and issue creation. Indexing feature adds unique functionality but gaps remain.

Maintenance

ActivityInactive
ResponsivenessNo issues