ScreenshotNeo

BlogHow-to

How to Fix Cursor MCP Showing No Tools or Prompts

Cursor MCP can connect without showing tools or prompts. Check config scope, transport, environment, enablement, logs, and CLI status.

By the ScreenshotNeo team1 October 20267 min read

Start with MCP Logs, then verify configuration scope, transport, environment variables, authentication, and both enablement switches. A server can appear configured while exposing no tools because Cursor cannot start it, cannot authenticate, has the wrong transport fields, has the server disabled, or has individual tools turned off in chat. Prompts are also server capabilities; not every MCP server implements them.

1. Confirm what is actually missing

Separate these cases before changing files:

  • Server is absent: Cursor did not load the entry, or the server is disabled.
  • Server is connected but tools are absent: the process connected but reported no tools, failed during capability discovery, or chat-level tool selection is filtering them.
  • Tools exist but prompts are absent: the server may not implement prompts. Cursor supports prompts, but a prompt list is not guaranteed for every server.
  • Tools appear in configuration but calls fail: inspect authentication, permissions, arguments, and server logs.

Cursor documents MCP tools and prompts, with local stdio, SSE, and Streamable HTTP connection methods. The connection method determines which configuration fields and environment handling are valid. See the Cursor MCP documentation.

2. Check the configuration file and scope

Cursor reads project configuration from .cursor/mcp.json and global configuration from ~/.cursor/mcp.json. Project configuration takes priority when both files define the same server name.

Project configuration checklist

  1. Open the project folder you believe Cursor is using.
  2. Confirm the file is exactly .cursor/mcp.json, including the leading dot and directory name.
  3. Validate the JSON syntax. A trailing comma or an unescaped quote prevents loading.
  4. Check that the server is under the expected top-level server object.
  5. Look for a duplicate server name in ~/.cursor/mcp.json; the project entry may be overriding it.
  6. Save the file and restart Cursor.

Minimal stdio example

{
  "mcpServers": {
    "example-local": {
      "command": "node",
      "args": ["/absolute/path/to/server.js"],
      "env": {
        "EXAMPLE_TOKEN": "${EXAMPLE_TOKEN}"
      }
    }
  }
}

Use an absolute executable or script path while diagnosing. Relative paths depend on Cursor’s working directory and commonly fail silently until you inspect MCP Logs.

3. Match the transport to the fields you use

Do not combine stdio and remote-server settings. A local stdio server starts a process with command and args. A remote SSE or Streamable HTTP server uses a url and, when required, authentication headers.

Remote HTTP or SSE example

{
  "mcpServers": {
    "example-remote": {
      "url": "https://your-server.example/mcp",
      "headers": {
        "Authorization": "Bearer ${MCP_TOKEN}"
      }
    }
  }
}

Use the endpoint and authorization scheme supplied by your server. Cursor resolves variables in fields such as command, args, env, url, and headers.

The envFile trap

Cursor documents envFile for stdio servers only. Putting a remote HTTP or SSE server’s environment file in envFile will not provide those values to the remote request. For remote servers, use environment variables or configuration interpolation in the URL and headers.

4. Verify environment variables and credentials

A server may start but expose no capabilities when a required token is missing. Check the same environment that Cursor can see, not only the shell where you tested the command.

# macOS or Linux: verify a variable exists without printing its value
if [ -n "$MCP_TOKEN" ]; then echo "MCP_TOKEN is set"; else echo "MCP_TOKEN is missing"; fi

# Test a local command independently
node /absolute/path/to/server.js

Shell profile changes are not automatically visible to an already running desktop app. After changing ~/.zshrc, ~/.bashrc, a secret manager, or a system environment setting, fully quit and restart Cursor. In MCP Logs, distinguish an authentication error (401/403 or missing token) from a process error (command not found, permission denied, or immediate exit).

5. Enable the server and its individual tools

Open Customize > MCPs and confirm the server toggle is on. Disabled servers do not load or appear in chat. Then open the tool list at the top of chat and make sure the specific tools are enabled. These are separate controls: a connected server can still have all of its tools deselected for the current chat.

6. Read MCP Logs before guessing

Open the Output panel and select MCP Logs. Look for:

  • startup messages showing the command and arguments;
  • connection or handshake failures;
  • authentication and authorization responses;
  • JSON parsing or protocol errors;
  • server crashes, timeouts, and restarts;
  • the capability response that lists tools or prompts.

Fix the first failure in the sequence. A later “no tools” message is often only a consequence of an earlier startup or authentication error.

7. Restart or re-add the integration

After correcting JSON, environment variables, credentials, or an executable path, save the file and restart Cursor. If the entry remains stale, remove the server from Customize > MCPs, restart, and add it again. This forces Cursor to create a fresh connection and capability discovery request.

8. Cross-check with the Cursor CLI

The CLI can show whether Cursor knows about the server and what the server reports:

# List configured servers and their status
agent mcp list

# Replace IDENTIFIER with the server identifier shown above
agent mcp list-tools IDENTIFIER

# If the server requires an interactive login
a gent mcp login IDENTIFIER

# Enable a disabled server
a gent mcp enable IDENTIFIER

Remove the accidental space before gent if your shell copied the wrapped example; the commands are agent mcp login and agent mcp enable. The CLI’s list-tools output tells you whether the server itself exposes tools. If it lists tools but chat does not, inspect chat-level toggles and the active project.

9. Common errors and fixes

Symptom or log message Likely cause Fix
Server does not appear Wrong file path, invalid JSON, or disabled server Check project/global scope, validate JSON, enable it, then restart Cursor.
Command not found Cursor cannot resolve the executable from its environment Use an absolute path or make the executable available to Cursor’s environment.
Permission denied Script is not executable or directory permissions block it Fix file permissions and use the correct interpreter in command.
Process exits immediately Missing argument, dependency, or required environment variable Run the command manually with the same arguments and inspect the first stderr error.
401 or 403 Missing, expired, or incorrectly formatted credentials Update the token/header, confirm the required prefix, restart, and retry.
Remote server never connects Wrong URL, unsupported transport, DNS/TLS failure, or firewall Verify the documented endpoint and transport, then inspect MCP Logs for the network error.
Connected server has no tools Server capability discovery failed, server exposes none, or tools are filtered Run agent mcp list-tools IDENTIFIER, inspect logs, and re-enable tools in chat.
Tools exist but prompts do not The server does not implement prompts Confirm the server’s advertised capabilities; do not assume every server provides prompts.
Works in terminal but not Cursor Different working directory or environment Use absolute paths, explicit env values, and restart Cursor after profile changes.

10. Team and enterprise policy checks

For managed teams, a server can be correctly configured locally and still be blocked by organization policy. Cursor supports team MCP distribution, but adding a server to a team marketplace does not automatically install or enable it for every developer. Enterprise allowlists can also restrict which servers or tools may run. Ask the administrator to verify distribution, approval, and tool policy for the affected workspace.

11. Reliability and performance considerations

  • Local stdio: startup time depends on process launch and dependency loading. Keep the server process stable, pin dependencies, and avoid expensive initialization before the handshake.
  • Remote HTTP/SSE: availability depends on DNS, TLS, network access, authentication expiry, and server health. Use a stable endpoint and monitor MCP Logs after deployment changes.
  • Tool count: expose only the tools a client needs. A smaller capability list is easier to inspect and reduces chat tool-selection mistakes.
  • Secrets: interpolate environment variables rather than committing tokens to project files. Rotate credentials when a server reports authorization failures.
  • After upgrades: re-check transport and protocol compatibility, then run agent mcp list-tools to confirm the advertised capabilities.

12. Or skip the browser setup

If your MCP workflow needs website screenshots, ScreenshotNeo provides an MCP server with take_screenshot, get_page_info, and capture_pdf for Cursor and other MCP clients. It removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and each response identifies the result with X-Page-Verdict and X-Billed headers.

For a direct API call, see the ScreenshotNeo API documentation:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Every feature is included on every plan. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

FAQ

Why does Cursor show the server but no tools?

Use MCP Logs and agent mcp list-tools. The server may have failed capability discovery, expose no tools, or have its tools disabled in the current chat.

Do all MCP servers provide prompts?

No. Cursor supports prompts, but each server decides which capabilities it implements and advertises.

Should I use envFile for a hosted server?

No. Cursor documents envFile for stdio servers. Remote servers should receive environment values through interpolation or headers.

Why does changing my shell profile not help?

Cursor may still be running with its previous environment. Fully quit and restart it after changing profile variables.

What is the fastest diagnostic command?

Run agent mcp list, then agent mcp list-tools IDENTIFIER. These commands separate configuration and connection problems from chat-level tool filtering.