GitHub MCP Server
by Jehan26
Verified
# MCP-Inspector-v0.6.0
# GitHub MCP Server
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with GitHub repositories, issues, and pull requests.
## Features
- **Repository Search**: Find GitHub repositories based on search queries
- **Issue Management**: Get, create, and comment on issues
- **Pull Request Handling**: View and manage pull requests
- **Repository Analysis**: Get statistics and insights about repositories
## Installation
### Prerequisites
- Python 3.8+
- GitHub API token
### Steps
1. Clone this repository:
```bash
git clone https://github.com/yourusername/github-mcp-server.git
cd github-mcp-server
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Set up your GitHub token as an environment variable:
```bash
export GITHUB_TOKEN=your_github_token_here
```
4. Run the server:
```bash
python server.py
```
The server will start running on `http://localhost:5000`.
## Usage
### Endpoints
The MCP server provides the following endpoints:
- **GET /mcp/discover**: Returns available operations and their parameters
- **POST /mcp/execute**: Executes operations based on provided parameters
### Example Requests
#### Discovery
```bash
curl -X GET http://localhost:5000/mcp/discover
```
#### Execute Repository Search
```bash
curl -X POST http://localhost:5000/mcp/execute \
-H "Content-Type: application/json" \
-d '{
"endpoint": "search_repositories",
"parameters": {
"query": "machine learning"
}
}'
```
#### Get Repository Issues
```bash
curl -X POST http://localhost:5000/mcp/execute \
-H "Content-Type: application/json" \
-d '{
"endpoint": "get_repo_issues",
"parameters": {
"owner": "openai",
"repo": "whisper"
}
}'
```
## Architecture
The server follows the Model Context Protocol specification to allow AI assistants to:
1. Discover available operations
2. Execute operations with appropriate parameters
3. Process and return results in a structured format
## Extending the Server
You can extend this server by:
1. Adding new endpoints in the `discover()` function
2. Implementing corresponding handler functions
3. Updating the routing in the `execute()` function
## Security Considerations
- The server uses an API token for authentication with GitHub
- Implement rate limiting to prevent abuse
- Add input validation for all parameters
- Consider implementing OAuth for more secure token management
## Demo
See the [demo video](https://example.com/demo-video) for a walkthrough of the server's capabilities.
## License
MIT License
## Contact
For questions or support, please open an issue on this repository.