create_flag
Generate and configure feature flags in Flipt MCP Server by defining namespace, key, name, and type (Boolean or Variant) to manage application behavior dynamically.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | ||
| enabled | No | ||
| key | Yes | ||
| name | Yes | ||
| namespaceKey | Yes | ||
| type | Yes |
Implementation Reference
- src/index.ts:234-278 (registration)Registers the 'create_flag' MCP tool with input schema and execution handler using McpServer.tool()server.tool( 'create_flag', { namespaceKey: z.string().min(1), key: z.string().min(1), name: z.string().min(1), description: z.string().optional(), enabled: z.boolean().optional(), type: z.enum(['VARIANT_FLAG_TYPE', 'BOOLEAN_FLAG_TYPE']), }, async args => { try { const flag = await fliptClient.createFlag( args.namespaceKey, args.key, args.name, args.description, args.enabled, args.type ); return { content: [ { type: 'text', text: JSON.stringify(flag, null, 2), }, ], _meta: { uri: `flipt://namespaces/${args.namespaceKey}/flags/${args.key}`, }, }; } catch (error: any) { console.error('Error creating flag:', error); return { content: [ { type: 'text', text: `Failed to create flag: ${error.message}`, }, ], isError: true, }; } } );
- src/index.ts:244-277 (handler)Handler function that executes the create_flag tool: validates args (via schema), calls fliptClient.createFlag, formats response or error for MCPasync args => { try { const flag = await fliptClient.createFlag( args.namespaceKey, args.key, args.name, args.description, args.enabled, args.type ); return { content: [ { type: 'text', text: JSON.stringify(flag, null, 2), }, ], _meta: { uri: `flipt://namespaces/${args.namespaceKey}/flags/${args.key}`, }, }; } catch (error: any) { console.error('Error creating flag:', error); return { content: [ { type: 'text', text: `Failed to create flag: ${error.message}`, }, ], isError: true, }; } }
- src/index.ts:236-242 (schema)Zod schema defining input parameters for the create_flag tool{ namespaceKey: z.string().min(1), key: z.string().min(1), name: z.string().min(1), description: z.string().optional(), enabled: z.boolean().optional(), type: z.enum(['VARIANT_FLAG_TYPE', 'BOOLEAN_FLAG_TYPE']),
- src/services/fliptClient.ts:134-160 (helper)FliptClient.createFlag helper method: maps tool type to API enum and calls generated FlagsServiceApi.createFlag to create the flag in Fliptasync createFlag( namespaceKey: string, key: string, name: string, description?: string, enabled?: boolean, type?: string ) { try { const flagType = type === 'VARIANT_FLAG_TYPE' ? CreateFlagRequestTypeEnum.VariantFlagType : CreateFlagRequestTypeEnum.BooleanFlagType; const response = await this.flagsApi.createFlag(namespaceKey, { key, name, description, enabled: enabled ?? true, type: flagType, }); return response; } catch (error) { console.error('Error creating flag:', error); throw error; } }