Cursor MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Integration with GitHub Copilot as an MCP provider, allowing users to get code suggestions from Copilot and compare them with other AI services.

游标 MCP(模型上下文协议)

Cursor MCP 是 Claude 桌面应用程序和 Cursor 编辑器之间的桥梁,可实现无缝的 AI 自动化和多实例管理。它是更广泛的模型上下文协议 (MCP) 生态系统的一部分,允许 Cursor 通过标准化接口与各种 AI 模型和服务进行交互。

概述

🤖 AI 集成

  • 与 Claude 的桌面应用程序直接集成
  • 能够利用其他与 MCP 兼容的 AI 服务
  • AI 与编辑之间的实时上下文共享
  • 人工智能驱动的自动化和代码生成

🔌 MCP 协议支持

  • 与AI模型的标准化沟通
  • 可扩展插件系统,用于附加 MCP
  • 上下文感知命令执行
  • 基于令牌的安全身份验证

🖥️ 跨平台窗口管理

  • 无缝管理跨操作系统的 Cursor 编辑器窗口
  • 通过编程聚焦、最小化、恢复和排列窗口
  • 跟踪窗口状态变化和位置
  • 同时处理多个 Cursor 实例

⌨️ 输入自动化

  • AI 驱动的键盘输入支持:
    • 代码生成和插入
    • 重构操作
    • 上下文感知补全
    • 多光标编辑
  • 智能鼠标自动化包括:
    • 智能选择
    • 上下文菜单操作
    • 人工智能导航

🔄 流程管理

  • AI 协调的实例管理
  • 智能工作空间组织
  • 自动上下文保存
  • 智能会话恢复

MCP 集成

Claude 桌面集成

import { ClaudeMCP } from 'cursor-mcp/claude' // Connect to Claude's desktop app const claude = await ClaudeMCP.connect() // Execute AI-powered operations await claude.generateCode({ prompt: 'Create a React component', context: currentFileContent, language: 'typescript' }) // Get AI suggestions const suggestions = await claude.getSuggestions({ code: selectedText, type: 'refactor' })

使用多个 MCP

import { MCPRegistry } from 'cursor-mcp/registry' // Register available MCPs MCPRegistry.register('claude', ClaudeMCP) MCPRegistry.register('github-copilot', CopilotMCP) // Use different AI services const claude = await MCPRegistry.get('claude') const copilot = await MCPRegistry.get('github-copilot') // Compare suggestions const claudeSuggestions = await claude.getSuggestions(context) const copilotSuggestions = await copilot.getSuggestions(context)

自定义 MCP 集成

import { BaseMCP, MCPProvider } from 'cursor-mcp/core' class CustomMCP extends BaseMCP implements MCPProvider { async connect() { // Custom connection logic } async generateSuggestions(context: CodeContext) { // Custom AI integration } } // Register custom MCP MCPRegistry.register('custom-ai', CustomMCP)

配置

该工具可以通过环境变量或配置文件进行配置:

  • Windows: %LOCALAPPDATA%\cursor-mcp\config\config.json
  • macOS: ~/Library/Application Support/cursor-mcp/config/config.json
  • Linux: ~/.config/cursor-mcp/config.json

示例配置:

{ "mcp": { "claude": { "enabled": true, "apiKey": "${CLAUDE_API_KEY}", "contextWindow": 100000 }, "providers": { "github-copilot": { "enabled": true, "auth": "${GITHUB_TOKEN}" } } }, "autoStart": true, "maxInstances": 4, "windowArrangement": "grid", "logging": { "level": "info", "file": "cursor-mcp.log" } }

安装

视窗

# Run as Administrator Invoke-WebRequest -Uri "https://github.com/your-org/cursor-mcp/releases/latest/download/cursor-mcp-windows.zip" -OutFile "cursor-mcp.zip" Expand-Archive -Path "cursor-mcp.zip" -DestinationPath "." .\windows.ps1

macOS

# Run with sudo curl -L "https://github.com/your-org/cursor-mcp/releases/latest/download/cursor-mcp-macos.zip" -o "cursor-mcp.zip" unzip cursor-mcp.zip sudo ./macos.sh

Linux

# Run with sudo curl -L "https://github.com/your-org/cursor-mcp/releases/latest/download/cursor-mcp-linux.zip" -o "cursor-mcp.zip" unzip cursor-mcp.zip sudo ./linux.sh

用法

基本用法

import { CursorInstanceManager } from 'cursor-mcp' // Get the instance manager const manager = CursorInstanceManager.getInstance() // Start a new Cursor instance await manager.startNewInstance() // Get all running instances const instances = await manager.getRunningInstances() // Focus a specific instance await manager.focusInstance(instances[0]) // Close all instances await manager.closeAllInstances()

窗口管理

import { WindowManager } from 'cursor-mcp' const windowManager = WindowManager.getInstance() // Find all Cursor windows const windows = await windowManager.findCursorWindows() // Focus a window await windowManager.focusWindow(windows[0]) // Arrange windows side by side await windowManager.arrangeWindows(windows, 'sideBySide') // Minimize all windows for (const window of windows) { await windowManager.minimizeWindow(window) }

输入自动化

import { InputAutomationService } from 'cursor-mcp' const inputService = InputAutomationService.getInstance() // Type text await inputService.typeText('Hello, World!') // Send keyboard shortcuts if (process.platform === 'darwin') { await inputService.sendKeys(['command', 'c']) } else { await inputService.sendKeys(['control', 'c']) } // Mouse operations await inputService.moveMouse(100, 100) await inputService.mouseClick('left') await inputService.mouseDrag(100, 100, 200, 200)

工作原理

桥梁建筑

此工具充当 Cursor 和 MCP 服务器之间的中间件层:

  1. 光标集成
    • 监视 Cursor 的文件系统事件
    • 捕获编辑器状态和上下文
    • 将响应注入编辑器
    • 管理窗口和流程自动化
  2. MCP 协议转换
    • 将 Cursor 的内部事件转换为 MCP 协议消息
    • 将 MCP 响应转换为与 Cursor 兼容的操作
    • 维护会话状态和上下文
    • 处理身份验证和安全
  3. 服务器通信
    • 连接到 Claude 的桌面应用程序 MCP 服务器
    • 将请求路由到适当的 AI 提供商
    • 管理与多个 MCP 的并发连接
    • 处理回退和错误恢复

示例工作流程

  1. 代码完成请求
    // 1. Cursor Event (File Change) // When user types in Cursor: function calculateTotal(items) { // Calculate the total price of items| <-- cursor position // 2. Bridge Translation const event = { type: 'completion_request', context: { file: 'shopping-cart.ts', line: 2, prefix: '// Calculate the total price of items', language: 'typescript', cursor_position: 43 } } // 3. MCP Protocol Message await mcpServer.call('generate_completion', { prompt: event.context, max_tokens: 150, temperature: 0.7 }) // 4. Response Translation // Bridge converts MCP response: const response = `return items.reduce((total, item) => { return total + (item.price * item.quantity); }, 0);` // 5. Cursor Integration // Bridge injects the code at cursor position
  2. 代码重构
    // 1. Cursor Event (Command) // User selects code and triggers refactor command const oldCode = ` if (user.age >= 18) { if (user.hasLicense) { if (car.isAvailable) { rentCar(user, car); } } } ` // 2. Bridge Translation const event = { type: 'refactor_request', context: { selection: oldCode, command: 'simplify_nesting' } } // 3. MCP Protocol Message await mcpServer.call('refactor_code', { code: event.context.selection, style: 'simplified', maintain_logic: true }) // 4. Response Translation const response = ` const canRentCar = user.age >= 18 && user.hasLicense && car.isAvailable; if (canRentCar) { rentCar(user, car); } ` // 5. Cursor Integration // Bridge replaces selected code
  3. 多文件上下文
    // 1. Cursor Event (File Dependencies) // When user requests help with a component // 2. Bridge Translation const event = { type: 'context_request', files: { 'UserProfile.tsx': '...', 'types.ts': '...', 'api.ts': '...' }, focus_file: 'UserProfile.tsx' } // 3. MCP Protocol Message await mcpServer.call('analyze_context', { files: event.files, primary_file: event.focus_file, analysis_type: 'component_dependencies' }) // 4. Response Processing // Bridge maintains context across requests

积分方法

  1. 文件系统监控
    import { FileSystemWatcher } from 'cursor-mcp/watcher' const watcher = new FileSystemWatcher({ paths: ['/path/to/cursor/workspace'], events: ['change', 'create', 'delete'] }) watcher.on('change', async (event) => { const mcpMessage = await bridge.translateEvent(event) await mcpServer.send(mcpMessage) })
  2. 窗口集成
    import { CursorWindow } from 'cursor-mcp/window' const window = new CursorWindow() // Inject AI responses await window.injectCode({ position: cursorPosition, code: mcpResponse.code, animate: true // Smooth typing animation }) // Handle user interactions window.onCommand('refactor', async (selection) => { const mcpMessage = await bridge.createRefactorRequest(selection) const response = await mcpServer.send(mcpMessage) await window.applyRefactoring(response) })
  3. 上下文管理
    import { ContextManager } from 'cursor-mcp/context' const context = new ContextManager() // Track file dependencies await context.addFile('component.tsx') await context.trackDependencies() // Maintain conversation history context.addMessage({ role: 'user', content: 'Refactor this component' }) // Send to MCP server const response = await mcpServer.send({ type: 'refactor', context: context.getFullContext() })

安全

  • 基于令牌的安全 AI 服务身份验证
  • 加密通信渠道
  • 沙盒执行环境
  • 细粒度的权限控制

要求

视窗

  • Windows 10 或更高版本
  • Node.js 18 或更高版本
  • 安装的管理员权限

macOS

  • macOS 10.15 (Catalina) 或更高版本
  • Node.js 18 或更高版本
  • Xcode 命令行工具
  • 终端的辅助功能权限

Linux

  • X11显示服务器
  • Node.js 18 或更高版本
  • xdotool
  • libxtst-dev
  • libpng++-dev
  • 构建必需

发展

设置

# Clone the repository git clone https://github.com/your-org/cursor-mcp.git cd cursor-mcp # Install dependencies npm install # Build the project npm run build # Run tests npm test

运行测试

# Run all tests npm test # Run specific test suite npm test -- window-management # Run with coverage npm run test:coverage

贡献

欢迎大家贡献!详情请参阅我们的贡献指南

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

支持

致谢

ID: jdkl0uz4sp