Cursor MCP Server
カーソルMCP(モデルコンテキストプロトコル)
Cursor MCPは、ClaudeのデスクトップアプリケーションとCursorエディタをつなぐ橋渡しとなり、AIを活用したシームレスな自動化とマルチインスタンス管理を実現します。より広範なModel Context Protocol(MCP)エコシステムの一部であり、標準化されたインターフェースを通じてCursorが様々なAIモデルやサービスと連携することを可能にします。
概要
🤖 AI統合
Claudeのデスクトップアプリケーションとの直接統合
他のMCP互換AIサービスを活用する能力
AIとエディター間のリアルタイムコンテキスト共有
AIを活用した自動化とコード生成
🔌 MCP プロトコルのサポート
AIモデルとの標準化された通信
追加のMCP用の拡張可能なプラグインシステム
コンテキスト認識コマンド実行
安全なトークンベースの認証
🖥️ クロスプラットフォームのウィンドウ管理
複数のオペレーティングシステム間でカーソルエディタウィンドウをシームレスに管理します
プログラムでウィンドウをフォーカス、最小化、復元、整列する
ウィンドウの状態の変化と位置を追跡する
複数のカーソルインスタンスを同時に処理する
⌨️ 入力自動化
以下をサポートする AI 駆動型キーボード入力:
コード生成と挿入
リファクタリング操作
コンテキスト認識補完
マルチカーソル編集
以下を含むインテリジェントなマウス自動化:
スマートな選択
コンテキストメニュー操作
AIガイドナビゲーション
🔄プロセス管理
AIオーケストレーションによるインスタンス管理
スマートなワークスペースの整理
自動コンテキスト保存
インテリジェントなセッション回復
Related MCP server: Portkey MCP Server
MCP統合
クロードデスクトップ統合
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.jsonmacOS:
~/Library/Application Support/cursor-mcp/config/config.jsonLinux:
~/.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.ps1macOS
# 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リナックス
# 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)仕組み
橋梁建築
このツールは、カーソルと MCP サーバー間のミドルウェア層として機能します。
カーソル統合:
カーソルのファイルシステムイベントを監視します
エディターの状態とコンテキストをキャプチャします
応答をエディターに挿入します
ウィンドウとプロセスの自動化を管理します
MCPプロトコル翻訳:
カーソルの内部イベントをMCPプロトコルメッセージに変換します
MCP応答をカーソル互換のアクションに変換します
セッション状態とコンテキストを維持する
認証とセキュリティを処理する
サーバー通信:
クロードのデスクトップアプリMCPサーバーに接続します
適切なAIプロバイダーにリクエストをルーティングします
複数のMCPへの同時接続を管理します
フォールバックとエラー回復を処理する
graph LR
A[Cursor Editor] <--> B[Cursor MCP Bridge]
B <--> C[Claude Desktop MCP]
B <--> D[GitHub Copilot MCP]
B <--> E[Custom AI MCPs]ワークフローの例
コード補完リクエスト:
// 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コードリファクタリング:
// 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複数ファイルのコンテキスト:
// 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
統合方法
ファイルシステム監視:
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) })ウィンドウ統合:
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) })コンテキスト管理:
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 コマンドラインツール
ターミナルのアクセシビリティ権限
リナックス
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ファイルを参照してください。
サポート
謝辞
カーソルエディター- AIファーストのコードエディター
Claude AI - 高度な AI アシスタント
@nut-tree/nut-js - クロスプラットフォーム自動化
active-win - ウィンドウ検出
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnneerdael/multiplatform-cursor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server