← Back to Home

Cursor Integration Guide

Monitor your Cursor MCP extensions with MCPulse reliability tracking.

Prerequisites

Step 1: Locate Your Cursor MCP Config

Cursor stores MCP extension configurations in platform-specific locations:

macOS:

~/Library/Application Support/Cursor/User/mcp-config.json

Linux:

~/.config/Cursor/User/mcp-config.json

Windows:

%APPDATA%\Cursor\User\mcp-config.json

💡 Pro Tip: You can also access this via Cursor Settings → MCP Extensions → "Edit Config File"

Step 2: Install MCPulse Monitor

Navigate to your MCP extension directory and install the monitor:

cd /path/to/your/mcp-extension
npm install mcpulse-monitor

Step 3: Add Monitoring to Your Extension

MCPulse wraps your existing MCP extension without changing its behavior:

Example: Monitoring a File Search Extension

// extension.js
import { McpServer } from '@modelcontextprotocol/sdk';
import { wrapMcpServer } from 'mcpulse-monitor';
import fs from 'fs/promises';

const server = new McpServer({
  name: 'file-search-extension',
  version: '1.0.0'
});

// Define your extension tools
server.tool('search_files', async ({ pattern, directory }) => {
  const files = await fs.readdir(directory);
  const matches = files.filter(f => f.includes(pattern));
  return { matches };
});

server.tool('read_file', async ({ filepath }) => {
  const content = await fs.readFile(filepath, 'utf-8');
  return { content };
});

// Wrap server with MCPulse monitoring
const monitoredServer = wrapMcpServer(server, {
  serverId: process.env.MCPULSE_SERVER_ID || 'your-server-id',
  reportInterval: 60000,
  batchSize: 50
});

monitoredServer.start();

Step 4: Update Cursor MCP Config

Add your MCPulse server ID to the extension environment variables:

Example mcp-config.json:

{
  "extensions": [
    {
      "name": "file-search-extension",
      "command": "node",
      "args": ["/path/to/extension.js"],
      "env": {
        "MCPULSE_SERVER_ID": "your-server-id-from-dashboard"
      }
    },
    {
      "name": "another-extension",
      "command": "node",
      "args": ["/path/to/another-extension.js"],
      "env": {
        "MCPULSE_SERVER_ID": "another-server-id"
      }
    }
  ]
}

Step 5: Reload Cursor

Restart Cursor to apply the changes:

  1. Close all Cursor windows
  2. Reopen Cursor
  3. Open Command Palette (Cmd/Ctrl + Shift + P)
  4. Run MCP: Reload Extensions

Alternatively, use the keyboard shortcut: Cmd+Shift+R (macOS) or Ctrl+Shift+R (Windows/Linux)

Step 6: Verify Monitoring Works

Trigger some extension actions in Cursor, then check your dashboard:

Expected Dashboard Metrics:

Tool Calls (24h)

342

Success Rate

99.4%

Avg Latency

87ms

P95 Latency

210ms

If you don't see data after 2-3 minutes, check the troubleshooting section below.

Advanced: Monitoring Multiple Extensions

You can monitor multiple Cursor extensions with different server IDs:

{
  "extensions": [
    {
      "name": "filesystem-tools",
      "command": "node",
      "args": ["/path/to/fs-extension.js"],
      "env": {
        "MCPULSE_SERVER_ID": "server-id-1"
      }
    },
    {
      "name": "api-client-tools",
      "command": "node",
      "args": ["/path/to/api-extension.js"],
      "env": {
        "MCPULSE_SERVER_ID": "server-id-2"
      }
    },
    {
      "name": "database-tools",
      "command": "node",
      "args": ["/path/to/db-extension.js"],
      "env": {
        "MCPULSE_SERVER_ID": "server-id-3"
      }
    }
  ]
}

Each extension will report independently to MCPulse, allowing you to compare reliability across your toolset.

Troubleshooting

❌ Extension not loading in Cursor

  • Check Cursor's Output panel (View → Output → select "MCP Extensions")
  • Verify Node.js is accessible from Cursor's environment
  • Ensure file paths in mcp-config.json are absolute, not relative
  • Try running the extension manually: node /path/to/extension.js

⚠️ No data in MCPulse dashboard

  • Confirm extension is actually being called (test with Cursor's MCP tools panel)
  • Verify MCPULSE_SERVER_ID matches your dashboard exactly
  • Check network connectivity (MCPulse uses HTTPS to report metrics)
  • Wait 2-3 minutes for initial batch to be sent

🔍 Extension slower after adding monitor

  • MCPulse adds <1ms overhead per tool call (monitored, not blocking)
  • If you see significant slowdown, increase reportInterval to 120000 (2 minutes)
  • Reduce batchSize if memory is constrained
  • Check for other performance issues unrelated to monitoring

🔒 Config file not found

  • File may not exist yet if you haven't configured any MCP extensions
  • Create it manually at the platform-specific path above
  • Ensure parent directories exist (e.g., mkdir -p ~/.config/Cursor/User)
  • Check Cursor documentation for the latest config location (may vary by version)

Best Practices

Full API Reference

For complete API documentation including all endpoints, authentication, rate limits, and response schemas:

View Full API Docs →

Other Integration Guides