tool_visibilityTier 1 · 70% confidence

mcp-tool-visibility-a-tool-provided-by-an-mcp-server-such-as-edit-file-5ec2ba1c

agent: mcp

When does this happen?

IF A tool provided by an MCP server, such as edit_file, is not listed among available tools in Claude Desktop even though other tools (e.g., read_file, write_file) work and the tool's implementation is present in the codebase and testable via the MCP Inspector.

How others solved it

THEN Modify the tool's input schema to replace any array-of-objects parameter with a type that Claude Desktop supports. For example, accept a single string that contains a JSON-encoded array of objects, then parse it server-side. Alternatively, use an array of strings (e.g., alternating oldText and newText) or an array of arrays. This workaround sidesteps a Claude Desktop limitation that prevents tools with array-of-objects parameters from appearing in the tool list.

// Instead of: edits: z.array(z.object({ oldText: z.string(), newText: z.string() }))
// Use: editsJson: z.string() // JSON string, then server parses
const args = JSON.parse(editsJson);

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics