Your MCP Server Connects but Shows No Tools
The connection turns green. The client says it's connected. And then the tool list is empty — the agent has nothing to call, the palette is blank, and nothing you wrote is reachable. This is one of the most disorienting MCP failures precisely because it doesn't look like a failure. A refused connection or a 401 at least tells you where to look. An empty tool list says everything worked, which is…
When an MCP client shows an empty tools list, it usually means the server responded with a valid tools/list response that has no tools to display. This situation can be confusing because it may appear as if everything worked, but in reality, it indicates a bug. The connection, initialize handshake, and client query were all successful, but the server either didn't declare its tools capability or sent an empty tool list.
The most common cause is the server not declaring the tools capability in its initialize result. This is misleading as the connection still succeeds, but the client may never ask for the tools list if it doesn't see the capability. Another frequent cause is tools registered conditionally, such as through environment variables, feature flags, or config files that weren't loaded in the deployed instance.
Another potential issue is an invalid inputSchema for a tool. Each tool's inputSchema must be a valid JSON Schema object. If a tool's schema is malformed, a strict client may filter it out instead of showing it as broken. Similarly, pagination problems can occur if the server returns an empty first page with a nextCursor, or if the client requests only one page and stops.
Protocol-version mismatches can also cause an empty tools list. The client and server negotiate a protocol revision during initialize. If the server answers a version with a tools/list result shape that differs from what the client expects, the client may render an empty list.
Auth scope can also cause empty tools lists. A valid token with the wrong scope completes the handshake and gets an empty tool list, which appears as "no tools" when it's actually "no tools for you."
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.