Skip to main content
Glama

Slack MCP

MIT License
696
  • Apple
  • Linux
ngrok.go968 B
package util import ( "context" "fmt" "net/url" "os" "golang.ngrok.com/ngrok/v2" ) type Forwarding struct { URL *url.URL Shutdown func() } func SetupForwarding(parentCtx context.Context, to string) (*Forwarding, error) { authToken := os.Getenv("NGROK_AUTH_TOKEN") if authToken == "" { return nil, fmt.Errorf("NGROK_AUTH_TOKEN not set") } ctx, cancel := context.WithCancel(parentCtx) agent, err := ngrok.NewAgent( ngrok.WithAuthtoken(authToken), ngrok.WithAutoConnect(false), ) if err != nil { cancel() return nil, fmt.Errorf("ngrok.NewAgent failed: %w", err) } err = agent.Connect(ctx) if err != nil { cancel() return nil, fmt.Errorf("ngrok.Connect failed: %w", err) } fwd, err := agent.Forward(ctx, ngrok.WithUpstream(to), ) if err != nil { cancel() return nil, fmt.Errorf("ngrok.Forward failed: %w", err) } return &Forwarding{ URL: fwd.URL(), Shutdown: func() { cancel() <-fwd.Done() }, }, nil }

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/korotovsky/slack-mcp-server'

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