Skip to main content
Glama

CentralMind/Gateway

mcp.go2.47 kB
package cli import ( "context" "github.com/centralmind/gateway/connectors" "os" "path/filepath" "github.com/centralmind/gateway/logger" "github.com/centralmind/gateway/mcpgenerator" gw_model "github.com/centralmind/gateway/model" "github.com/spf13/cobra" "golang.org/x/xerrors" ) func Stdio(configPath *string) *cobra.Command { var logFile string var rawMode bool var dbDSN string res := &cobra.Command{ Use: "stdio", Short: "MCP gateway via std-io", Long: `Start the MCP (Message Communication Protocol) gateway using standard input/output. This command enables communication with AI agents through stdin/stdout streams, making it ideal for integration with other processes or tools that can communicate via standard streams. The MCP protocol provides structured message exchange optimized for AI agent interactions.`, Args: cobra.MatchAll(cobra.ExactArgs(0)), RunE: func(cmd *cobra.Command, args []string) error { var gw *gw_model.Config var err error if dbDSN != "" { // If DSN is provided, use it directly gw, err = gw_model.FromDSN(dbDSN) } else { // Otherwise load from config file gwRaw, err := os.ReadFile(*configPath) if err != nil { return xerrors.Errorf("unable to read yaml config file: %w", err) } gw, err = gw_model.FromYaml(gwRaw) if err != nil { return xerrors.Errorf("unable to parse config file: %w", err) } } srv, err := mcpgenerator.New(gw.Plugins) if err != nil { return xerrors.Errorf("unable to init mcp generator: %w", err) } connector, err := connectors.New(gw.Database.Type, gw.Database.Connection) if err != nil { return xerrors.Errorf("unable to init connector: %w", err) } if err := srv.SetConnector(connector); err != nil { return xerrors.Errorf("unable to set connector: %w", err) } if rawMode { srv.EnableRawProtocol() } allEndpoints := gw.Database.GetAllEndpoints() if len(allEndpoints) > 0 { srv.SetTools(allEndpoints) } return srv.ServeStdio().Listen(context.Background(), os.Stdin, os.Stdout) }, } res.Flags().BoolVar(&rawMode, "raw", true, "Enable raw protocol mode optimized for AI agents") res.Flags().StringVar(&logFile, "log-file", filepath.Join(logger.DefaultLogDir(), "mcp.log"), "Path to log file for MCP gateway operations") res.Flags().StringVarP(&dbDSN, "connection-string", "C", "", "Database connection string (DSN) for direct database connection") return res }

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