GitHub MCP Server
README.md
---
title: GitHub MCP Server
emoji: 🐙
colorFrom: blue
colorTo: purple
sdk: docker
app_port: 7860
---
# GitHub MCP Server
Model Context Protocol server for accessing GitHub documentation via API.
## Features
- Fetch repositories from organizations with `/doc` folder detection
- Access documentation files from repositories
- Search across documentation
- Automatic base64 decoding
- MCP-compliant tools and resources
## Quick Start (Docker)
### 1. Pull the image
```bash
docker pull ghcr.io/sperekrestova/github-mcp-server:latest
```
### 2. Configure Claude Desktop
Add to `claude_desktop_config.json`:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**Linux**: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"github-docs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "GITHUB_TOKEN",
"ghcr.io/sperekrestova/github-mcp-server:latest"
],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
},
"autoapprove": [
"get_org_repos_tool",
"get_repo_docs_tool",
"get_file_content_tool",
"search_documentation_tool"
]
}
}
}
```
### 3. Get GitHub Token
1. Go to https://github.com/settings/tokens
2. Generate new token (classic)
3. Required scopes: `repo`, `read:org`, `read:user`
4. Add token to configuration above
### 4. Restart Claude Desktop
Ask Claude:
- "What documentation exists in the anthropics organization?"
- "Show me docs from the anthropic-sdk-python repository"
- "Search for streaming examples in anthropics repos"
## MCP Tools
- **get_org_repos(org)** - List repositories with /doc folder detection
- **get_repo_docs(org, repo)** - Get documentation files from repository
- **get_file_content(org, repo, path)** - Fetch file content with base64 decoding
- **search_documentation(org, query)** - Search documentation across repositories
## MCP Resources
- `documentation://{org}/{repo}` - List documentation files
- `content://{org}/{repo}/{path}` - Get file content
## Building from Source
**Local Docker build:**
```bash
# Enable BuildKit for faster builds
export DOCKER_BUILDKIT=1
# Build (~30 seconds with cache)
docker build -t github-mcp-server:local .
# Or use docker-compose
docker-compose build
```
**Python setup (for development):**
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Add GITHUB_TOKEN to .env
python main.py
```
**Claude Desktop config (Python):**
```json
{
"mcpServers": {
"github-docs": {
"command": "python3",
"args": ["/absolute/path/to/main.py"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
},
"autoapprove": ["get_org_repos_tool", "get_repo_docs_tool", "get_file_content_tool", "search_documentation_tool"]
}
}
}
```
## Environment Variables
- `GITHUB_TOKEN` - GitHub personal access token (required)
- `GITHUB_API_BASE_URL` - GitHub API URL (default: https://api.github.com)
- `LOG_LEVEL` - Logging level (default: INFO)
## Supported File Types
Markdown (`.md`), Mermaid (`.mmd`, `.mermaid`), SVG (`.svg`), OpenAPI (`.yml`, `.yaml`, `.json`), Postman collections (`.json`)
## License
MIT
This server cannot be deployed
Maintenance
ActivityNo data
ResponsivenessNo issues