Skip to content

MCP SEP-986 tool name format specification not followed #1879

@joshwatson

Description

@joshwatson

Describe the bug

When an MCP server is loaded with tool names that include . or /, the cli will respond to any prompt with something like:

✗ Execution failed: CAPIError: 400 tools.134.custom.name: String should match pattern '^[a-zA-Z0-9_-]{1,128}$'

SEP-986 states, however:

Tool names SHOULD be between 1 and 64 characters in length (inclusive).
Tool names are case-sensitive.
Allowed characters: uppercase and lowercase ASCII letters (A-Z, a-z), digits (0-9), underscore (_), dash (-), dot (.), and forward slash (/).
Tool names SHOULD NOT contain spaces, commas, or other special characters.
Tool names SHOULD be unique within their namespace.
Example valid tool names:

  • getUser
  • user-profile/update
  • DATA_EXPORT_v2
  • admin.tools.list

The error above incorrectly specifies the allowed characters, as well as the allowed length (128 v 64).

I tested this behavior by replacing all . with - the mcp server, and it works as expected after that.

Affected version

GitHub Copilot CLI 0.0.423

Steps to reproduce the behavior

  1. Install an MCP server that has . in tool names (ex. https://github.com/mrphrazer/binary-ninja-headless-mcp)
  2. Type any prompt, press enter

Expected behavior

The prompt should be responded to by the model, without an error message

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions