文本镜像工具

一个用Go编写的MCP(Model Context Protocol)服务,能够反转UTF-8文本并保留字形簇。

  • by KEINOS
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 KEINOS/mcp-text-mirror

使用说明

MCP文本镜像

一个用Go编写的小型MCP(模型上下文协议)服务。它镜像(反转)UTF-8文本,同时保留字形簇。

此存储库实现了一个最小的MCP服务器和一个 mirror 该工具帮助我/我们学习MCP基础知识,并构建至少与VS Code的Copilot兼容的东西(通过 stdio 运输)。

[!提示]

关于这个项目的日文文章:“【Golang】最简单的MCP Server 的Go 安装@奇塔

特性

  • 反转UTF-8文本的MCP工具
  • Unicode字形簇-安全(处理表情符号、组合标记、ZWJ序列)
  • stdio 运输 仅(未实现HTTP/SSE传输)

先决条件

  • 需要Go 1.25或更高版本(请参阅 go.mod).
    • 走 1.25 已于2025-08年发布。
  • golangci-lint (可选; make test 运行lint)
  • make (可选;用于构建和测试自动化)
  • 支持的MCP客户端 stdio 运输
    • 例如。, VS Code v1.102或更新版本+ 副驾驶 已启用(使用VS Code v1.107.1测试)

快速开始

此应用程序旨在通过MCP使用VS Code的Copilot扩展。任何支持MCP的兼容客户端 stdio 例如,Claude Desktop的交通工具也应该可以使用。

构建与测试

  • 构建:

    make build
    # or
    go build -o text-mirror .
    
  • 测试和棉绒:

    make test
    # or
    golangci-lint run --fix
    go test -cover -race ./...
    

使用VS代码(复制品)

VS Code中的MCP支持通常从1.102及更高版本开始提供。

  1. 构建 text-mirror 作为可执行二进制文件(如上所述)并复制其绝对路径。

    • 例如。, /home/user/go/bin/text-mirror
  2. 在VS Code的MCP配置文件中注册为MCP服务器。

    • 打开VS Code的命令面板(F1 或 Ctrl+Shift+P)并搜索:

      • MCP: Open User Configuration
    • 编辑生成的 mcp.json 如下(仅举最小示例):

      {
        "servers": {
          "text-mirror": {
            "command": "/full/path/to/text-mirror",
            "env": {
              "MCP_TEXT_MIRROR_DEBUG_LOG": "/full/path/to/text-mirror.log"
            }
          }
        }
      }
      
      • 如果 mcp.json 已经有其他服务器,只需添加 text-mirror 进入下 servers.
      • command 是必需的。
        • 替换 /full/path/to/text-mirror 以及构建二进制文件的实际路径。
      • 如果 type 省略,VS Code假定 "stdio" 默认情况下,本地服务器。所以不需要在这里具体说明。
      • env 是可选的。
        • 如果 MCP_TEXT_MIRROR_DEBUG_LOG 如果存在,它将启用对指定日志文件的调试日志记录。
        • 替换 /full/path/to/text-mirror.log 使用所需的日志文件路径。
      • 有关配置格式的更多详细信息,请参阅 VS代码MCP文档.
  3. 重新启动VS代码

    • 这 text-mirror MCP服务器应出现在VS代码扩展列表中(作为已安装的MCP服务器窗格)。
    • 单击旁边的配置图标 text-mirror 并检查可以做什么。
      • 您可以但不必在此处手动启动服务器;VS Code将在需要时自动启动。
    • 有关更多详细信息,请参阅 VS代码MCP文档.
  4. 打电话给 mirror 通过Copilot聊天工具。

    • 在Copilot Chat中,选择一个支持MCP的“Agent”模型。

      • 如果模型支持MCP工具,则会出现“工具”图标。
    • 这 mirror 工具现在应该可用了。您可以要求Copilot使用它:

      使用文本镜像反转此文本:🙂🙃🙂👩‍💻👨‍💻123

      或

      Use the mirror tool to reverse "你好

运作原理

如果MCP服务器在本地运行,那么像VS Code MCP/Claude Desktop这样的MCP客户端会以一种非常类似Unix的方式与它通信。

  1. MCP客户端启动 text-mirror 二进制作为子进程(生成MCP服务器)。
  2. MCP服务器通过stdio监听工具调用。
  3. MCP客户端向服务器发送指令数据(JSON-RPC) 标准输入.
  4. 服务器处理请求,反转文本,并通过stdout将结果发送回。
  5. MCP客户端接收响应并将其显示给用户。

开发说明

  • 边缘情况下的测试和100%的测试覆盖率
  • Linting通过 golangci-lint
  • 测试包括表驱动的案例,用于组合标记、ZWJ序列、标志和长字符串,以练习棘手的Unicode行为。
  • .editorconfig 为了保持格式的一致性(Go文件的制表符、其他文件的空格、LF结尾、UTF-8字符集)。

贡献

这个项目主要是一个学习资源,但欢迎贡献(修复、测试、文档)。

许可证

  • MIT许可证。看 许可证 了解详情。