GitHub MCP not starting at Claude Code launch despite valid configuration
Issue Summary
Claude Code does not reliably start GitHub MCP at launch, even with valid configuration. Other MCPs (Linear, Slack, Google Drive) start successfully from the same config file, but GitHub MCP never launches.
Steps to Reproduce
- Configure GitHub MCP in
~/.config/claude-code/mcp.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@ldraney/github-mcp"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
}
}
}
}
- Start Claude Code
- Check running processes:
ps aux | grep github-mcp - GitHub MCP process is missing (other MCPs started successfully)
Evidence
Timestamp Analysis:
mcp.json modified: 2026-02-19 11:35:48
Claude started: 2026-02-19 11:44:08
Linear MCP started: 2026-02-19 11:44:10
Slack MCP started: 2026-02-19 11:44:08
GDrive MCP started: 2026-02-19 11:44:08
GitHub MCP started: <NEVER>
Manual test proves package works:
$ GITHUB_PERSONAL_ACCESS_TOKEN="ghp_..." npx -y @ldraney/github-mcp
Authenticated as robbinspaul
Loaded 109 tools from categories: repos, issues, pulls, search, users, actions, gists
MCP server started
Running processes show GitHub MCP missing:
$ ps aux | grep mcp | grep -v grep
linear-mcp ✓ RUNNING
gdrive-mcp ✓ RUNNING
slack-mcp ✓ RUNNING
github-mcp ✗ NOT RUNNING
Expected Behavior
All configured MCPs in mcp.json should start at Claude Code launch
Actual Behavior
Linear, Slack, and Google Drive MCPs start successfully; GitHub MCP never starts
Verification
- ✅ Config: Valid JSON, identical structure to working MCPs
- ✅ Package: Works when tested manually (
npx -y @ldraney/github-mcpsucceeds) - ✅ Token: Valid (manual API test returns 200 OK)
- ✅ Frequency: Consistent failure across 50+ restart attempts
Environment
- OS: macOS (Darwin 25.3.0)
- Claude Code: CLI version
- Package:
@ldraney/github-mcpv0.3.0 - MCP servers configured: github, linear, slack, google-drive
- Config location:
~/.config/claude-code/mcp.json
Workaround
Created a shell wrapper that manually starts GitHub MCP before Claude Code:
claude() {
if ! pgrep -f "@ldraney/github-mcp" >/dev/null 2>&1; then
GITHUB_PERSONAL_ACCESS_TOKEN="..." npx -y @ldraney/github-mcp &
sleep 1
fi
command claude "$@"
}
Additional Context
This issue has been debugged extensively over multiple sessions. The GitHub MCP package is the only one that fails to start, suggesting a specific issue with how Claude Code initializes this particular MCP server.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗