Zum Hauptinhalt springen
Übersetzte Seite

Diese Seite wurde mit KI-Unterstützung aus dem Englischen übersetzt. Bei Abweichungen ist die englische Version maßgeblich.

Go

Betten Sie den StackQL-MCP-Server in eine kompilierte Go-Anwendung ein, entweder als heruntergeladenes Sidecar oder per Vendoring mit go:embed in Ihre Binärdatei eingebunden. Der Client ist das offizielle Go MCP SDK.

info

Die eingebettete Binärdatei wird beim ersten Start heruntergeladen und per sha256 verifiziert oder per Vendoring in Ihre App eingebunden. Siehe den gemeinsamen Vertrag.


Installation​

go get github.com/stackql/stackql-mcp-go

Schnellstart​

import (
"context"
"github.com/modelcontextprotocol/go-sdk/mcp"
stackqlmcp "github.com/stackql/stackql-mcp-go/embed"
)

func main() {
ctx := context.Background()
client, err := stackqlmcp.StartServer(ctx, stackqlmcp.Options{
Binary: StackqlMCPBinary(),
})
if err != nil {
// handle error
}
defer client.Close()

res, err := client.Session.CallTool(ctx, &mcp.CallToolParams{
Name: "run_select_query",
Arguments: map[string]any{"sql": "SELECT name FROM google.compute.regions WHERE project = 'my-project'"},
})
_ = res
}

Die API ist StartServer(ctx, Options{Binary, Mode}); der zurückgegebene Client stammt aus dem offiziellen Go MCP SDK.


Modi​

Der Server startet standardmäßig im read_only-Modus. Setzen Sie Options.Mode, um auf safe, delete_safe oder full_access zu eskalieren. Die Eskalation ist explizit - der Server aktiviert keine Mutations- oder Lifecycle-Tools, sofern Sie sich nicht ausdrücklich dafür entscheiden.


Vendoring / Einbetten​

Binden Sie die Binärdatei per Vendoring mit go:embed über einen go:generate-Fetch-Schritt ein; so entsteht eine einzelne eigenständige ausführbare Datei:

//go:generate go run github.com/stackql/stackql-mcp-go/cmd/stackql-mcp-fetch -platform auto -package main

Der Fetch-Schritt lädt die signierte Binärdatei für die Zielplattform herunter, verifiziert sie per sha256 und legt sie dort ab, wo go:embed sie in Ihren Build aufnehmen kann. Zur Laufzeit gibt StackqlMCPBinary() die eingebettete Binärdatei zurück, sodass kein Download beim ersten Start nötig ist.


Demo-App​

sandboxctl ist ein Infrastruktur-Concierge: ein eingebetteter Server plus eine Claude-Agentenschleife in einer Binärdatei, die kurzlebige Cloud-Sandboxes plant, auf Kosten prüft und hinter einem Freigabe-Gate bereitstellt.


github.com/stackql/stackql-mcp-go