Configure GitHub MCP server for Claude Desktop#4
Conversation
- Enhanced Claude Desktop integration section with autoapprove field - Added all four MCP tools to autoapprove list for seamless usage - Included config file locations for macOS, Windows, and Linux - Added detailed notes about tool names and configuration options - Updated both README.md and USAGE.md with consistent examples This allows Claude Desktop users to configure the GitHub MCP server similar to other MCP servers like knowledge-graph, with automatic approval of tool usage for a smoother experience.
## Docker Infrastructure - Added multi-stage Dockerfile with Python 3.10 Alpine base - Optimized for security with non-root user - Multi-platform support (linux/amd64, linux/arm64) - Minimal image size using Alpine Linux ## Files Added - `Dockerfile`: Multi-stage build for production-ready image - `.dockerignore`: Excludes unnecessary files from build context - `docker-compose.yml`: Local development and testing setup - `.github/workflows/docker-publish.yml`: Automated image publishing to GHCR ## Documentation Updates ### README.md - Added "Docker Deployment" section - Pre-built image usage instructions - Claude Desktop integration with Docker - Benefits of Docker deployment ### USAGE.md - Comprehensive Docker deployment guide - Quick start with pre-built images - Local build instructions - Docker Compose usage - Claude Desktop configuration examples (basic and with autoapprove) - Troubleshooting section for common Docker issues - Image details and specifications ## GitHub Actions Workflow - Publishes to GitHub Container Registry (ghcr.io) - Triggered on: push to main, version tags (v*.*.*), PRs, manual dispatch - Multi-architecture builds: amd64 and arm64 - Layer caching for faster builds - Semantic versioning support - Automatic 'latest' tag on main branch ## Usage Users can now run the server with: ```bash docker pull ghcr.io/sperekrestova/github-mcp-server:latest docker run -i --rm -e GITHUB_TOKEN=xxx ghcr.io/sperekrestova/github-mcp-server:latest ``` Or configure Claude Desktop with Docker instead of Python.
There was a problem hiding this comment.
Pull Request Overview
This pull request adds comprehensive Docker support for the GitHub MCP Server, enabling users to run the server without requiring a local Python installation. The changes focus on providing multiple deployment options (Docker, docker-compose, and traditional Python) with detailed documentation for Claude Desktop integration.
Key changes:
- Added multi-stage Dockerfile with Alpine Linux base for minimal image size (~50 MB) and non-root user security
- Created docker-compose configuration for local development and testing
- Added GitHub Actions workflow for automated multi-platform Docker image publishing to GHCR
- Enhanced documentation with Docker deployment instructions, troubleshooting guide, and multiple Claude Desktop integration examples
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| Dockerfile | Multi-stage build configuration using Python 3.10 Alpine with non-root user for security |
| docker-compose.yml | Local development configuration with environment variable support for GITHUB_TOKEN, GITHUB_API_BASE_URL, and LOG_LEVEL |
| .dockerignore | Comprehensive exclusion list for Python artifacts, virtual environments, documentation, and development files |
| .github/workflows/docker-publish.yml | CI/CD workflow for building and publishing multi-platform (amd64/arm64) Docker images to GitHub Container Registry |
| USAGE.md | Extensive Docker deployment documentation including Quick Start, Claude Desktop integration examples, benefits, and troubleshooting guide |
| README.md | Condensed Docker deployment section with Quick Start instructions and Claude Desktop integration for both Docker and Python methods |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ENV PYTHONUNBUFFERED=1 | ||
|
|
||
| # Run the MCP server | ||
| ENTRYPOINT ["python", "main.py"] |
There was a problem hiding this comment.
[nitpick] The ENTRYPOINT uses python but documentation consistently references python3. For consistency and clarity, consider using python3 in the ENTRYPOINT to match the documentation and make the Python version explicit, even though they point to the same binary in this Alpine image.
| ENTRYPOINT ["python", "main.py"] | |
| ENTRYPOINT ["python3", "main.py"] |
| } | ||
| ``` | ||
|
|
||
| #### Configuration with Auto-approve |
There was a problem hiding this comment.
[nitpick] The heading uses "Auto-approve" (with hyphen and capital A) but the JSON field is autoapprove (lowercase, no hyphen). For consistency and to avoid confusion, consider changing the heading to "Configuration with autoapprove" to match the actual field name used in the configuration.
| #### Configuration with Auto-approve | |
| #### Configuration with autoapprove |
No description provided.