package main

import (
"context"
"errors"
"fmt"

"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"

)

func main() {
// Create MCP server
s := server.NewMCPServer(
"Demo 🚀",
"1.0.0",
)

// Add tool
planTool := mcp.NewTool("createMcp", //mcp名称
	mcp.WithDescription("MCP功能描述,如可以用于查询场次详情"),
	mcp.WithString("param1", //,mcp接收字段
		mcp.Required(),
		mcp.Description("mcp接收字段的描述"),
	),
	mcp.WithString("param2", //,mcp接收字段
		mcp.Required(),
		mcp.Description("mcp接收字段的描述"),
	),
)

s.AddTool(planTool, createMcpHandler) //,mcp处理函数

// Start the stdio server
if err := server.ServeStdio(s); err != nil {
	fmt.Printf("Server error: %v\n", err)
}

}

func createMcpHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
param1, ok := request.Params.Arguments["param1"].(string)
if !ok {
return nil, errors.New("param1 must be a string")
}
param2, ok := request.Params.Arguments["param2"].(string)
if !ok {
return nil, errors.New("param2 must be a string")
}

return mcp.NewToolResultText(fmt.Sprintf("接收的参数: param1: %s, param2: %s", param1, param2)), nil

}

作者:admin  创建时间:2025-04-17 21:26
最后编辑:admin  更新时间:2025-04-17 21:26
上一篇:
下一篇: