项目简介

本项目 'mcp-calculator-go' 是一个使用 Go 语言开发的简单计算器,它实现了 Model Context Protocol (MCP) 服务器,可以作为 MCP 服务器的基础示例进行学习和参考。

主要功能点

  • 提供计算工具 (Tool): 名为 'calculate' 的工具,支持加法 ('add')、减法 ('sub')、乘法 ('mul')、除法 ('div') 四种基本算术运算。
  • 提供 Prompt 模板 (Prompt): 名为 'calc' 的 Prompt 模板,同样支持上述四种算术运算,可以返回包含用户指令和计算结果的 Prompt 消息。
  • 基于 MCP 协议: 实现了 MCP 协议,可以与任何兼容 MCP 协议的客户端进行通信。
  • 使用 'mcp-go' 库: 基于 'mcp-go' 库构建,简化了 MCP 服务器的开发。

安装步骤

  1. 安装依赖: 项目使用 'Taskfile' 管理依赖和构建,请先确保安装了 'task' 工具。然后执行以下命令安装依赖:

    task deps
    task enum

    或者,如果您没有安装 'task',可以手动执行以下命令:

    go install github.com/abice/go-enum@latest
    go generate ./...
  2. 构建可执行文件: 执行以下命令编译项目,生成名为 'mcp-calculator-go' 的可执行文件:

    task build

    或者

    go build -o mcp-calculator-go

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令才能连接。以下是针对不同 MCP 客户端的配置示例,您需要将 '/path/to/mcp-calculator-go' 替换为您实际的可执行文件路径。

针对 VS Code 和通用 MCP 客户端 (JSON 配置):

{
  "mcpServers": {
    "calculator-go": {
      "command": "/path/to/mcp-calculator-go",
      "args": [],
      "disabled": false,
      "autoApprove": []
    }
  }
}
  • 'server name': 'calculator-go' (服务器名称,客户端用于标识和引用)
  • 'command': '/path/to/mcp-calculator-go' (MCP 服务器可执行文件的路径)
  • 'args': '[]' (启动参数,本例中无需参数)
  • 'disabled': 'false' (是否禁用,'false' 表示启用)
  • 'autoApprove': '[]' (自动批准的请求列表,本例中无需配置)

针对 Zed 编辑器 (JSON 配置):

"context_servers": {
  "calculator-go": {
    "command": {
      "path": "/path/to/mcp-calculator-go",
      "args": [],
      "env": {}
    },
    "settings": {}
  }
}
  • 'server name': 'calculator-go' (服务器名称,客户端用于标识和引用)
  • 'command':
    • 'path': '/path/to/mcp-calculator-go' (MCP 服务器可执行文件的路径)
    • 'args': '[]' (启动参数,本例中无需参数)
    • 'env': '{}' (环境变量,本例中无需配置)
  • 'settings': '{}' (服务器设置,本例中无需配置)

基本使用方法

  1. 启动 MCP 服务器: 在终端中运行编译生成的可执行文件 'mcp-calculator-go'。服务器将通过标准输入/输出 (stdio) 与客户端通信。

  2. 配置 MCP 客户端: 根据您使用的 MCP 客户端(如 VS Code, Zed 等),按照上述 "服务器配置" 部分的说明进行配置,确保客户端能够连接到 'mcp-calculator-go' 服务器。

  3. 调用工具或 Prompt: 在 MCP 客户端中,您可以发送请求调用 'calculate' 工具或 'calc' Prompt,并传递必要的参数 ( 'op', 'x', 'y') 来执行计算操作。具体的调用方式取决于您使用的 MCP 客户端的功能和界面。

    例如,客户端可以发送 JSON-RPC 请求调用 'calculate' 工具,参数如下:

    {
      "jsonrpc": "2.0",
      "method": "call_tool",
      "params": {
        "tool_name": "calculate",
        "arguments": {
          "op": "add",
          "x": 10,
          "y": 5
        }
      },
      "id": 1
    }

    或者调用 'calc' Prompt,参数相同。服务器将返回计算结果。

信息

分类

AI与计算