Skip to content

SPerekrestova/GitHub_MCP_Server

Repository files navigation

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

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

{
  "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:

# 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):

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):

{
  "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

About

Model Context Protocol server for GitHub API integration

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •