github-mcp-pr / README.md
2abet's picture
Update README.md
14d6447 verified
---
title: MCP GitHub PR Opportunity Server
emoji: πŸ”
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.33.1
app_file: app.py
pinned: false
tag:
- mcp-server-track
- agent-demo-track
license: mit
---
# Video Link: https://drive.google.com/file/d/1FaYPqtoYWmUBsjiSFexPNyPARvFsixsh/view?usp=sharing
# MCP GitHub PR Opportunity Server
A Gradio-based MCP server that searches GitHub repositories for possible PR opportunities (open issues labeled 'good first issue' or 'help wanted'), supporting search by keyword and topic, with authentication.
## Features
- Search GitHub repos by keyword and topic
- Find open issues labeled 'good first issue' or 'help wanted'
- Supports GitHub authentication via token
- Gradio MCP server for LLM integration
- Interactive web interface
- Compatible with n8n workflows
## Local Setup
1. **Clone the repo and install dependencies:**
```bash
cd mcp_github_server
pip install -r requirements.txt
```
2. **Configure GitHub Token:**
- Set `GITHUB_TOKEN` in your environment variables, or
- Enter the token in the web interface
3. **Run the server:**
```bash
python app.py
```
## Hugging Face Spaces Deployment
1. **Create a new Space:**
- Go to [Hugging Face Spaces](https://huggingface.co/spaces)
- Click "Create new Space"
- Choose "Gradio" as the SDK
- Name your space (e.g., "mcp-github-pr-server")
2. **Configure Environment Variables:**
- In your Space settings, add `GITHUB_TOKEN` as a secret
- Set your GitHub token as the value
3. **Deploy:**
- Push your code to the Space repository
- Hugging Face will automatically build and deploy your application
## Using with MCP Clients
Add this configuration to your MCP client (e.g., Claude Desktop, Cursor, or Cline):
```json
{
"mcpServers": {
"github-pr-finder": {
"url": "https://akinyemiar-mcp-github-pr-server.hf.space/gradio_api/mcp/sse"
}
}
}
```
## Using with n8n
1. **Add HTTP Request Node:**
- In your n8n workflow, add an "HTTP Request" node
- Set the URL to your Hugging Face Space URL (e.g., `https://akinyemiar-mcp-github-pr-server.hf.space/api/predict`)
- Set Method to POST
- Add Headers:
```
Content-Type: application/json
```
- Set Body to JSON:
```json
{
"data": [
"fastapi",
"python",
5,
1,
"YOUR_GITHUB_TOKEN"
]
}
```
2. **Process Response:**
- The response will contain opportunities and total_count
- Use n8n's "Set" node to process the response data
- Add additional nodes to handle the opportunities as needed
## API Usage
The server provides both a web interface and an API endpoint at `/api/predict`. The API accepts POST requests with the following parameters:
```json
{
"data": [
"keyword", // optional
"topic", // optional
"per_page", // default: 5
"page", // default: 1
"token" // GitHub token
]
}
```
Response:
```json
{
"data": [
{
"opportunities": [
{
"repo_name": "tiangolo/fastapi",
"repo_url": "https://github.com/tiangolo/fastapi",
"issue_title": "Add more examples",
"issue_url": "https://github.com/tiangolo/fastapi/issues/1234",
"issue_labels": ["good first issue"],
"issue_body": "Please add more examples to the docs..."
}
],
"total_count": 123
}
]
}
```
## License
MIT