@teambit/cli-mcp-server 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-mcp-server.main.runtime.d.ts +6 -4
- package/dist/cli-mcp-server.main.runtime.js +55 -54
- package/dist/cli-mcp-server.main.runtime.js.map +1 -1
- package/dist/mcp-server.cmd.d.ts +1 -0
- package/dist/mcp-server.cmd.js +1 -1
- package/dist/mcp-server.cmd.js.map +1 -1
- package/dist/{preview-1746760877801.js → preview-1746933597270.js} +1 -1
- package/package.json +4 -3
|
@@ -3,17 +3,19 @@ import { Logger, LoggerMain } from '@teambit/logger';
|
|
|
3
3
|
export declare class CliMcpServerMain {
|
|
4
4
|
private cli;
|
|
5
5
|
private logger;
|
|
6
|
+
private bitBin;
|
|
6
7
|
constructor(cli: CLIMain, logger: Logger);
|
|
7
|
-
private shouldIncludeCommand;
|
|
8
|
-
private buildZodSchema;
|
|
9
|
-
private buildCommandArgs;
|
|
10
|
-
private registerToolForCommand;
|
|
11
8
|
runMcpServer(options: {
|
|
12
9
|
extended?: boolean;
|
|
13
10
|
includeOnly?: string;
|
|
14
11
|
includeAdditional?: string;
|
|
15
12
|
exclude?: string;
|
|
13
|
+
bitBin?: string;
|
|
16
14
|
}): Promise<void>;
|
|
15
|
+
private shouldIncludeCommand;
|
|
16
|
+
private buildZodSchema;
|
|
17
|
+
private buildCommandArgs;
|
|
18
|
+
private registerToolForCommand;
|
|
17
19
|
private processSubCommands;
|
|
18
20
|
private runBit;
|
|
19
21
|
static slots: never[];
|
|
@@ -68,6 +68,59 @@ class CliMcpServerMain {
|
|
|
68
68
|
constructor(cli, logger) {
|
|
69
69
|
this.cli = cli;
|
|
70
70
|
this.logger = logger;
|
|
71
|
+
_defineProperty(this, "bitBin", 'bit');
|
|
72
|
+
}
|
|
73
|
+
async runMcpServer(options) {
|
|
74
|
+
this.logger.debug(`[MCP-DEBUG] Starting MCP server with options: ${JSON.stringify(options)}`);
|
|
75
|
+
const commands = this.cli.commands;
|
|
76
|
+
const extended = Boolean(options.extended);
|
|
77
|
+
this.bitBin = options.bitBin || this.bitBin;
|
|
78
|
+
// Default set of tools to include
|
|
79
|
+
const defaultTools = new Set(['status', 'list', 'add', 'init', 'show', 'tag', 'snap', 'import', 'export', 'remove', 'log', 'test', 'diff', 'install', 'lane show', 'lane create', 'lane switch', 'lane merge', 'create', 'templates', 'reset', 'checkout']);
|
|
80
|
+
|
|
81
|
+
// Tools to always exclude
|
|
82
|
+
const alwaysExcludeTools = new Set(['login', 'logout', 'completion', 'mcp-server', 'start', 'run-action', 'watch', 'run', 'resume-export', 'server', 'serve-preview']);
|
|
83
|
+
|
|
84
|
+
// Parse command strings from flag options
|
|
85
|
+
let includeOnlySet;
|
|
86
|
+
if (options.includeOnly) {
|
|
87
|
+
includeOnlySet = new Set(options.includeOnly.split(',').map(cmd => cmd.trim()));
|
|
88
|
+
this.logger.debug(`[MCP-DEBUG] Including only commands: ${Array.from(includeOnlySet).join(', ')}`);
|
|
89
|
+
}
|
|
90
|
+
let additionalCommandsSet;
|
|
91
|
+
if (options.includeAdditional) {
|
|
92
|
+
additionalCommandsSet = new Set(options.includeAdditional.split(',').map(cmd => cmd.trim()));
|
|
93
|
+
this.logger.debug(`[MCP-DEBUG] Including additional commands: ${Array.from(additionalCommandsSet).join(', ')}`);
|
|
94
|
+
}
|
|
95
|
+
let userExcludeSet;
|
|
96
|
+
if (options.exclude) {
|
|
97
|
+
userExcludeSet = new Set(options.exclude.split(',').map(cmd => cmd.trim()));
|
|
98
|
+
this.logger.debug(`[MCP-DEBUG] Excluding commands: ${Array.from(userExcludeSet).join(', ')}`);
|
|
99
|
+
}
|
|
100
|
+
const server = new (_mcp().McpServer)({
|
|
101
|
+
name: 'bit-cli-mcp',
|
|
102
|
+
version: '0.0.1'
|
|
103
|
+
});
|
|
104
|
+
const filterOptions = {
|
|
105
|
+
defaultTools,
|
|
106
|
+
additionalCommandsSet,
|
|
107
|
+
userExcludeSet,
|
|
108
|
+
alwaysExcludeTools,
|
|
109
|
+
extended,
|
|
110
|
+
includeOnlySet
|
|
111
|
+
};
|
|
112
|
+
commands.forEach(cmd => {
|
|
113
|
+
const cmdName = (0, _cli().getCommandName)(cmd);
|
|
114
|
+
if (this.shouldIncludeCommand(cmdName, filterOptions)) {
|
|
115
|
+
this.registerToolForCommand(server, cmd);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Process sub-commands
|
|
119
|
+
if (cmd.commands && cmd.commands.length) {
|
|
120
|
+
this.processSubCommands(server, cmd, filterOptions);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
await server.connect(new (_stdio().StdioServerTransport)());
|
|
71
124
|
}
|
|
72
125
|
shouldIncludeCommand(cmdName, options) {
|
|
73
126
|
// Always exclude certain commands
|
|
@@ -166,58 +219,6 @@ class CliMcpServerMain {
|
|
|
166
219
|
return this.runBit(argsToRun, params.cwd);
|
|
167
220
|
});
|
|
168
221
|
}
|
|
169
|
-
async runMcpServer(options) {
|
|
170
|
-
this.logger.debug(`[MCP-DEBUG] Starting MCP server with options: ${JSON.stringify(options)}`);
|
|
171
|
-
const commands = this.cli.commands;
|
|
172
|
-
const extended = Boolean(options.extended);
|
|
173
|
-
|
|
174
|
-
// Default set of tools to include
|
|
175
|
-
const defaultTools = new Set(['status', 'list', 'add', 'init', 'show', 'tag', 'snap', 'import', 'export', 'remove', 'log', 'test', 'diff', 'install', 'lane show', 'lane create', 'lane switch', 'lane merge', 'create', 'templates', 'reset', 'checkout']);
|
|
176
|
-
|
|
177
|
-
// Tools to always exclude
|
|
178
|
-
const alwaysExcludeTools = new Set(['login', 'logout', 'completion', 'mcp-server', 'start', 'run-action', 'watch', 'run', 'resume-export', 'server', 'serve-preview']);
|
|
179
|
-
|
|
180
|
-
// Parse command strings from flag options
|
|
181
|
-
let includeOnlySet;
|
|
182
|
-
if (options.includeOnly) {
|
|
183
|
-
includeOnlySet = new Set(options.includeOnly.split(',').map(cmd => cmd.trim()));
|
|
184
|
-
this.logger.debug(`[MCP-DEBUG] Including only commands: ${Array.from(includeOnlySet).join(', ')}`);
|
|
185
|
-
}
|
|
186
|
-
let additionalCommandsSet;
|
|
187
|
-
if (options.includeAdditional) {
|
|
188
|
-
additionalCommandsSet = new Set(options.includeAdditional.split(',').map(cmd => cmd.trim()));
|
|
189
|
-
this.logger.debug(`[MCP-DEBUG] Including additional commands: ${Array.from(additionalCommandsSet).join(', ')}`);
|
|
190
|
-
}
|
|
191
|
-
let userExcludeSet;
|
|
192
|
-
if (options.exclude) {
|
|
193
|
-
userExcludeSet = new Set(options.exclude.split(',').map(cmd => cmd.trim()));
|
|
194
|
-
this.logger.debug(`[MCP-DEBUG] Excluding commands: ${Array.from(userExcludeSet).join(', ')}`);
|
|
195
|
-
}
|
|
196
|
-
const server = new (_mcp().McpServer)({
|
|
197
|
-
name: 'bit-cli-mcp',
|
|
198
|
-
version: '0.0.1'
|
|
199
|
-
});
|
|
200
|
-
const filterOptions = {
|
|
201
|
-
defaultTools,
|
|
202
|
-
additionalCommandsSet,
|
|
203
|
-
userExcludeSet,
|
|
204
|
-
alwaysExcludeTools,
|
|
205
|
-
extended,
|
|
206
|
-
includeOnlySet
|
|
207
|
-
};
|
|
208
|
-
commands.forEach(cmd => {
|
|
209
|
-
const cmdName = (0, _cli().getCommandName)(cmd);
|
|
210
|
-
if (this.shouldIncludeCommand(cmdName, filterOptions)) {
|
|
211
|
-
this.registerToolForCommand(server, cmd);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Process sub-commands
|
|
215
|
-
if (cmd.commands && cmd.commands.length) {
|
|
216
|
-
this.processSubCommands(server, cmd, filterOptions);
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
await server.connect(new (_stdio().StdioServerTransport)());
|
|
220
|
-
}
|
|
221
222
|
processSubCommands(server, parentCmd, options) {
|
|
222
223
|
const parentCmdName = (0, _cli().getCommandName)(parentCmd);
|
|
223
224
|
parentCmd.commands?.forEach(subCmd => {
|
|
@@ -229,8 +230,8 @@ class CliMcpServerMain {
|
|
|
229
230
|
});
|
|
230
231
|
}
|
|
231
232
|
async runBit(args, cwd) {
|
|
232
|
-
this.logger.debug(`[MCP-DEBUG] Running:
|
|
233
|
-
const cmd =
|
|
233
|
+
this.logger.debug(`[MCP-DEBUG] Running: ${this.bitBin} ${args.join(' ')} in ${cwd}`);
|
|
234
|
+
const cmd = `${this.bitBin} ${args.join(' ')}`;
|
|
234
235
|
try {
|
|
235
236
|
const cmdOutput = _child_process().default.execSync(cmd, {
|
|
236
237
|
cwd
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_child_process","_interopRequireDefault","_cliMcpServer","_mcpServer","_mcp","_stdio","_zod","_logger","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CliMcpServerMain","constructor","cli","logger","shouldIncludeCommand","cmdName","options","alwaysExcludeTools","has","userExcludeSet","debug","includeOnlySet","shouldInclude","extended","defaultTools","additionalCommandsSet","buildZodSchema","config","schema","cwd","z","string","describe","argsData","forEach","arg","desc","description","nameRaw","isArray","nameCamelCase","required","array","optional","flagsData","flag","type","name","boolean","buildCommandArgs","params","args","split","val","undefined","Array","item","push","stringValue","includes","registerToolForCommand","server","cmd","parentCmd","getCommandName","toolName","replace","extendedDescription","getArgsData","getFlagsData","tool","argsToRun","runBit","runMcpServer","JSON","stringify","commands","Boolean","Set","includeOnly","map","trim","from","join","includeAdditional","exclude","McpServer","version","filterOptions","length","processSubCommands","connect","StdioServerTransport","parentCmdName","subCmd","subCmdName","fullCmdName","cmdOutput","childProcess","execSync","content","text","toString","error","message","provider","loggerMain","createLogger","CliMcpServerAspect","id","mcpServer","register","McpServerCmd","exports","CLIAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["cli-mcp-server.main.runtime.ts"],"sourcesContent":["/* eslint-disable import/extensions */\n/* eslint-disable import/no-unresolved */\n\nimport { CLIAspect, CLIMain, Command, getArgsData, getCommandName, getFlagsData, MainRuntime } from '@teambit/cli';\nimport childProcess from 'child_process';\nimport { CliMcpServerAspect } from './cli-mcp-server.aspect';\nimport { McpServerCmd } from './mcp-server.cmd';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { CallToolResult } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\ninterface CommandFilterOptions {\n defaultTools: Set<string>;\n additionalCommandsSet?: Set<string>;\n userExcludeSet?: Set<string>;\n alwaysExcludeTools: Set<string>;\n extended: boolean;\n includeOnlySet?: Set<string>;\n}\n\ninterface CommandConfig {\n name: string;\n description: string;\n argsData: ReturnType<typeof getArgsData>;\n flagsData: ReturnType<typeof getFlagsData>;\n}\n\nexport class CliMcpServerMain {\n constructor(\n private cli: CLIMain,\n private logger: Logger\n ) {}\n\n private shouldIncludeCommand(cmdName: string, options: CommandFilterOptions): boolean {\n // Always exclude certain commands\n if (options.alwaysExcludeTools.has(cmdName)) return false;\n\n // User-specified exclude takes precedence\n if (options.userExcludeSet?.has(cmdName)) {\n this.logger.debug(`[MCP-DEBUG] Excluding command due to --exclude flag: ${cmdName}`);\n return false;\n }\n\n // If includeOnly is specified, only include those specific commands\n if (options.includeOnlySet) {\n const shouldInclude = options.includeOnlySet.has(cmdName);\n if (shouldInclude) {\n this.logger.debug(`[MCP-DEBUG] Including command due to --include-only flag: ${cmdName}`);\n }\n return shouldInclude;\n }\n\n // Extended mode includes all commands except excluded ones\n if (options.extended) return true;\n\n // Default mode: include default tools + any additional specified\n return options.defaultTools.has(cmdName) || (options.additionalCommandsSet?.has(cmdName) ?? false);\n }\n\n private buildZodSchema(config: CommandConfig): Record<string, any> {\n const schema: Record<string, any> = {\n // Add cwd parameter as mandatory to all commands\n cwd: z.string().describe('Path to workspace'),\n };\n\n config.argsData.forEach((arg) => {\n const desc = arg.description || `Positional argument: ${arg.nameRaw}`;\n if (arg.isArray) {\n schema[arg.nameCamelCase] = arg.required\n ? z.array(z.string()).describe(desc)\n : z.array(z.string()).optional().describe(desc);\n } else {\n schema[arg.nameCamelCase] = arg.required ? z.string().describe(desc) : z.string().optional().describe(desc);\n }\n });\n\n config.flagsData.forEach((flag) => {\n const type = flag.type;\n schema[flag.name] =\n type === 'string'\n ? z.string().optional().describe(flag.description)\n : z.boolean().optional().describe(flag.description);\n });\n\n return schema;\n }\n\n private buildCommandArgs(config: CommandConfig, params: any): string[] {\n // Split the command name on spaces to properly handle subcommands\n const args: string[] = config.name.split(' ');\n\n // Add positional arguments in order\n config.argsData.forEach((arg) => {\n const val = params[arg.nameCamelCase];\n if (val === undefined) return;\n\n if (arg.isArray && Array.isArray(val)) {\n val.forEach((item) => args.push(item));\n } else {\n args.push(val);\n }\n });\n\n // Add options as flags\n config.flagsData.forEach((flag) => {\n const name = flag.name;\n const type = flag.type;\n const val = params[name];\n if (val === undefined) return;\n if (type === 'boolean' && val) {\n args.push(`--${name}`);\n } else if (type === 'string' && val) {\n // Check if the string value contains spaces and quote it if necessary\n const stringValue = String(val);\n if (stringValue.includes(' ')) {\n args.push(`--${name}`, `\"${stringValue}\"`);\n } else {\n args.push(`--${name}`, stringValue);\n }\n }\n });\n\n return args;\n }\n\n private registerToolForCommand(server: McpServer, cmd: Command, parentCmd?: Command) {\n const cmdName = parentCmd ? `${getCommandName(parentCmd)} ${getCommandName(cmd)}` : getCommandName(cmd);\n\n // replace white spaces (\\s) and dashes (-) with underscores (_)\n const toolName = `bit_${cmdName}`.replace(/[-\\s]/g, '_');\n const description = `${cmd.description}${cmd.extendedDescription ? `.\\n(${cmd.extendedDescription})` : ''}`;\n const config: CommandConfig = {\n name: cmdName,\n description,\n argsData: getArgsData(cmd),\n flagsData: getFlagsData(cmd),\n };\n\n const schema = this.buildZodSchema(config);\n\n server.tool(toolName, config.description, schema, async (params: any) => {\n const argsToRun = this.buildCommandArgs(config, params);\n return this.runBit(argsToRun, params.cwd);\n });\n }\n\n async runMcpServer(options: {\n extended?: boolean;\n includeOnly?: string;\n includeAdditional?: string;\n exclude?: string;\n }) {\n this.logger.debug(`[MCP-DEBUG] Starting MCP server with options: ${JSON.stringify(options)}`);\n const commands = this.cli.commands;\n const extended = Boolean(options.extended);\n\n // Default set of tools to include\n const defaultTools = new Set([\n 'status',\n 'list',\n 'add',\n 'init',\n 'show',\n 'tag',\n 'snap',\n 'import',\n 'export',\n 'remove',\n 'log',\n 'test',\n 'diff',\n 'install',\n 'lane show',\n 'lane create',\n 'lane switch',\n 'lane merge',\n 'create',\n 'templates',\n 'reset',\n 'checkout',\n ]);\n\n // Tools to always exclude\n const alwaysExcludeTools = new Set([\n 'login',\n 'logout',\n 'completion',\n 'mcp-server',\n 'start',\n 'run-action',\n 'watch',\n 'run',\n 'resume-export',\n 'server',\n 'serve-preview',\n ]);\n\n // Parse command strings from flag options\n let includeOnlySet: Set<string> | undefined;\n if (options.includeOnly) {\n includeOnlySet = new Set(options.includeOnly.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Including only commands: ${Array.from(includeOnlySet).join(', ')}`);\n }\n\n let additionalCommandsSet: Set<string> | undefined;\n if (options.includeAdditional) {\n additionalCommandsSet = new Set(options.includeAdditional.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Including additional commands: ${Array.from(additionalCommandsSet).join(', ')}`);\n }\n\n let userExcludeSet: Set<string> | undefined;\n if (options.exclude) {\n userExcludeSet = new Set(options.exclude.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Excluding commands: ${Array.from(userExcludeSet).join(', ')}`);\n }\n\n const server = new McpServer({\n name: 'bit-cli-mcp',\n version: '0.0.1',\n });\n\n const filterOptions: CommandFilterOptions = {\n defaultTools,\n additionalCommandsSet,\n userExcludeSet,\n alwaysExcludeTools,\n extended,\n includeOnlySet,\n };\n\n commands.forEach((cmd) => {\n const cmdName = getCommandName(cmd);\n\n if (this.shouldIncludeCommand(cmdName, filterOptions)) {\n this.registerToolForCommand(server, cmd);\n }\n\n // Process sub-commands\n if (cmd.commands && cmd.commands.length) {\n this.processSubCommands(server, cmd, filterOptions);\n }\n });\n\n await server.connect(new StdioServerTransport());\n }\n\n private processSubCommands(server: McpServer, parentCmd: Command, options: CommandFilterOptions) {\n const parentCmdName = getCommandName(parentCmd);\n\n parentCmd.commands?.forEach((subCmd) => {\n const subCmdName = getCommandName(subCmd);\n const fullCmdName = `${parentCmdName} ${subCmdName}`;\n\n if (this.shouldIncludeCommand(fullCmdName, options)) {\n this.registerToolForCommand(server, subCmd, parentCmd);\n }\n });\n }\n\n private async runBit(args: string[], cwd: string): Promise<CallToolResult> {\n this.logger.debug(`[MCP-DEBUG] Running: bit ${args.join(' ')} in ${cwd}`);\n const cmd = `bit ${args.join(' ')}`;\n try {\n const cmdOutput = childProcess.execSync(cmd, { cwd });\n this.logger.debug(`[MCP-DEBUG] result. stdout: ${cmdOutput}`);\n\n return { content: [{ type: 'text', text: cmdOutput.toString() }] };\n } catch (error: any) {\n this.logger.error(`[MCP-DEBUG] Error executing ${cmd}`, error);\n\n return { content: [{ type: 'text', text: error.message }] };\n }\n }\n\n static slots = [];\n static dependencies = [CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([cli, loggerMain]: [CLIMain, LoggerMain]) {\n const logger = loggerMain.createLogger(CliMcpServerAspect.id);\n const mcpServer = new CliMcpServerMain(cli, logger);\n cli.register(new McpServerCmd(mcpServer));\n return mcpServer;\n }\n}\n\nCliMcpServerAspect.addRuntime(CliMcpServerMain);\n\nexport default CliMcpServerMain;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_child_process","_interopRequireDefault","_cliMcpServer","_mcpServer","_mcp","_stdio","_zod","_logger","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CliMcpServerMain","constructor","cli","logger","runMcpServer","options","debug","JSON","stringify","commands","extended","Boolean","bitBin","defaultTools","Set","alwaysExcludeTools","includeOnlySet","includeOnly","split","map","cmd","trim","Array","from","join","additionalCommandsSet","includeAdditional","userExcludeSet","exclude","server","McpServer","name","version","filterOptions","forEach","cmdName","getCommandName","shouldIncludeCommand","registerToolForCommand","length","processSubCommands","connect","StdioServerTransport","has","shouldInclude","buildZodSchema","config","schema","cwd","z","string","describe","argsData","arg","desc","description","nameRaw","isArray","nameCamelCase","required","array","optional","flagsData","flag","type","boolean","buildCommandArgs","params","args","val","undefined","item","push","stringValue","includes","parentCmd","toolName","replace","extendedDescription","getArgsData","getFlagsData","tool","argsToRun","runBit","parentCmdName","subCmd","subCmdName","fullCmdName","cmdOutput","childProcess","execSync","content","text","toString","error","message","provider","loggerMain","createLogger","CliMcpServerAspect","id","mcpServer","register","McpServerCmd","exports","CLIAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["cli-mcp-server.main.runtime.ts"],"sourcesContent":["/* eslint-disable import/extensions */\n/* eslint-disable import/no-unresolved */\n\nimport { CLIAspect, CLIMain, Command, getArgsData, getCommandName, getFlagsData, MainRuntime } from '@teambit/cli';\nimport childProcess from 'child_process';\nimport { CliMcpServerAspect } from './cli-mcp-server.aspect';\nimport { McpServerCmd } from './mcp-server.cmd';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { CallToolResult } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\ninterface CommandFilterOptions {\n defaultTools: Set<string>;\n additionalCommandsSet?: Set<string>;\n userExcludeSet?: Set<string>;\n alwaysExcludeTools: Set<string>;\n extended: boolean;\n includeOnlySet?: Set<string>;\n}\n\ninterface CommandConfig {\n name: string;\n description: string;\n argsData: ReturnType<typeof getArgsData>;\n flagsData: ReturnType<typeof getFlagsData>;\n}\n\nexport class CliMcpServerMain {\n private bitBin = 'bit';\n constructor(\n private cli: CLIMain,\n private logger: Logger\n ) {}\n\n async runMcpServer(options: {\n extended?: boolean;\n includeOnly?: string;\n includeAdditional?: string;\n exclude?: string;\n bitBin?: string;\n }) {\n this.logger.debug(`[MCP-DEBUG] Starting MCP server with options: ${JSON.stringify(options)}`);\n const commands = this.cli.commands;\n const extended = Boolean(options.extended);\n this.bitBin = options.bitBin || this.bitBin;\n // Default set of tools to include\n const defaultTools = new Set([\n 'status',\n 'list',\n 'add',\n 'init',\n 'show',\n 'tag',\n 'snap',\n 'import',\n 'export',\n 'remove',\n 'log',\n 'test',\n 'diff',\n 'install',\n 'lane show',\n 'lane create',\n 'lane switch',\n 'lane merge',\n 'create',\n 'templates',\n 'reset',\n 'checkout',\n ]);\n\n // Tools to always exclude\n const alwaysExcludeTools = new Set([\n 'login',\n 'logout',\n 'completion',\n 'mcp-server',\n 'start',\n 'run-action',\n 'watch',\n 'run',\n 'resume-export',\n 'server',\n 'serve-preview',\n ]);\n\n // Parse command strings from flag options\n let includeOnlySet: Set<string> | undefined;\n if (options.includeOnly) {\n includeOnlySet = new Set(options.includeOnly.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Including only commands: ${Array.from(includeOnlySet).join(', ')}`);\n }\n\n let additionalCommandsSet: Set<string> | undefined;\n if (options.includeAdditional) {\n additionalCommandsSet = new Set(options.includeAdditional.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Including additional commands: ${Array.from(additionalCommandsSet).join(', ')}`);\n }\n\n let userExcludeSet: Set<string> | undefined;\n if (options.exclude) {\n userExcludeSet = new Set(options.exclude.split(',').map((cmd) => cmd.trim()));\n this.logger.debug(`[MCP-DEBUG] Excluding commands: ${Array.from(userExcludeSet).join(', ')}`);\n }\n\n const server = new McpServer({\n name: 'bit-cli-mcp',\n version: '0.0.1',\n });\n\n const filterOptions: CommandFilterOptions = {\n defaultTools,\n additionalCommandsSet,\n userExcludeSet,\n alwaysExcludeTools,\n extended,\n includeOnlySet,\n };\n\n commands.forEach((cmd) => {\n const cmdName = getCommandName(cmd);\n\n if (this.shouldIncludeCommand(cmdName, filterOptions)) {\n this.registerToolForCommand(server, cmd);\n }\n\n // Process sub-commands\n if (cmd.commands && cmd.commands.length) {\n this.processSubCommands(server, cmd, filterOptions);\n }\n });\n\n await server.connect(new StdioServerTransport());\n }\n\n private shouldIncludeCommand(cmdName: string, options: CommandFilterOptions): boolean {\n // Always exclude certain commands\n if (options.alwaysExcludeTools.has(cmdName)) return false;\n\n // User-specified exclude takes precedence\n if (options.userExcludeSet?.has(cmdName)) {\n this.logger.debug(`[MCP-DEBUG] Excluding command due to --exclude flag: ${cmdName}`);\n return false;\n }\n\n // If includeOnly is specified, only include those specific commands\n if (options.includeOnlySet) {\n const shouldInclude = options.includeOnlySet.has(cmdName);\n if (shouldInclude) {\n this.logger.debug(`[MCP-DEBUG] Including command due to --include-only flag: ${cmdName}`);\n }\n return shouldInclude;\n }\n\n // Extended mode includes all commands except excluded ones\n if (options.extended) return true;\n\n // Default mode: include default tools + any additional specified\n return options.defaultTools.has(cmdName) || (options.additionalCommandsSet?.has(cmdName) ?? false);\n }\n\n private buildZodSchema(config: CommandConfig): Record<string, any> {\n const schema: Record<string, any> = {\n // Add cwd parameter as mandatory to all commands\n cwd: z.string().describe('Path to workspace'),\n };\n\n config.argsData.forEach((arg) => {\n const desc = arg.description || `Positional argument: ${arg.nameRaw}`;\n if (arg.isArray) {\n schema[arg.nameCamelCase] = arg.required\n ? z.array(z.string()).describe(desc)\n : z.array(z.string()).optional().describe(desc);\n } else {\n schema[arg.nameCamelCase] = arg.required ? z.string().describe(desc) : z.string().optional().describe(desc);\n }\n });\n\n config.flagsData.forEach((flag) => {\n const type = flag.type;\n schema[flag.name] =\n type === 'string'\n ? z.string().optional().describe(flag.description)\n : z.boolean().optional().describe(flag.description);\n });\n\n return schema;\n }\n\n private buildCommandArgs(config: CommandConfig, params: any): string[] {\n // Split the command name on spaces to properly handle subcommands\n const args: string[] = config.name.split(' ');\n\n // Add positional arguments in order\n config.argsData.forEach((arg) => {\n const val = params[arg.nameCamelCase];\n if (val === undefined) return;\n\n if (arg.isArray && Array.isArray(val)) {\n val.forEach((item) => args.push(item));\n } else {\n args.push(val);\n }\n });\n\n // Add options as flags\n config.flagsData.forEach((flag) => {\n const name = flag.name;\n const type = flag.type;\n const val = params[name];\n if (val === undefined) return;\n if (type === 'boolean' && val) {\n args.push(`--${name}`);\n } else if (type === 'string' && val) {\n // Check if the string value contains spaces and quote it if necessary\n const stringValue = String(val);\n if (stringValue.includes(' ')) {\n args.push(`--${name}`, `\"${stringValue}\"`);\n } else {\n args.push(`--${name}`, stringValue);\n }\n }\n });\n\n return args;\n }\n\n private registerToolForCommand(server: McpServer, cmd: Command, parentCmd?: Command) {\n const cmdName = parentCmd ? `${getCommandName(parentCmd)} ${getCommandName(cmd)}` : getCommandName(cmd);\n\n // replace white spaces (\\s) and dashes (-) with underscores (_)\n const toolName = `bit_${cmdName}`.replace(/[-\\s]/g, '_');\n const description = `${cmd.description}${cmd.extendedDescription ? `.\\n(${cmd.extendedDescription})` : ''}`;\n const config: CommandConfig = {\n name: cmdName,\n description,\n argsData: getArgsData(cmd),\n flagsData: getFlagsData(cmd),\n };\n\n const schema = this.buildZodSchema(config);\n\n server.tool(toolName, config.description, schema, async (params: any) => {\n const argsToRun = this.buildCommandArgs(config, params);\n return this.runBit(argsToRun, params.cwd);\n });\n }\n\n private processSubCommands(server: McpServer, parentCmd: Command, options: CommandFilterOptions) {\n const parentCmdName = getCommandName(parentCmd);\n\n parentCmd.commands?.forEach((subCmd) => {\n const subCmdName = getCommandName(subCmd);\n const fullCmdName = `${parentCmdName} ${subCmdName}`;\n\n if (this.shouldIncludeCommand(fullCmdName, options)) {\n this.registerToolForCommand(server, subCmd, parentCmd);\n }\n });\n }\n\n private async runBit(args: string[], cwd: string): Promise<CallToolResult> {\n this.logger.debug(`[MCP-DEBUG] Running: ${this.bitBin} ${args.join(' ')} in ${cwd}`);\n const cmd = `${this.bitBin} ${args.join(' ')}`;\n try {\n const cmdOutput = childProcess.execSync(cmd, { cwd });\n this.logger.debug(`[MCP-DEBUG] result. stdout: ${cmdOutput}`);\n\n return { content: [{ type: 'text', text: cmdOutput.toString() }] };\n } catch (error: any) {\n this.logger.error(`[MCP-DEBUG] Error executing ${cmd}`, error);\n\n return { content: [{ type: 'text', text: error.message }] };\n }\n }\n\n static slots = [];\n static dependencies = [CLIAspect, LoggerAspect];\n static runtime = MainRuntime;\n static async provider([cli, loggerMain]: [CLIMain, LoggerMain]) {\n const logger = loggerMain.createLogger(CliMcpServerAspect.id);\n const mcpServer = new CliMcpServerMain(cli, logger);\n cli.register(new McpServerCmd(mcpServer));\n return mcpServer;\n }\n}\n\nCliMcpServerAspect.addRuntime(CliMcpServerMain);\n\nexport default CliMcpServerMain;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/mcp-server.cmd.d.ts
CHANGED
package/dist/mcp-server.cmd.js
CHANGED
|
@@ -15,7 +15,7 @@ class McpServerCmd {
|
|
|
15
15
|
_defineProperty(this, "alias", '');
|
|
16
16
|
_defineProperty(this, "group", 'development');
|
|
17
17
|
_defineProperty(this, "loader", false);
|
|
18
|
-
_defineProperty(this, "options", [['e', 'extended', 'Enable the full set of Bit CLI commands as MCP tools'], ['', 'include-only <commands>', 'Specify a subset of commands to expose as MCP tools. Use comma-separated list in quotes, e.g. "status,install,compile"'], ['', 'include-additional <commands>', 'Add specific commands to the default MCP tools set. Use comma-separated list in quotes. Only applies when --extended is not used'], ['', 'exclude <commands>', 'Prevent specific commands from being exposed as MCP tools. Use comma-separated list in quotes']]);
|
|
18
|
+
_defineProperty(this, "options", [['e', 'extended', 'Enable the full set of Bit CLI commands as MCP tools'], ['', 'include-only <commands>', 'Specify a subset of commands to expose as MCP tools. Use comma-separated list in quotes, e.g. "status,install,compile"'], ['', 'include-additional <commands>', 'Add specific commands to the default MCP tools set. Use comma-separated list in quotes. Only applies when --extended is not used'], ['', 'exclude <commands>', 'Prevent specific commands from being exposed as MCP tools. Use comma-separated list in quotes'], ['', 'bit-bin <binary>', 'Specify the binary to use for running Bit commands (default: "bit")']]);
|
|
19
19
|
}
|
|
20
20
|
async wait(args, flags) {
|
|
21
21
|
await this.mcpServer.runMcpServer(flags);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["McpServerCmd","constructor","mcpServer","_defineProperty","wait","args","flags","runMcpServer","exports"],"sources":["mcp-server.cmd.ts"],"sourcesContent":["import { CLIArgs, Command, CommandOptions } from '@teambit/cli';\nimport { CliMcpServerMain } from './cli-mcp-server.main.runtime';\n\nexport type McpServerCmdOptions = {\n extended?: boolean;\n includeOnly?: string;\n includeAdditional?: string;\n exclude?: string;\n};\n\nexport class McpServerCmd implements Command {\n name = 'mcp-server';\n description = 'Start the Bit CLI Model Context Protocol (MCP) server for programmatic and remote access to Bit commands.';\n alias = '';\n group = 'development';\n loader = false;\n options = [\n ['e', 'extended', 'Enable the full set of Bit CLI commands as MCP tools'],\n ['' , 'include-only <commands>', 'Specify a subset of commands to expose as MCP tools. Use comma-separated list in quotes, e.g. \"status,install,compile\"'],\n ['', 'include-additional <commands>', 'Add specific commands to the default MCP tools set. Use comma-separated list in quotes. Only applies when --extended is not used'],\n ['', 'exclude <commands>', 'Prevent specific commands from being exposed as MCP tools. Use comma-separated list in quotes'],\n ] as CommandOptions;\n\n constructor(\n private mcpServer: CliMcpServerMain\n ) {}\n\n async wait(args: CLIArgs, flags: McpServerCmdOptions): Promise<void> {\n await this.mcpServer.runMcpServer(flags);\n }\n}\n"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"names":["McpServerCmd","constructor","mcpServer","_defineProperty","wait","args","flags","runMcpServer","exports"],"sources":["mcp-server.cmd.ts"],"sourcesContent":["import { CLIArgs, Command, CommandOptions } from '@teambit/cli';\nimport { CliMcpServerMain } from './cli-mcp-server.main.runtime';\n\nexport type McpServerCmdOptions = {\n extended?: boolean;\n includeOnly?: string;\n includeAdditional?: string;\n exclude?: string;\n bitBin?: string;\n};\n\nexport class McpServerCmd implements Command {\n name = 'mcp-server';\n description = 'Start the Bit CLI Model Context Protocol (MCP) server for programmatic and remote access to Bit commands.';\n alias = '';\n group = 'development';\n loader = false;\n options = [\n ['e', 'extended', 'Enable the full set of Bit CLI commands as MCP tools'],\n ['' , 'include-only <commands>', 'Specify a subset of commands to expose as MCP tools. Use comma-separated list in quotes, e.g. \"status,install,compile\"'],\n ['', 'include-additional <commands>', 'Add specific commands to the default MCP tools set. Use comma-separated list in quotes. Only applies when --extended is not used'],\n ['', 'exclude <commands>', 'Prevent specific commands from being exposed as MCP tools. Use comma-separated list in quotes'],\n ['', 'bit-bin <binary>', 'Specify the binary to use for running Bit commands (default: \"bit\")'],\n ] as CommandOptions;\n\n constructor(\n private mcpServer: CliMcpServerMain\n ) {}\n\n async wait(args: CLIArgs, flags: McpServerCmdOptions): Promise<void> {\n await this.mcpServer.runMcpServer(flags);\n }\n}\n"],"mappings":";;;;;;;;;AAWO,MAAMA,YAAY,CAAoB;EAc3CC,WAAWA,CACDC,SAA2B,EACnC;IAAA,KADQA,SAA2B,GAA3BA,SAA2B;IAAAC,eAAA,eAd9B,YAAY;IAAAA,eAAA,sBACL,2GAA2G;IAAAA,eAAA,gBACjH,EAAE;IAAAA,eAAA,gBACF,aAAa;IAAAA,eAAA,iBACZ,KAAK;IAAAA,eAAA,kBACJ,CACR,CAAC,GAAG,EAAE,UAAU,EAAE,sDAAsD,CAAC,EACzE,CAAC,EAAE,EAAG,yBAAyB,EAAE,wHAAwH,CAAC,EAC1J,CAAC,EAAE,EAAE,+BAA+B,EAAE,kIAAkI,CAAC,EACzK,CAAC,EAAE,EAAE,oBAAoB,EAAE,+FAA+F,CAAC,EAC3H,CAAC,EAAE,EAAE,kBAAkB,EAAE,qEAAqE,CAAC,CAChG;EAIE;EAEH,MAAMC,IAAIA,CAACC,IAAa,EAAEC,KAA0B,EAAiB;IACnE,MAAM,IAAI,CAACJ,SAAS,CAACK,YAAY,CAACD,KAAK,CAAC;EAC1C;AACF;AAACE,OAAA,CAAAR,YAAA,GAAAA,YAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
;
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.mcp_cli-mcp-server@0.0.
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.mcp_cli-mcp-server@0.0.2/dist/README.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/cli-mcp-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"homepage": "https://bit.cloud/teambit/mcp/cli-mcp-server",
|
|
4
5
|
"main": "dist/index.js",
|
|
5
6
|
"componentId": {
|
|
7
|
+
"scope": "teambit.mcp",
|
|
6
8
|
"name": "cli-mcp-server",
|
|
7
|
-
"version": "0.0.
|
|
8
|
-
"scope": "teambit.mcp"
|
|
9
|
+
"version": "0.0.2"
|
|
9
10
|
},
|
|
10
11
|
"dependencies": {
|
|
11
12
|
"zod": "^3.24.4",
|