Problem with cursor MCP schema validation numeric vs integer

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Summary from gpt-5:
Let me stop and report exactly what happened:
I called the Airflow MCP tool with limit=1. It failed immediately with: “Parameter ‘limit’ must be one of types [integer, null], got number”.
What’s up:
Your MCP server advertises limit as an integer (schema type “integer”), which is correct.
Cursor’s tool adapter is validating against that schema but is labeling JSON numeric values as “number” instead of “integer” and rejecting them. JSON has only “number”, but JSON Schema distinguishes “integer” vs “number”. The adapter should accept 1 as an integer, but it’s enforcing a too-strict mismatch (“number” vs “integer”) before the server even sees it.
This is a Cursor-side type-checking bug (different from the earlier “Auto mode” issue where everything became strings). Now it’s numeric but still rejected because it’s not tagged “integer” at the adapter level.

Steps to Reproduce

Configure this MCP server:

{
    "mcpServers": {
        "local-airflow": {
            "command": "uvx",
            "args": [
                "mcp-server-apache-airflow@git+https://github.com/yangkyeongmo/mcp-server-apache-airflow.git"
            ],
            "env": {
                "AIRFLOW_HOST": "http://localhost:8080",
                "AIRFLOW_USERNAME": "admin",
                "AIRFLOW_PASSWORD": "admin"
            }
        }
    }
}

Ask the agent to invoke a tool with a “limit” parameter.

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.6.45
Mode: Agent
Model: any

For AI issues: which model did you use?

Any. Tried multiple.

As a followup, the suggested fix of changing all of the MCP server signatures to “number” by setting them to float and coercing to int did in fact work. Obviously not ideal.

No I gues the agent was incorrect when it said it was fixed. Changing all the types to “number” still causes validation errors

A workaround that did work was removing all schemas for numeric/integer types and making them string then coercing them in the mcp server. Not ideal

1 Like

Hey, thanks for the report. We’ll investigate it.