Cursor Integration Guide
Monitor your Cursor MCP extensions with MCPulse reliability tracking.
Prerequisites
- Cursor editor installed (version 0.30.0 or higher recommended)
- Node.js 18+ installed
- At least one MCP extension configured in Cursor
- MCPulse account (sign up at /signup)
- Your MCPulse server ID (available in your dashboard)
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:
- Close all Cursor windows
- Reopen Cursor
- Open Command Palette (Cmd/Ctrl + Shift + P)
- 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
-
✓
Use environment variables: Store server IDs in mcp-config.json env section, not hardcoded
-
✓
Monitor all extensions: Even simple extensions benefit from reliability tracking
-
✓
Set appropriate intervals: For low-traffic extensions, use longer report intervals (120s+)
-
✓
Compare across versions: Create separate server IDs when testing new extension versions
Full API Reference
For complete API documentation including all endpoints, authentication, rate limits, and response schemas:
View Full API Docs →