项目简介

该服务器是一个基于Model Context Protocol (MCP) 构建的应用后端,旨在为兼容的LLM(大型语言模型)客户端提供Go语言代码执行和分享功能。它通过集成Go Playground API,允许LLM直接在安全的沙盒环境中运行Go代码、获取执行结果,并为代码片段生成可分享的URL。这为LLM应用提供了强大的Go语言编程辅助能力。

主要功能点

  • 运行Go代码: 在Go Playground提供的在线沙盒环境中安全地执行Go语言代码。服务器会返回代码的执行结果,包括标准输出、任何编译或运行时错误以及程序的退出码。
  • 分享Go代码: 为用户提供的Go代码片段生成一个唯一的、可分享的URL链接。这方便了代码的传播和协作,LLM可以直接生成并提供分享链接。
  • 运行并分享代码: 提供一个便捷的操作,可以同时执行Go代码并获取其结果,同时也会生成该代码的分享链接。这在一个请求中完成了两个常见任务。
  • MCP协议集成: 完全遵循Model Context Protocol规范,这意味着它可以与任何支持MCP协议的LLM客户端无缝集成,作为其提供上下文信息和功能的工具。

安装步骤

在开始使用之前,您需要将此服务器安装到您的系统上。

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆项目仓库:

    git clone https://github.com/samber/go-playground-mcp.git
    cd go-playground-mcp
  2. 安装依赖: 进入项目目录后,安装所有必要的依赖项:

    npm install
  3. 构建项目: 执行构建命令,将TypeScript源代码编译为JavaScript可执行文件:

    npm run build

服务器配置

要让您的MCP客户端能够连接并使用这个Go Playground MCP服务器,您需要在客户端的配置中添加服务器的启动信息。以下是两种常见的配置方式:

  • 通过 'npx' 启动 (推荐,无需本地构建): 这种方式利用 'npx' 直接从npm仓库执行包,无需您预先在本地构建项目。

    {
      "mcpServers": {
        "go-playground": {             // 这是MCP服务器的唯一标识名称,客户端会用它来引用此服务器。
          "command": "npx",            // 启动服务器的命令,这里是Node.js的包执行器。
          "args": ["-y", "go-playground-mcp"] // 传递给'npx'命令的参数,'-y'表示自动确认,'go-playground-mcp'是包名。
        }
      }
    }
  • 通过本地构建的 'node' 启动 (如果您已手动构建项目): 如果您已经按照上面的安装步骤完成了本地构建,可以使用这种方式直接启动本地编译后的服务器文件。

    {
      "mcpServers": {
        "go-playground": {             // 这是MCP服务器的唯一标识名称,客户端会用它来引用此服务器。
          "command": "node",           // 启动服务器的命令,这里是Node.js运行时。
          "args": ["dist/index.js"]    // 传递给'node'命令的参数,指向构建后的服务器入口文件。
        }
      }
    }

将上述任一配置添加到您的MCP客户端的配置中(具体位置和格式取决于您使用的MCP客户端),客户端就能在需要时自动启动并连接到Go Playground MCP服务器。

基本使用方法

配置完成后,您的MCP客户端(例如一个LLM应用)即可通过调用此服务器提供的工具来与Go Playground API交互。服务器提供了以下三个主要工具,LLM可以根据需要选择调用:

  • 'run_go_code': 允许LLM提交Go代码并获取其执行结果。例如,LLM可以请求服务器运行一段代码,以验证其逻辑或获取特定输出。
  • 'share_go_code': 允许LLM提交Go代码并请求生成一个可分享的URL。这在LLM需要向用户展示或保存代码时非常有用。
  • 'run_and_share_go_code': 允许LLM一次性提交Go代码,并同时获得执行结果和分享URL。这适用于需要立即展示代码运行效果并提供分享选项的场景。

LLM客户端会以JSON-RPC请求的形式调用这些工具,服务器将执行相应操作并将结果以JSON-RPC响应的形式返回给客户端。

信息

分类

开发者工具