[Bug]: MCP Server in Cursor prompts for optional params instead of calling the tool

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

MCP Server: Cursor prompts for optional params instead of calling the tool

I’m running a custom MCP server (@blindpay/mcp: https://www.npmjs.com/package/@blindpay/mcp) that makes instance_id optional when BLINDPAY_INSTANCE_ID is set, and auto-injects it at runtime.

Issue: In Cursor, the AI still asks me for instance_id instead of calling the tool without it.
Confirmed: Works as expected in MCP Inspector, so this looks Cursor-specific.

Expected (when BLINDPAY_INSTANCE_ID is set):

  • User: “list the receivers for my blindpay instance”
  • AI calls GetV1InstancesReceivers without instance_id
  • Server injects the env value and the request succeeds

Actual in Cursor:

  • AI asks for the instance ID rather than calling the tool

Actual in MCP Inspector (works):

  • Schema shows instance_id is not required
  • Tool call without it succeeds; server injects the ID and the request succeeds

Steps to Reproduce

  1. Create an MCP server that dynamically removes a parameter from the required array in tool schemas when an environment variable is set

  2. Configure the MCP server in ~/.cursor/mcp.json with the environment variable:
    {
    “mcpServers”: {
    “test-server”: {
    “command”: “node”,
    “args”: [“./server.js”],
    “env”: {
    “DEFAULT_PARAM”: “value123”
    }
    }
    }
    }3. Restart Cursor completely

  3. Ask the AI to use a tool that has an optional parameter (made optional via env var)

Expected: AI calls the tool without the optional parameter

Actual: AI prompts user for the parameter instead of calling the tool

  1. Test the same MCP server with MCP Inspector:
    DEFAULT_PARAM=“value123” mcp-inspector node ./server.jsResult: Works correctly - tool can be called without the parameter, and auto-injection fills it in

This proves the issue is specific to Cursor’s AI decision-making, not the MCP server implementation.

Screenshots / Screen Recordings

Operating System

MacOS

Current Cursor Version (Menu → About Cursor → Copy)

Version: 2.2.44
VSCode Version: 1.105.1
Commit: 20adc1003928b0f1b99305dbaf845656ff81f5d0
Date: 2025-12-24T21:41:47.598Z
Electron: 37.7.0
Chromium: 138.0.7204.251
Node.js: 22.20.0
V8: 13.8.258.32-electron.0
OS: Darwin arm64 25.2.0

For AI issues: which model did you use?

composer-1 and sonnet 4.5

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. I can see the screenshot from MCP Inspector. The GetV1InstancesPayouts tool runs successfully without instance_id (API response status: 200). That clearly confirms that:

  • The MCP server correctly handles the optional parameter
  • The schema correctly shows instance_id as not required
  • The issue is on Cursor’s side. The AI isn’t recognizing that the parameter is now optional

I’ll pass this to the team.

1 Like