feat(features): add claude-code-agent-loader, mcp-loader, session-state

This commit is contained in:
YeonGyu-Kim
2025-12-09 16:27:46 +09:00
parent c7a65af475
commit 376bf363af
13 changed files with 488 additions and 0 deletions
@@ -0,0 +1,53 @@
import type {
ClaudeCodeMcpServer,
McpLocalConfig,
McpRemoteConfig,
McpServerConfig,
} from "./types"
import { expandEnvVarsInObject } from "./env-expander"
export function transformMcpServer(
name: string,
server: ClaudeCodeMcpServer
): McpServerConfig {
const expanded = expandEnvVarsInObject(server)
const serverType = expanded.type ?? "stdio"
if (serverType === "http" || serverType === "sse") {
if (!expanded.url) {
throw new Error(
`MCP server "${name}" requires url for type "${serverType}"`
)
}
const config: McpRemoteConfig = {
type: "remote",
url: expanded.url,
enabled: true,
}
if (expanded.headers && Object.keys(expanded.headers).length > 0) {
config.headers = expanded.headers
}
return config
}
if (!expanded.command) {
throw new Error(`MCP server "${name}" requires command for stdio type`)
}
const commandArray = [expanded.command, ...(expanded.args ?? [])]
const config: McpLocalConfig = {
type: "local",
command: commandArray,
enabled: true,
}
if (expanded.env && Object.keys(expanded.env).length > 0) {
config.environment = expanded.env
}
return config
}