MCP 服务器 Go 实现

MCP 服务器 Go 实现

Go 语言实现的模型上下文协议 (MCP),用于连接 LLM 应用与外部数据源和工具。

快速入门

  1. 安装依赖:

    go get github.com/shaneholloman/mcp-server-go
    
  2. 创建一个简单的 MCP 服务器:

    package main
    
    import (
        "context"
        "fmt"
        "github.com/shaneholloman/mcp-server-go/mcp"
        "github.com/shaneholloman/mcp-server-go/server"
    )
    
    func main() {
        s := server.NewMCPServer("Demo", "1.0.0")
    
        tool := mcp.NewTool("hello_world",
            mcp.WithDescription("向某人问好"),
            mcp.WithString("name",
                mcp.Required(),
                mcp.Description("要问候的人的名字"),
            ),
        )
    
        s.AddTool(tool, helloHandler)
    
        if err := server.ServeStdio(s); err != nil {
            fmt.Printf("Server error: %v\n", err)
        }
    }
    
    func helloHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
        name, ok := request.Params.Arguments["name"].(string)
        if !ok {
            return mcp.NewToolResultError("名字必须是字符串"), nil
        }
    
        return mcp.NewToolResultText(fmt.Sprintf("Hello, %s!", name)), nil
    }
    
  3. 运行程序,启动服务器。

更多示例见 examples 目录