🤖

CursorのMCP設定がclient closedエラーで動かなかった

2025/03/20に公開

事象

CursorエディタにMCP設定でFirecrawlでWeb検索させたかったが
client closedエラーが出ちゃう

CursorのMCPログを確認すると
npxコマンドが見つからないor実行権限がないようなエラー (spawn npx ENOENT)あり

2025-03-20 08:11:43.623 [info] -mcp: Handling CreateClient action
2025-03-20 08:11:43.623 [info] -mcp: getOrCreateClient for stdio server.  process.platform: darwin isElectron: true
2025-03-20 08:11:43.623 [info] -mcp: Starting new stdio process with command: npx -y firecrawl-mcp
2025-03-20 08:11:43.623 [error] -mcp: Client error for command A system error occurred (spawn npx ENOENT)
2025-03-20 08:11:43.623 [error] -mcp: Error in MCP: A system error occurred (spawn npx ENOENT)
2025-03-20 08:11:43.623 [info] -mcp: Client closed for command
2025-03-20 08:11:43.623 [error] -mcp: Error in MCP: Client closed
2025-03-20 08:11:43.623 [info] -mcp: Handling ListOfferings action
2025-03-20 08:11:43.623 [error] -mcp: No server info found

ターミナルで直接コマンドを実行すると成功する

原因

nodeのバージョン管理ツールにmiseを使っていてCursorのMCP経由では、うまくmiseのnodeのパスを参照できていなかった

解決

mise経由でnpxを実行するようにした

🙅‍♀️

{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY",
        "FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
        "FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
        "FIRECRAWL_RETRY_MAX_DELAY": "30000",
        "FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",
        "FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
        "FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
      }
    }
  }
}

🙆‍♂️

{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "mise",
      "args": ["exec", "--", "npx", "-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY",
        "FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
        "FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
        "FIRECRAWL_RETRY_MAX_DELAY": "30000",
        "FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",
        "FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
        "FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
      }
    }
  }
}

Discussion