Tool name `get_file_contents` conflicts with Claude Desktop built-in tool

Open Beginner friendly
#1,935 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
62/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
go
Domain
api

Research direction

Inspect pkg/github/repositories.go around line 625, where the get_file_contents tool is defined. Compare the tool name with the direct stdio tools/list response and verify that the renamed tool is exposed in Claude Desktop without affecting the other listed tools. Done means the replacement name resolves the collision while the repository content operation remains available.

Written by the indexing model from the issue text.

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_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:

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.
Dominant language
Go
Stars
33.1k
Forks
5k
Avg merge
2d 15h
Merged PRs (30d)
27

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/github-mcp-server

All issues in github/github-mcp-server

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.