Skip to main content
Glama
flipt-io

Flipt MCP Server

Official
by flipt-io

update_flag

Modify feature flag properties such as name, description, and enabled status for targeted updates within the Flipt MCP Server system.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
descriptionNo
enabledNo
keyYes
nameYes
namespaceKeyYes

Implementation Reference

  • Primary handler and registration for the 'update_flag' MCP tool. Validates input with Zod schema, fetches current flag, applies updates, calls FliptClient.updateFlag, and returns formatted response.
    server.tool( 'update_flag', { namespaceKey: z.string().min(1), key: z.string().min(1), name: z.string().min(1), description: z.string().optional(), enabled: z.boolean().optional(), }, async args => { try { const currentFlag = await fliptClient.getFlag(args.namespaceKey, args.key); if (!currentFlag) { return { content: [ { type: 'text', text: `Flag ${args.key} in namespace ${args.namespaceKey} not found`, }, ], isError: true, }; } // update changed fields const updatedFlag = { ...currentFlag, name: args.name || currentFlag.name, description: args.description || currentFlag.description, enabled: args.enabled || currentFlag.enabled, }; const flag = await fliptClient.updateFlag( currentFlag.namespaceKey!, currentFlag.key!, updatedFlag.name!, updatedFlag.description, updatedFlag.enabled ); 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 updating flag:', error); return { content: [ { type: 'text', text: `Failed to update flag: ${error.message}`, }, ], isError: true, }; } } );
  • Zod input schema for the update_flag tool parameters.
    { namespaceKey: z.string().min(1), key: z.string().min(1), name: z.string().min(1), description: z.string().optional(), enabled: z.boolean().optional(), },
  • FliptClient helper method that wraps the generated FlagsServiceApi.updateFlag to perform the actual flag update via Flipt API.
    async updateFlag( namespaceKey: string, key: string, name: string, description?: string, enabled?: boolean ) { try { const response = await this.flagsApi.updateFlag(namespaceKey, key, { name, description, enabled, }); return response; } catch (error) { console.error('Error updating flag:', error); throw error; } }
  • Alternative handler implementation in ToolHandlers class (possibly unused), which directly calls FliptClient.updateFlag.
    async handleUpdateFlag({ namespaceKey, key, name, description, enabled, }: { namespaceKey: string; key: string; name: string; description?: string; enabled?: boolean; }) { try { const flag = await this.fliptClient.updateFlag(namespaceKey, key, name, description, enabled); return { content: [ { type: 'text', text: `Successfully updated flag: ${JSON.stringify(flag, null, 2)}`, }, ], }; } catch (error) { console.error(`Error updating flag ${key} in namespace ${namespaceKey}:`, error); return { content: [ { type: 'text', text: `Error updating flag ${key} in namespace ${namespaceKey}: ${error}`, }, ], isError: true, }; } }
  • Generated TypeScript interface for UpdateFlagRequest used by the Flipt API client.
    /** * api * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * OpenAPI spec version: 1.47.0 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { HttpFile } from '../http/http'; export class UpdateFlagRequest { 'key'?: string; 'name': string; 'description'?: string; 'enabled'?: boolean; 'namespaceKey'?: string; 'defaultVariantId'?: string; 'metadata'?: any; 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": "key", "baseName": "key", "type": "string", "format": "" }, { "name": "name", "baseName": "name", "type": "string", "format": "" }, { "name": "description", "baseName": "description", "type": "string", "format": "" }, { "name": "enabled", "baseName": "enabled", "type": "boolean",

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