Skip to main content
Glama

CentralMind/Gateway

init.go2.02 kB
package connectors import ( "context" "github.com/centralmind/gateway/model" "github.com/centralmind/gateway/remapper" "golang.org/x/xerrors" ) type Config interface { Type() string Doc() string ExtraPrompt() []string Readonly() bool } type Connector interface { Ping(ctx context.Context) error Query(ctx context.Context, endpoint model.Endpoint, params map[string]any) ([]map[string]any, error) Discovery(ctx context.Context, tablesList []string) ([]model.Table, error) Sample(ctx context.Context, table model.Table) ([]map[string]any, error) InferQuery(ctx context.Context, query string) ([]model.ColumnSchema, error) Config() Config } var interceptors = map[string]func(any) (Connector, error){} var configs = map[string]Config{} func Register[TConfig Config](f func(cfg TConfig) (Connector, error)) { var t TConfig interceptors[t.Type()] = func(a any) (Connector, error) { cfg, err := remapper.Remap[TConfig](a) if err != nil { return nil, xerrors.Errorf("unable to remap: %w", err) } return f(cfg) } configs[t.Type()] = t } // RegisterAlias registers additional names for an existing connector type func RegisterAlias(typ string, aliases ...string) { f, ok := interceptors[typ] if !ok { return } cfg, ok := configs[typ] if !ok { return } for _, alias := range aliases { interceptors[alias] = f configs[alias] = cfg } } // KnownConnectors returns a list of all registered connector configurations func KnownConnectors() []Config { result := make([]Config, 0, len(configs)) for _, cfg := range configs { result = append(result, cfg) } return result } func KnownConnector(key string) (Config, bool) { cfg, ok := configs[key] return cfg, ok } func New(tag string, config any) (Connector, error) { // Note: Environment variable expansion is now handled at the model level // in model/model.go, so we no longer need to do it here f, ok := interceptors[tag] if !ok { return nil, xerrors.Errorf("connector: %s not found", tag) } return f(config) }

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