create_constraint
Define custom constraints for feature flag segments in Flipt MCP Server by specifying type, property, operator, and value to control targeted evaluations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | ||
| namespaceKey | Yes | ||
| operator | Yes | ||
| property | Yes | ||
| segmentKey | Yes | ||
| type | Yes | ||
| value | No |
Implementation Reference
- src/index.ts:774-806 (handler)MCP tool handler for 'create_constraint': calls fliptClient.createConstraint with args, returns JSON stringified response or error message.async args => { try { const response = await fliptClient.createConstraint( args.namespaceKey, args.segmentKey, args.type, args.property, args.operator, args.value, args.description ); return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), }, ], }; } catch (error: any) { console.error('Error creating constraint:', error); return { content: [ { type: 'text', text: `Failed to create constraint: ${error.message}`, }, ], isError: true, }; } }
- src/index.ts:759-773 (schema)Zod input schema for the 'create_constraint' tool parameters.{ namespaceKey: z.string().min(1), segmentKey: z.string().min(1), type: z.enum([ 'STRING_COMPARISON_TYPE', 'NUMBER_COMPARISON_TYPE', 'BOOLEAN_COMPARISON_TYPE', 'DATETIME_COMPARISON_TYPE', 'ENTITY_ID_COMPARISON_TYPE', ]), property: z.string().min(1), operator: z.string().min(1), value: z.string().optional(), description: z.string().optional(), },
- src/index.ts:757-808 (registration)Registration of the 'create_constraint' MCP tool with server.tool including schema and inline handler.server.tool( 'create_constraint', { namespaceKey: z.string().min(1), segmentKey: z.string().min(1), type: z.enum([ 'STRING_COMPARISON_TYPE', 'NUMBER_COMPARISON_TYPE', 'BOOLEAN_COMPARISON_TYPE', 'DATETIME_COMPARISON_TYPE', 'ENTITY_ID_COMPARISON_TYPE', ]), property: z.string().min(1), operator: z.string().min(1), value: z.string().optional(), description: z.string().optional(), }, async args => { try { const response = await fliptClient.createConstraint( args.namespaceKey, args.segmentKey, args.type, args.property, args.operator, args.value, args.description ); return { content: [ { type: 'text', text: JSON.stringify(response, null, 2), }, ], }; } catch (error: any) { console.error('Error creating constraint:', error); return { content: [ { type: 'text', text: `Failed to create constraint: ${error.message}`, }, ], isError: true, }; } } );
- src/services/fliptClient.ts:469-491 (helper)Helper method in FliptClient wrapper that invokes the generated API constraintsApi.createConstraint.async createConstraint( namespaceKey: string, segmentKey: string, type: string, property: string, operator: string, value?: string, description?: string ) { try { const response = await this.constraintsApi.createConstraint(namespaceKey, segmentKey, { type: type as any, // Using 'any' to handle the enum conversion property, operator, value, description, }); return response; } catch (error) { console.error('Error creating constraint:', error); throw error; } }