-
Couldn't load subscription status.
- Fork 2.9k
Description
Environment
- Server: GitHub Official MCP Server (
ghcr.io/github/github-mcp-server) - Deployment: Docker MCP Toolkit (via Docker Desktop)
- Authentication: OAuth (managed by Docker Desktop)
- Image SHA:
sha256:d19eec1424deda61e563a35585e6993631e5d6342a652f8b467512fcef363687
Issue
When using the GitHub Official MCP Server through Docker MCP Toolkit with OAuth authentication, all write operations fail with 403 errors despite successful authentication. Read operations work correctly.
Steps to Reproduce
- Install GitHub Official MCP Server via Docker MCP Toolkit in Docker Desktop
- Authenticate using Docker's OAuth flow (browser-based consent)
- Attempt to create an issue comment using
github_add_issue_comment
Result:
POST https://api.github.com/repos/{owner}/{repo}/issues/{issue_number}/comments: 403 Must have admin rights to Repository.
Expected Behavior
OAuth tokens should include necessary scopes for standard write operations (creating issues, adding comments, etc.) that don't require admin access.
Actual Behavior
- Read operations succeed (getting issues, listing repositories, reading comments)
- Write operations fail with 403 "Must have admin rights to Repository"
- Authentication is working (no 401 errors)
- The OAuth token appears to have read-only scopes
Comparison
Running the same GitHub Official MCP Server locally (npm install + OAuth) works correctly with full read/write access using the same API endpoints. This suggests the issue is specific to the OAuth token scopes provided through Docker's OAuth integration.
Docker MCP Toolkit Logs
- Running ghcr.io/github/github-mcp-server with [...] -e GITHUB_PERSONAL_ACCESS_TOKEN
> github-official: (46 tools) (2 prompts) (5 resourceTemplates)
Server starts successfully and tools are available, but write operations fail at runtime.
Additional Context
This only affects the official server distributed via ghcr.io/github/github-mcp-server, not the archived MCP server from modelcontextprotocol. The issue appears to be with how Docker Desktop's OAuth flow provisions tokens for this server - possibly requesting insufficient scopes or using a different OAuth application configuration than the standalone installation.