Saltar al contenido principal
Página traducida

Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.

Go

Integre el servidor MCP de StackQL en una aplicación Go compilada, ya sea como un sidecar descargado o incorporado a su binario mediante vendoring con go:embed. El cliente es el SDK oficial de MCP para Go.

información

El binario integrado se descarga y se verifica con sha256 en la primera ejecución, o se incorpora a su aplicación mediante vendoring. Consulte el contrato común.


Instalación​

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

Inicio rápido​

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
}

La API es StartServer(ctx, Options{Binary, Mode}); el cliente devuelto procede del SDK oficial de MCP para Go.


Modos​

El servidor se inicia en modo read_only de forma predeterminada. Establezca Options.Mode para elevar el modo a safe, delete_safe o full_access. La elevación de modo es explícita - el servidor no habilita las herramientas de mutación ni las de ciclo de vida a menos que usted las active explícitamente.


Vendoring / integración​

Incorpore el binario mediante vendoring con go:embed a través de un paso de obtención con go:generate, lo que produce un único ejecutable autónomo:

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

El paso de obtención descarga el binario firmado para la plataforma de destino, lo verifica con sha256 y después lo escribe donde go:embed puede incorporarlo a su build. En tiempo de ejecución, StackqlMCPBinary() devuelve el binario integrado, de modo que no hay descarga en la primera ejecución.


Aplicación de demostración​

sandboxctl es un asistente de infraestructura: un servidor integrado más un bucle de agente de Claude en un solo binario que planifica, comprueba el costo y aprovisiona entornos sandbox efímeros en la nube tras un control de aprobación.


github.com/stackql/stackql-mcp-go