| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package data
- import (
- "context"
- "fmt"
- "strconv"
- "github.com/mark3labs/mcp-go/mcp"
- "github.com/mark3labs/mcp-go/server"
- "fwh-toolbox-server/cmd/mcp/tools/helper"
- "fwh-toolbox-server/repositories"
- )
- func registerEmsparaTools(s *server.MCPServer) {
- s.AddTool(
- mcp.NewTool("data_emspara_vid_info",
- mcp.WithDescription("查询 EMS 参数 VID 信息(通过 VID ID 获取宏名和描述)"),
- mcp.WithString("id", mcp.Required(), mcp.Description("VID ID(数字)")),
- ),
- handleEmsparaVidInfo,
- )
- s.AddTool(
- mcp.NewTool("data_emspara_pid_info",
- mcp.WithDescription("查询 EMS 参数 PID 信息(通过 PID ID 获取宏名和描述)"),
- mcp.WithString("id", mcp.Required(), mcp.Description("PID ID(数字)")),
- ),
- handleEmsparaPidInfo,
- )
- }
- func handleEmsparaVidInfo(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
- idStr, err := req.RequireString("id")
- if err != nil {
- return helper.ParamError("id"), nil
- }
- id, err := strconv.ParseUint(idStr, 10, 64)
- if err != nil {
- return helper.ParamInvalidError("id", "必须是数字"), nil
- }
- name, desc, err := repositories.GetEmsparaVidInfo(uint(id))
- if err != nil {
- return helper.EmptyResult(fmt.Sprintf("未找到 VID %d 的信息: %v", id, err)), nil
- }
- return helper.JSONResultOrFileAuto(map[string]any{
- "id": id,
- "type": "VID",
- "macro_name": name,
- "description": desc,
- }), nil
- }
- func handleEmsparaPidInfo(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
- idStr, err := req.RequireString("id")
- if err != nil {
- return helper.ParamError("id"), nil
- }
- id, err := strconv.ParseUint(idStr, 10, 64)
- if err != nil {
- return helper.ParamInvalidError("id", "必须是数字"), nil
- }
- name, desc, err := repositories.GetEmsparaPidInfo(uint(id))
- if err != nil {
- return helper.EmptyResult(fmt.Sprintf("未找到 PID %d 的信息: %v", id, err)), nil
- }
- return helper.JSONResultOrFileAuto(map[string]any{
- "id": id,
- "type": "PID",
- "macro_name": name,
- "description": desc,
- }), nil
- }
|