Describe the Bug
When a Cursor window first connects to an MCP server, the mcps// directory under ~/.cursor/projects// is created with INSTRUCTIONS.md and SERVER_METADATA.json, but the tools/ subdirectory containing the per-tool JSON descriptor files is not created. This means agents following the documented workflow of reading tool schemas before calling MCP tools find no schemas to read.
Toggling the MCP server off and back on in Cursor Settings > MCP reliably fixes the issue – after the toggle, the tools/ directory appears with all descriptor files.
Steps to Reproduce
- Open a workspace that has an MCP server configured (in this case, a custom MCP server with 64 tools).
- Wait for the MCP server to connect (green status indicator in settings).
- Check the MCP descriptor directory:
ls ~/.cursor/projects/<workspace-slug>/mcps/<server-id>/ - Observe that only
INSTRUCTIONS.mdandSERVER_METADATA.jsonare present – notools/subdirectory. - Toggle the MCP server off and back on in Cursor Settings > MCP.
- Re-check the same directory.
- The
tools/subdirectory now exists with all 64.jsondescriptor files.
Expected Behavior
The tools/ directory with all tool descriptor JSON files should be written during the initial MCP server connection, at the same time as INSTRUCTIONS.md and SERVER_METADATA.json. Agents rely on these descriptors to discover tool parameter schemas before making MCP calls, per the system prompt guidance: “browse the MCP tool descriptors in the file system to understand what tools are available.”
Operating System
Windows 10/11
Version Information
Version: 2.6.21 (user setup)
VSCode Version: 1.105.1
Commit: fea2f546c979a0a4ad1deab23552a43568807590
Date: 2026-03-21T22:09:10.098Z
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.26100
Additional Information
- The MCP server in question exposes 64 tools via the FastMCP framework.
- A second Cursor workspace window connected to the same MCP server 3 days earlier does have the
tools/directory populated from its initial connection, suggesting this is a race condition rather than a deterministic failure. - Both
cursor-ide-browserand the custom MCP server were affected in the same session – neither had atools/directory until the toggle. - Timestamps confirm the metadata files and the (missing) tools directory share the same creation time after the toggle, suggesting they are written in the same operation – but the initial connect only wrote the metadata files.
- This may be a race condition where the MCP handshake completes and metadata is written before tool enumeration finishes, and the deferred tool-write step is dropped.
Does this stop you from using Cursor
No - Cursor works, but with this issue