rulesync
Version:
Unified AI rules management CLI tool that generates configuration files for various AI development tools
64 lines (61 loc) • 1.83 kB
JavaScript
import {
configWrappers,
generateMcpConfig,
generateMcpConfigurationFiles
} from "./chunk-PPAQWVXX.js";
// src/generators/mcp/claudecode.ts
function generateClaudeMcp(config) {
return generateMcpConfig(config, {
target: "claudecode",
configPaths: [".claude/settings.json"],
serverTransform: (server) => {
const claudeServer = {};
if (server.command) {
claudeServer.command = server.command;
if (server.args) claudeServer.args = server.args;
} else if (server.url || server.httpUrl) {
const url = server.httpUrl || server.url;
if (url) {
claudeServer.url = url;
}
if (server.httpUrl) {
claudeServer.transport = "http";
} else if (server.transport === "sse") {
claudeServer.transport = "sse";
}
}
if (server.env) {
claudeServer.env = server.env;
}
return claudeServer;
},
configWrapper: configWrappers.mcpServers
});
}
function generateClaudeMcpConfiguration(mcpServers, baseDir = "") {
return generateMcpConfigurationFiles(
mcpServers,
{
target: "claudecode",
configPaths: [".claude/settings.json"],
serverTransform: (server) => {
const { targets: _, transport, ...serverConfig } = server;
const claudeServer = { ...serverConfig };
if (serverConfig.httpUrl !== void 0) {
claudeServer.url = serverConfig.httpUrl;
delete claudeServer.httpUrl;
}
if (transport && transport !== "stdio" && (transport === "sse" || transport === "http")) {
claudeServer.transport = transport;
}
return claudeServer;
},
configWrapper: configWrappers.mcpServers
},
baseDir
);
}
export {
generateClaudeMcp,
generateClaudeMcpConfiguration
};