Skip to main content
Glama

Flipt MCP Server

Official
by flipt-io
auth.ts3.14 kB
import { RequestContext } from "../http/http"; /** * Interface authentication schemes. */ export interface SecurityAuthentication { /* * @return returns the name of the security authentication as specified in OAI */ getName(): string; /** * Applies the authentication scheme to the request context * * @params context the request context which should use this authentication scheme */ applySecurityAuthentication(context: RequestContext): void | Promise<void>; } export interface TokenProvider { getToken(): Promise<string> | string; } /** * Applies http authentication to the request context. */ export class BearerAuthAuthentication implements SecurityAuthentication { /** * Configures the http authentication with the required details. * * @param tokenProvider service that can provide the up-to-date token when needed */ public constructor(private tokenProvider: TokenProvider) {} public getName(): string { return "bearerAuth"; } public async applySecurityAuthentication(context: RequestContext) { context.setHeaderParam("Authorization", "Bearer " + await this.tokenProvider.getToken()); } } /** * Applies http authentication to the request context. */ export class JwtAuthAuthentication implements SecurityAuthentication { /** * Configures the http authentication with the required details. * * @param tokenProvider service that can provide the up-to-date token when needed */ public constructor(private tokenProvider: TokenProvider) {} public getName(): string { return "jwtAuth"; } public async applySecurityAuthentication(context: RequestContext) { context.setHeaderParam("Authorization", "JWT " + await this.tokenProvider.getToken()); } } export type AuthMethods = { "default"?: SecurityAuthentication, "bearerAuth"?: SecurityAuthentication, "jwtAuth"?: SecurityAuthentication } export type ApiKeyConfiguration = string; export type HttpBasicConfiguration = { "username": string, "password": string }; export type HttpBearerConfiguration = { tokenProvider: TokenProvider }; export type OAuth2Configuration = { accessToken: string }; export type HttpSignatureConfiguration = unknown; // TODO: Implement export type AuthMethodsConfiguration = { "default"?: SecurityAuthentication, "bearerAuth"?: HttpBearerConfiguration, "jwtAuth"?: HttpBearerConfiguration } /** * Creates the authentication methods from a swagger description. * */ export function configureAuthMethods(config: AuthMethodsConfiguration | undefined): AuthMethods { let authMethods: AuthMethods = {} if (!config) { return authMethods; } authMethods["default"] = config["default"] if (config["bearerAuth"]) { authMethods["bearerAuth"] = new BearerAuthAuthentication( config["bearerAuth"]["tokenProvider"] ); } if (config["jwtAuth"]) { authMethods["jwtAuth"] = new JwtAuthAuthentication( config["jwtAuth"]["tokenProvider"] ); } return authMethods; }

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