Tool name separator "." breaks compatibility with Claude Desktop MCP client
I'm new to this module, and have been trying to get a very basic example up-and-running with Claude Desktop.
I am able to expose a tool (`tool_api.tool_belt_entity_list`), confirm it is exposed using `modelcontextprotocol/inspector`, connect to the MCP Server via Claude Desktop, but at that point in Claude Desktop I get the error:
`tools.24.FrontendRemoteMcpToolDefinition.name: String should match pattern '^[a-zA-Z0-9_-]{1,64}$'`
From this, it appears that Claude Desktop uses a stricter RegEx than the Anthropic API:
* Anthropic API: `^[a-zA-Z0-9_.-]{1,64}$` — dots and hyphens allowed
* Claude Desktop: `^[a-zA-Z0-9_]{1,64}$` — underscores only, no dots, no hyphens
In fact, the OpenAI API is similar - no dots allowed: `^[a-zA-Z0-9_-]+$`
I'm playing around with calling my MCP server from Copilot in VSCode and am seeing a similar `warning` as well although things seem to be working regardless:
`2026-06-06 13:42:57.487 [warning] Tool "tool_api.tool_belt_entity_list" is invalid. Tools names may only contain [a-z0-9_-]`
Perhaps the solution would be to modify the Tool ID used by this module to use a double-underscore instead of a `.` - for example, `tool_api__tool_belt_entity_list`
-mike
issue