Skip to content

Tool name get_file_contents conflicts with Claude Desktop built-in tool #1935

@Baggydawg

Description

@Baggydawg

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions