Maison >développement back-end >Golang >Écrire des outils pour les LLM avec go - mcp-golang
Nous venons d'ouvrir mcp-golang !
Il y a quelques semaines, Anthropic a publié Model Context Protocol - un protocole permettant aux LLM d'utiliser des outils et d'interagir avec le monde.
Les SDK de base écrits par Anthropic étaient pour Typescript et Python, donc si vous vouliez utiliser go, vous n'aviez pas de chance.
Avec mcp-golang, vous pouvez désormais écrire des serveurs d'outils en seulement quelques lignes de code.
Le serveur ci-dessous permet à un LLM de comprendre la météo de n'importe quel endroit.
package main import ( "fmt" mcp_golang "github.com/metoro-io/mcp-golang" "github.com/metoro-io/mcp-golang/transport/stdio" "io" "net/http" ) type WeatherArguments struct { Longitude float64 `json:"longitude" jsonschema:"required,description=The longitude of the location to get the weather for"` Latitude float64 `json:"latitude" jsonschema:"required,description=The latitude of the location to get the weather for"` } // This is explained in the docs at https://mcpgolang.com/tools func main() { done := make(chan struct{}) server := mcp_golang.NewServer(stdio.NewStdioServerTransport()) err := server.RegisterTool("get_weather", "Get the weather forecast for temperature, wind speed and relative humidity", func(arguments WeatherArguments) (*mcp_golang.ToolResponse, error) { url := fmt.Sprintf("https://api.open-meteo.com/v1/forecast?latitude=%f&longitude=%f¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m", arguments.Latitude, arguments.Longitude) resp, err := http.Get(url) if err != nil { return nil, err } defer resp.Body.Close() output, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return mcp_golang.NewToolReponse(mcp_golang.NewTextContent(string(output))), nil }) err = server.Serve() if err != nil { panic(err) } <-done }
Découvrez une démo sur https://youtu.be/kffLqCgvvdE !
Bon codage !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!