-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
Summary
The tool get_file_contents is not exposed to Claude in Claude Desktop, despite the MCP server correctly returning it in the tools/list response. This appears to be a name collision with Claude Desktop's internal file-reading capability.
Environment
- Claude Desktop: Latest version (Feb 2026)
- github-mcp-server: Built from main branch
- Config:
GITHUB_READ_ONLY=true
Symptoms
- Server returns
get_file_contentsintools/listresponse (verified via direct stdio test) - Other tools work fine (
get_me,get_commit,list_branches,pull_request_read, etc.) get_file_contentsspecifically is not available to Claude in conversations- No errors in MCP logs - the tool is simply not exposed
Root Cause
Claude Desktop appears to have a built-in tool with the same or similar name (get_file_contents or read_file), which shadows/filters the MCP server's version.
Solution
Renaming the tool from get_file_contents to fetch_repo_file immediately resolves the issue. After rebuilding with the renamed tool, Claude Desktop correctly exposes it.
Suggested Fix
Rename the tool in pkg/github/repositories.go:625 from:
Name: "get_file_contents",to something like:
Name: "fetch_repo_file",or:
Name: "get_repository_content",This would be a breaking change for users relying on the current tool name, but it's necessary for Claude Desktop compatibility.
Additional Context
- Issue was debugged extensively, ruling out: completions capability bug, schema issues, read-only filtering, scope filtering
- The rename was the only change that fixed the issue
- Other MCP servers may have similar conflicts with generic tool names like
read_file,get_file, etc.