UNPKG

rulesync

Version:

Unified AI rules management CLI tool that generates configuration files for various AI development tools

67 lines (64 loc) 1.87 kB
import { shouldIncludeServer } from "./chunk-VI6SBYFB.js"; // src/generators/mcp/cursor.ts function generateCursorMcp(config) { const cursorConfig = { mcpServers: {} }; for (const [serverName, server] of Object.entries(config.mcpServers)) { if (!shouldIncludeServer(server, "cursor")) continue; const cursorServer = {}; if (server.command) { cursorServer.command = server.command; if (server.args) cursorServer.args = server.args; } else if (server.url || server.httpUrl) { const url = server.httpUrl || server.url; if (url) { cursorServer.url = url; } if (server.httpUrl || server.transport === "http") { cursorServer.type = "streamable-http"; } else if (server.transport === "sse" || server.type === "sse") { cursorServer.type = "sse"; } } if (server.env) { cursorServer.env = server.env; } if (server.cwd) { cursorServer.cwd = server.cwd; } cursorConfig.mcpServers[serverName] = cursorServer; } return JSON.stringify(cursorConfig, null, 2); } function generateCursorMcpConfiguration(mcpServers, baseDir = "") { const filepath = baseDir ? `${baseDir}/.cursor/mcp.json` : ".cursor/mcp.json"; const config = { mcpServers: {} }; for (const [serverName, server] of Object.entries(mcpServers)) { if (!shouldIncludeServer(server, "cursor")) { continue; } const { targets: _targets, ...serverConfig } = server; const cursorServer = { ...serverConfig }; if (serverConfig.httpUrl !== void 0) { cursorServer.url = serverConfig.httpUrl; delete cursorServer.httpUrl; } config.mcpServers[serverName] = cursorServer; } return [ { filepath, content: `${JSON.stringify(config, null, 2)} ` } ]; } export { generateCursorMcp, generateCursorMcpConfiguration };