github / github/copilot-cli

MCP SEP-986 tool name format specification not followed

Open
#1,879 0 comments 2 reactions 0 assignees View on GitHub
area:mcp
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

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](https://modelcontextprotocol.io/community/seps/986-specify-format-for-tool-names) 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_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.