Skip to main content
Glama
flipt-io

Flipt MCP Server

Official
by flipt-io

create_rule

Define and configure rules for feature flags within a namespace, specifying segment keys, operators, and ranks to control flag evaluations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
flagKeyYes
namespaceKeyYes
rankNo
segmentKeyYes
segmentOperatorNo

Implementation Reference

  • MCP tool registration, input schema (Zod), and handler implementation for 'create_rule'. Calls fliptClient.createRule and formats response.
    server.tool(
      'create_rule',
      {
        namespaceKey: z.string().min(1),
        flagKey: z.string().min(1),
        segmentKey: z.string().min(1),
        rank: z.number().int().optional(),
        segmentOperator: z.enum(['OR_SEGMENT_OPERATOR', 'AND_SEGMENT_OPERATOR']).optional(),
      },
      async args => {
        try {
          const response = await fliptClient.createRule(
            args.namespaceKey,
            args.flagKey,
            args.segmentKey,
            args.rank,
            args.segmentOperator
          );
    
          return {
            content: [
              {
                type: 'text',
                text: JSON.stringify(response, null, 2),
              },
            ],
          };
        } catch (error: any) {
          console.error('Error creating rule:', error);
          return {
            content: [
              {
                type: 'text',
                text: `Failed to create rule: ${error.message}`,
              },
            ],
            isError: true,
          };
        }
      }
    );
  • FliptClient helper method that invokes the generated RulesServiceApi.createRule with mapped parameters.
    async createRule(
      namespaceKey: string,
      flagKey: string,
      segmentKey: string,
      rank?: number,
      segmentOperator?: string
    ) {
      try {
        const response = await this.rulesApi.createRule(namespaceKey, flagKey, {
          segmentKey,
          rank: rank || 1,
          segmentOperator: (segmentOperator as any) || 'OR_SEGMENT_OPERATOR',
        });
        return response;
      } catch (error) {
        console.error('Error creating rule:', error);
        throw error;
      }
    }
  • Generated TypeScript model for the CreateRuleRequest used in the Flipt API calls.
    export class CreateRuleRequest {
        'flagKey'?: string;
        'segmentKey'?: string;
        'rank': number;
        'namespaceKey'?: string;
        'segmentKeys'?: Array<string>;
        'segmentOperator'?: CreateRuleRequestSegmentOperatorEnum;
    
        static readonly discriminator: string | undefined = undefined;
    
        static readonly mapping: {[index: string]: string} | undefined = undefined;
    
        static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
            {
                "name": "flagKey",
                "baseName": "flagKey",
                "type": "string",
                "format": ""
            },
            {
                "name": "segmentKey",
                "baseName": "segmentKey",
                "type": "string",
                "format": ""
            },
            {
                "name": "rank",
                "baseName": "rank",
                "type": "number",
                "format": "int32"
            },
            {
                "name": "namespaceKey",
                "baseName": "namespaceKey",
                "type": "string",
                "format": ""
            },
            {
                "name": "segmentKeys",
                "baseName": "segmentKeys",
                "type": "Array<string>",
                "format": ""
            },
            {
                "name": "segmentOperator",
                "baseName": "segmentOperator",
                "type": "CreateRuleRequestSegmentOperatorEnum",
                "format": "enum"
            }    ];
    
        static getAttributeTypeMap() {
            return CreateRuleRequest.attributeTypeMap;
        }
    
        public constructor() {
        }
    }
    
    export enum CreateRuleRequestSegmentOperatorEnum {
        OrSegmentOperator = 'OR_SEGMENT_OPERATOR',
        AndSegmentOperator = 'AND_SEGMENT_OPERATOR'
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flipt-io/mcp-server-flipt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server