Skip to main content
Glama

CentralMind/Gateway

config.go2.59 kB
package sqlite import ( _ "embed" "fmt" "path/filepath" "gopkg.in/yaml.v3" ) //go:embed readme.md var docString string // Config represents the configuration for a SQLite connection type Config struct { Hosts []string `json:"hosts" yaml:"hosts"` // List of database file paths Database string `json:"database" yaml:"database"` // Database file name ReadOnly bool `json:"read_only" yaml:"read_only"` // Whether to open database in read-only mode Memory bool `json:"memory" yaml:"memory"` // Whether to create an in-memory database ConnString string `json:"conn_string" yaml:"conn_string"` // Direct connection string } func (c Config) Readonly() bool { return c.ReadOnly } // UnmarshalYAML implements the yaml.Unmarshaler interface func (c *Config) UnmarshalYAML(value *yaml.Node) error { // Try to unmarshal as a string (connection string) var connString string if err := value.Decode(&connString); err == nil && len(connString) > 0 { c.ConnString = connString return nil } // If that didn't work, try to unmarshal as a full config object type configAlias Config var alias configAlias if err := value.Decode(&alias); err != nil { return err } *c = Config(alias) return nil } // ConnectionString generates a connection string for SQLite func (c Config) ConnectionString() string { // If direct connection string is provided, use it if c.ConnString != "" { return c.ConnString } // For in-memory database if c.Memory { return ":memory:" } // For file-based database dbPath := "" if len(c.Hosts) > 0 && c.Database != "" { // Combine the first host (path) with database name dbPath = filepath.Join(c.Hosts[0], c.Database) } else if len(c.Hosts) > 0 { // Use the first host as the full path dbPath = c.Hosts[0] } else if c.Database != "" { // Use just the database name as path dbPath = c.Database } return dbPath } // Validate checks if the configuration is valid func (c Config) Validate() error { if !c.Memory && len(c.Hosts) == 0 && c.Database == "" { return fmt.Errorf("either hosts/database path or memory mode must be specified") } return nil } // Type returns the type of the connector func (c Config) Type() string { return "sqlite" } // Doc returns documentation about the configuration func (c Config) Doc() string { return docString } // ExtraPrompt returns additional prompt information for the configuration func (c Config) ExtraPrompt() []string { return []string{ "Use symbol ':' instead of '@' for named parameters in sql query", } }

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