Skip to content

Docker MCP Toolkit OAuth integration returns 403 on write operations #1314

@dpearson2699

Description

@dpearson2699

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

  1. Install GitHub Official MCP Server via Docker MCP Toolkit in Docker Desktop
  2. Authenticate using Docker's OAuth flow (browser-based consent)
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions