-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
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