详解 GitHub MCP 服务器认证失败错误的排查方法,包含 Personal Access Token 配置、权限设置和常见认证问题解决方案。
Unauthorized 或 Bad credentials 是 GitHub MCP 服务器最常见的认证错误 [^1]。这通常表示 Personal Access Token (PAT) 配置不正确或权限不足。
Authentication Failed: Bad credentials
Error: Unauthorized
解决方案: 确保使用正确的 Token 格式。GitHub 支持多种 Token 格式:
ghp_ - Personal Access Tokengithub_pat_ - Fine-grained Personal Access Tokengho_ - OAuth Token解决方案: 在 GitHub Settings > Developer settings > Personal access tokens 中检查 Token 权限,确保包含必要的仓库访问权限 [^2]。
解决方案: 检查 Token 是否已过期,如过期请重新生成 [^3]。
解决方案: 确保在 Claude Code 配置文件中正确设置:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
使用 curl 测试 Token:
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.github.com/user
[^1]: GitHub Issue #19281 - GitHub MCP Server 认证失败问题讨论
[^2]: GitHub Docs - Creating a personal access token - 官方 Token 创建指南
[^3]: DEV Community - GitHub Token Expiry Issue - Token 过期问题分析
使用 curl 命令测试:curl -H "Authorization: Bearer YOUR_TOKEN" https://api.github.com/user
至少需要 repo 权限用于仓库访问,如需操作 Issues 和 PR 需要额外权限。
Fine-grained Token 提供更精细的权限控制,Classic Token 权限更宽泛但兼容性更好。
第三方BOT
人类专家验证
官方机器人验证