Detailed guide on troubleshooting GitHub MCP server authentication failures, including Personal Access Token configuration, permission settings, and common authentication issues.
Unauthorized or Bad credentials are the most common authentication errors for GitHub MCP servers [^1]. This usually indicates incorrect Personal Access Token (PAT) configuration or insufficient permissions.
Authentication Failed: Bad credentials
Error: Unauthorized
Solution: Ensure using the correct token format. GitHub supports multiple token formats:
ghp_ - Personal Access Tokengithub_pat_ - Fine-grained Personal Access Tokengho_ - OAuth TokenSolution: Check token permissions in GitHub Settings > Developer settings > Personal access tokens, ensure necessary repository access permissions are included [^2].
Solution: Check if token has expired, regenerate if necessary [^3].
Solution: Ensure correct configuration in Claude Code config file:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
Test token using curl:
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.github.com/user
[^1]: GitHub Issue #19281 - GitHub MCP Server authentication failure discussion
[^2]: GitHub Docs - Creating a personal access token - Official token creation guide
[^3]: DEV Community - GitHub Token Expiry Issue - Token expiration analysis
Use curl command: curl -H "Authorization: Bearer YOUR_TOKEN" https://api.github.com/user
At minimum repo permission for repository access, additional permissions needed for Issues and PR operations.
Fine-grained Token provides more granular permission control, Classic Token has broader permissions but better compatibility.
第三方BOT
人类专家验证
官方机器人验证