JUHE API Marketplace
AdiXgit avatar
MCP Server

MCP: Local PR Description Generator

A lightweight tool that uses Mistral AI running locally to generate structured GitHub pull request descriptions from git diffs.

0
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

🧠 MCP:Local PR Description Generator using Mistral

This project is a lightweight tool that uses Mistral running locally via Ollama to generate clean, structured GitHub pull request (PR) descriptions from staged git diffs.

It wraps the model inside a FastAPI server and provides a Gradio web UI for quick generation.


📌 Features

  • 💻 Local-first: All processing is done on your machine using ollama (no cloud calls)
  • ⚙️ FastAPI backend: Exposes a simple HTTP endpoint to query Mistral
  • 🌐 Gradio frontend: Paste a git diff and get a structured PR description instantly
  • 🧩 Git-aware: Designed around generating summaries from actual diffs
  • 🪶 Lightweight and privacy-friendly

🚀 Getting Started

1. Install Dependencies

pip install -r requirements.txt

2. Start Ollama with Mistral

ollama run mistral

3. Run the FastAPI server

uvicorn app.server:app --reload

4. Start the Gradio UI

python -m frontend.gradio

✨ Example

Git Diff

diff --git a/src/utils.py b/src/utils.py
index 1a2b3c4..5d6ef7f 100644
--- a/src/utils.py
+++ b/src/utils.py
@@ def calculate_average(numbers):
-   return sum(numbers) / len(numbers)
+   if not numbers:
+       return 0
+   return sum(numbers) / len(numbers)

@@ def greet_user(name):
-   print("Hello", name)
+   print(f"Hello, {name} 👋")

Output PR Description

**Title:** [Utils] Handle empty list in average calculation and improved greeting

**Description:**

- Added edge case handling for `calculate_average()` to return 0 when given an empty list.
- Enhanced user experience by adding an emoji in the greeting function `greet_user()`.

These changes improve error handling and make output more user-friendly.

🧠 How it Works

  1. The Gradio UI sends the pasted diff to http://localhost:8000/mistral
  2. FastAPI receives it and forms a prompt for the local Mistral model
  3. Mistral responds with a human-readable PR title + description
  4. The Gradio UI displays the result

🔒 Privacy Note

This tool is completely local. Nothing is sent to the cloud — your code and git diffs stay on your machine.


🙌 Credits


📬 License

MIT License

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source