Skip to main content
Glama

CentralMind/Gateway

plugin.go1.5 kB
package api_keys import ( _ "embed" "github.com/danielgtaylor/huma/v2" "github.com/centralmind/gateway/connectors" "github.com/centralmind/gateway/plugins" ) //go:embed README.md var docString string func init() { plugins.Register(New) } type PluginBundle interface { plugins.Wrapper plugins.Swaggerer } func New(cfg Config) (PluginBundle, error) { return &Plugin{ config: cfg, }, nil } type Plugin struct { config Config } func MaybeSetSecurity(op *huma.Operation, name string) *huma.Operation { if op == nil { return op } op.Security = []map[string][]string{ { name: []string{}, }, } return op } func (p Plugin) Enrich(swag *huma.OpenAPI) *huma.OpenAPI { securityName := "BearerAuth" if swag.Components.SecuritySchemes == nil { swag.Components.SecuritySchemes = map[string]*huma.SecurityScheme{} } swag.Components.SecuritySchemes[securityName] = &huma.SecurityScheme{ Type: "apiKey", In: p.config.Location, Name: p.config.Name, } for _, v := range swag.Paths { v.Get = MaybeSetSecurity(v.Get, securityName) v.Delete = MaybeSetSecurity(v.Delete, securityName) v.Post = MaybeSetSecurity(v.Post, securityName) v.Put = MaybeSetSecurity(v.Put, securityName) v.Patch = MaybeSetSecurity(v.Patch, securityName) } return swag } func (p Plugin) Wrap(connector connectors.Connector) (connectors.Connector, error) { return &Connector{ Connector: connector, config: p.config, }, nil } func (p Plugin) Doc() string { return docString }

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/centralmind/gateway'

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