Skip to content

Bug: Exposed tools contain a slash which breaks Claude Code (and maybe others?) #109

@bericp1

Description

@bericp1

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

Added using npx:

claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=REDACTED -- npx -y @circleci/mcp-server-circleci

The broadcasted tool names contain a slash though:

Which the Claude API does not like:

API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.80.custom.name: String should match pattern '^[a-zA-Z0-9_-]{1,128}$'"}}

https://arc.net/l/quote/lenpumof

The MCP Protocol doesn't seem to prescribe any limitations on tool names so maybe this a bug to file with Claude Code to normalize it's own tool names to send to the api and denormalize when they come back? I decided to post here though since I don't think it's likely Anthropic will change the way they handle tool names in Claude Code.

Minimum reproduction code

Just run claude (version 1.0.60 (Claude Code)) with @circleci/mcp-server-circleci version 0.11.3 and this happens

Steps to reproduce

  1. Setup with claude code per docs
  2. Run claude
  3. Make any request even one that would not normally invoke a circle ci tool

It didn't start giving me problems until just like an hour ago (00:00 UTC on Jul 25).

Expected behavior

Tool names do not include a slash and match '^[a-zA-Z0-9_-]{1,128}$'

MCP Server CircleCI version

0.11.3

Node.js version

22.16.0

CircleCI API Token

Yes

In which agents have you tested?

  • Cursor
  • Windsurf
  • Claude Code
  • Other

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions