Skip to content

fix(core): normalize claude-code MCP tool names to bare endpoint - #178

Open
Rodriguespn wants to merge 1 commit into
mainfrom
fix/claude-code-mcp-tool-endpoint
Open

fix(core): normalize claude-code MCP tool names to bare endpoint#178
Rodriguespn wants to merge 1 commit into
mainfrom
fix/claude-code-mcp-tool-endpoint

Conversation

@Rodriguespn

@Rodriguespn Rodriguespn commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What

The claude-code parser recorded MCP tool calls' originalName (the scorer-facing endpoint) as Claude Code's raw mcp__<server>__<tool> (e.g. mcp__supabase-mcp__query_logs), while the Codex parser records the bare query_logs. So a scorer doing tc.endpoint === "query_logs" matches Codex but never matches claude-code — tool-selection evals false-fail on claude-code for behavior that actually happened.

This strips the mcp__<server>__ prefix in the claude-code parser so the endpoint is agent-agnostic, matching Codex. The raw name is still passed to normalizeToolName, so name stays tool_use.

Why it's in the parser

Each agent parser owns normalizing its own tool names; Codex already emits the bare MCP tool name, claude-code was the outlier.

Verification

  • End-to-end: investigate-logs-002-query-logs-tool-selection with claude-code-sonnet-5 against the mcp#333 preview build went FAIL (1/2) → PASS (2/2); Showing a false negative (agent was called the tool but the eval check ignored it)

Claude Code names MCP tools `mcp__<server>__<tool>`, so the parser recorded
`originalName` (the scorer-facing endpoint) as e.g.
`mcp__supabase-mcp__query_logs`, while the Codex parser records the bare
`query_logs`. A scorer doing `tc.endpoint === "query_logs"` therefore matches
Codex but silently never matches Claude Code, so tool-selection evals
false-fail on Claude Code for behavior that actually happened.

Strip the `mcp__<server>__` prefix in the claude-code parser so the endpoint
is agent-agnostic, consistent with Codex. The raw name is still passed to
`normalizeToolName`, so `name` stays `tool_use`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
evals-runner Error Error Aug 7, 2026 1:55pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
evals Ignored Ignored Aug 7, 2026 1:55pm

Request Review

@Rodriguespn
Rodriguespn requested a review from mattrossman August 7, 2026 13:58
@Rodriguespn
Rodriguespn marked this pull request as ready for review August 7, 2026 14:00
@Rodriguespn
Rodriguespn requested a review from a team August 7, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant