I Renamed All 43 Tools in My MCP Server. Here's Why I Did It Now.
Charlotte has 111 stars. That's not a lot. But it's enough that a breaking change will annoy real people. I shipped one anyway. The naming problem When I started building Charlotte in February, I n...

Source: DEV Community
Charlotte has 111 stars. That's not a lot. But it's enough that a breaking change will annoy real people. I shipped one anyway. The naming problem When I started building Charlotte in February, I named every tool with a colon separator: charlotte:navigate, charlotte:observe, charlotte:click. It looked clean. It felt namespaced. Every tool call in every session used it. The problem: the MCP spec restricts tool names to [A-Za-z0-9_.-]. The colon character isn't in that set. It never was. I either didn't check or didn't care at the time. The MCP SDK was lenient about it until v1.26.0, which started emitting validation warnings on every tool registration. I had two options. Fix it now with 111 stars and a handful of active users. Or fix it later with more stars, more users, more documentation, more muscle memory, and more pain. We renamed all 43 tools from charlotte:xxx to charlotte_xxx in a single commit. Breaking change. Documented in the changelog. Migration note in the release. Here's