Go MCP服务器

基于官方go-sdk的可插拔Go MCP服务器,支持工具增量添加和最小化样板代码。适用于模型上下文协议相关开发。

  • by dhruvit-r
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 dhruvit-r/dhruvit-mcp

使用说明

dhruvit mcp

一个可插拔的Go-MCP(模型上下文协议)服务器,建立在官方 去sdk。工具以最小的样板增量添加。

添加工具

  1. 创建 tools/<name>/<name>.go 带着一个 Register 功能:
package mytool

import (
    "context"

    "github.com/modelcontextprotocol/go-sdk/mcp"
)

type Args struct {
    Input string `json:"input" jsonschema:"description of input"`
}

func Register(server *mcp.Server) {
    mcp.AddTool(server, &mcp.Tool{
        Name:        "my-tool",
        Description: "What this tool does",
    }, func(ctx context.Context, req *mcp.CallToolRequest, args Args) (*mcp.CallToolResult, any, error) {
        return &mcp.CallToolResult{
            Content: []mcp.Content{
                &mcp.TextContent{Text: "result"},
            },
        }, nil, nil
    })
}
  1. 导入并注册 main.go:
import "github.com/dhruvit-r/dhruvit-mcp/tools/mytool"

// inside main():
mytool.Register(server)

构建与运行

go build -o dhruvit-mcp .
./dhruvit-mcp

服务器启动于 :8080 默认情况下(启用流式HTTP /mcp).

码头工人

docker build -t dhruvit-mcp .
docker run -p 8080:8080 dhruvit-mcp

克劳德码(stdio模式)

添加到您的Claude Code MCP配置中:

{
  "mcpServers": {
    "dhruvit-mcp": {
      "command": "/path/to/dhruvit-mcp",
      "env": {
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

环境变量

变量 默认值 描述
MCP_ADDR :8080 HTTP传输的侦听地址
MCP_TRANSPORT http 设置为 stdio 用于stdio传输