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
- Install an MCP server that has
. in tool names (ex. https://github.com/mrphrazer/binary-ninja-headless-mcp)
- Type any prompt, press enter
Expected behavior
The prompt should be responded to by the model, without an error message
Additional context
No response
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:SEP-986 states, however:
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
.in tool names (ex. https://github.com/mrphrazer/binary-ninja-headless-mcp)Expected behavior
The prompt should be responded to by the model, without an error message
Additional context
No response