Issue ZOD Validation InputSchema

Hello,

We developed an MCP server that includes a tools with input schema. The issue is that Cursor (unlike any other AI Client), runs a ZOD validation before, and that is making our servers unusable.

As mentioned I checked in Claude, VS Code Copilot, Chat GPT Work/Codex, Antigravity,… All of them work well, but not sure why Cursor implements this kind of validation and if there are plans to remove?

Best regards,

Where does the bug appear (feature/product)?

  • Editor, Tab & Chat (autocomplete, Composer, in-editor agent)
  • Terminal & commands
  • Models, pricing & API keys (availability, Auto/Max, BYOK/Bedrock)
  • MCP & tools
  • Cloud Agents & Automations (cursor.com/agents, scheduled/event)
  • BugBot & Code Review
  • Cursor CLI
  • Cursor Mobile
  • Remote (SSH / Dev Containers / WSL)
  • Account, billing & login
  • Something else…

Describe the Bug
Runs a ZOD validation before, and that is making our MCP server unusable.


Steps to Reproduce
How can you reproduce this bug? We have a much better chance at fixing issues if we can reproduce them!

  1. Install any MCP server with input schema and nullable properties.
  2. Add server to Settings in Cursor App.
  3. Restart Cursor App and explore MCP log of the server.

Expected Behavior
What is meant to happen here that isn’t working correctly?

Running Zod Validation and rejecting certain mcp servers.


Screenshots / Screen Recordings
If applicable, attach images or videos (.jpg, .png, .gif, .mp4, .mov)


Operating System

  • Windows 10/11
  • MacOS
  • Linux

Version Information

  • For Cursor IDE: Menu → About Cursor → Copy
  • For Cursor CLI: Run agent about in your terminal
Version: 3.15.6 (user setup)
VS Code Extension API: 1.128.0
Commit: a1f686545fd0ce8917bbd2449f733551a9bce420
Date: 2026-08-06T01:41:03.876Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.291
OS: Windows_NT x64 10.0.19045

For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)

Default/Auto


For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…


Additional Information
Add any other context about the problem here.


Does this stop you from using Cursor?

  • Yes - Cursor is unusable
  • Sometimes - I can sometimes use Cursor
  • No - Cursor works, but with this issue

Hi there!

We detected that this may be a bug report, so we’ve moved your post to the Bug Reports category.

To help us investigate and fix this faster, could you edit your original post to include the details from the template below?

Bug Report Template - Click to expand

Where does the bug appear (feature/product)?

  • Editor, Tab & Chat (autocomplete, Composer, in-editor agent)
  • Terminal & commands
  • Models, pricing & API keys (availability, Auto/Max, BYOK/Bedrock)
  • MCP & tools
  • Cloud Agents & Automations (cursor.com/agents, scheduled/event)
  • BugBot & Code Review
  • Cursor CLI
  • Cursor Mobile
  • Remote (SSH / Dev Containers / WSL)
  • Account, billing & login
  • Something else…

Describe the Bug
A clear and concise description of what the bug is.


Steps to Reproduce
How can you reproduce this bug? We have a much better chance at fixing issues if we can reproduce them!


Expected Behavior
What is meant to happen here that isn’t working correctly?


Screenshots / Screen Recordings
If applicable, attach images or videos (.jpg, .png, .gif, .mp4, .mov)


Operating System

  • Windows 10/11
  • MacOS
  • Linux

Version Information

  • For Cursor IDE: Menu → About Cursor → Copy
  • For Cursor CLI: Run agent about in your terminal
IDE:
Version: 2.xx.x
VSCode Version: 1.105.1
Commit: ......

CLI:
CLI Version 2026.01.17-d239e66

For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)


For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…


Additional Information
Add any other context about the problem here.


Does this stop you from using Cursor?

  • Yes - Cursor is unusable
  • Sometimes - I can sometimes use Cursor
  • No - Cursor works, but with this issue

The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!

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:

  • inputSchema with a root "type": "object"
  • every entry in properties must be an object JSON Schema, so no boolean shorthand like "someProp": true
  • required must be an array of strings
  • same rules for outputSchema if 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