create_variant
Generate variants for feature flags in Flipt MCP Server by specifying namespace, flag, and key details, enabling dynamic feature management.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| attachment | No | ||
| description | No | ||
| flagKey | Yes | ||
| key | Yes | ||
| name | No | ||
| namespaceKey | Yes |
Implementation Reference
- src/index.ts:855-886 (handler)The main handler function for the MCP 'create_variant' tool. It processes the input arguments, calls the Flipt client to create the variant, and returns a formatted response or error message.try { const response = await fliptClient.createVariant( args.namespaceKey, args.flagKey, args.key, args.name, args.description, args.attachment ); return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), }, ], }; } catch (error: any) { console.error('Error creating variant:', error); return { content: [ { type: 'text', text: `Failed to create variant: ${error.message}`, }, ], isError: true, }; } } );
- src/index.ts:846-854 (schema)Zod schema for input validation of the 'create_variant' tool parameters: namespaceKey, flagKey, key, name, description, attachment.{ namespaceKey: z.string().min(1), flagKey: z.string().min(1), key: z.string().min(1), name: z.string().optional(), description: z.string().optional(), attachment: z.string().optional(), }, async args => {
- src/index.ts:844-886 (registration)Registration of the 'create_variant' MCP tool using server.tool with name, input schema, and handler function.server.tool( 'create_variant', { namespaceKey: z.string().min(1), flagKey: z.string().min(1), key: z.string().min(1), name: z.string().optional(), description: z.string().optional(), attachment: z.string().optional(), }, async args => { try { const response = await fliptClient.createVariant( args.namespaceKey, args.flagKey, args.key, args.name, args.description, args.attachment ); return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), }, ], }; } catch (error: any) { console.error('Error creating variant:', error); return { content: [ { type: 'text', text: `Failed to create variant: ${error.message}`, }, ], isError: true, }; } } );
- src/services/fliptClient.ts:530-550 (helper)Helper method in FliptClient class that wraps the generated API call to create a variant, handling defaults and errors.async createVariant( namespaceKey: string, flagKey: string, key: string, name?: string, description?: string, attachment?: string ) { try { const response = await this.variantsApi.createVariant(namespaceKey, flagKey, { key, name: name || key, description, attachment, }); return response; } catch (error) { console.error('Error creating variant:', error); throw error; } }