github / github/github-mcp-server
Tool name `get_file_contents` conflicts with Claude Desktop built-in tool
- 主要言語
- Go
- スター
- 33k
- フォーク
- 5k
- 平均マージ
- 2日 1時間
- マージ済み PR(30日)
- 52
説明
## 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_contents` in `tools/list` response (verified via direct stdio test)
- Other tools work fine (`get_me`, `get_commit`, `list_branches`, `pull_request_read`, etc.)
- `get_file_contents` specifically 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:
```go
Name: "get_file_contents",
```
to something like:
```go
Name: "fetch_repo_file",
```
or:
```go
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.
コントリビューションガイド
評価
この issue はまだ評価されていません。