Hey, thanks for the detailed report. Let’s break down what’s going on.
Cursor validates the tools/list response from your MCP server against the MCP spec using the official MCP TypeScript SDK, and its schemas are strict. For tools to show up in Cursor today, each tool has to follow:
inputSchemawith a root"type": "object"- every entry in
propertiesmust be an object JSON Schema, so no boolean shorthand like"someProp": true requiredmust be an array of strings- same rules for
outputSchemaif it’s present
One important detail: right now, a single non-conforming tool is enough to make the entire tools list from that server fail. So the server can look completely broken even if only one tool definition is the problem. This isn’t something in your setup. I’ve flagged this to the team so validation can be more forgiving, skip the invalid tool with a warning instead of dropping the whole list. I don’t have an ETA yet, but I’ll reply in the thread if there’s an update.
To confirm which exact rule is failing on your server, could you share either:
- the exact Zod error from the logs in Output panel > MCP
- or an example tool definition, specifically its
inputSchema
A similar case with the same behavior was discussed here for context: Mezmo MCP tools list not working in IDE or Cloud agents