登录
首页 >  Golang >  Go教程

使用 go 为法学硕士编写工具 - mcp-golang

来源:dev.to

时间:2024-12-20 22:49:04 256浏览 收藏

一分耕耘,一分收获!既然都打开这篇《使用 go 为法学硕士编写工具 - mcp-golang》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

使用 go 为法学硕士编写工具 - mcp-golang

我们刚刚开源了 mcp-golang!

几周前,anthropic 发布了模型上下文协议 - 一个允许法学硕士使用工具并与世界互动的协议。

anthropic 编写的基础 sdks 是针对 typescript 和 python 的,所以如果你想使用 go,那你就不走运了。

使用 mcp-golang,您现在只需几行代码即可在 go 中编写工具服务器。

下面的服务器允许法学硕士了解任何地点的天气。

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&current=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
}

查看演示https://youtu.be/kfflqcgvvde!

编码愉快!

好了,本文到此结束,带大家了解了《使用 go 为法学硕士编写工具 - mcp-golang》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>