使用说明
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运输
快速开始
此应用程序旨在通过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及更高版本开始提供。
-
构建
text-mirror作为可执行二进制文件(如上所述)并复制其绝对路径。- 例如。,
/home/user/go/bin/text-mirror
- 例如。,
-
在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文档.
- 如果
-
-
重新启动VS代码
- 这
text-mirrorMCP服务器应出现在VS代码扩展列表中(作为已安装的MCP服务器窗格)。 - 单击旁边的配置图标
text-mirror并检查可以做什么。- 您可以但不必在此处手动启动服务器;VS Code将在需要时自动启动。
- 有关更多详细信息,请参阅 VS代码MCP文档.
- 这
-
打电话给
mirror通过Copilot聊天工具。-
在Copilot Chat中,选择一个支持MCP的“Agent”模型。
- 如果模型支持MCP工具,则会出现“工具”图标。
-
这
mirror工具现在应该可用了。您可以要求Copilot使用它:使用文本镜像反转此文本:🙂🙃🙂👩💻👨💻123
或
Use the mirror tool to reverse "你好
-
运作原理
如果MCP服务器在本地运行,那么像VS Code MCP/Claude Desktop这样的MCP客户端会以一种非常类似Unix的方式与它通信。
- MCP客户端启动
text-mirror二进制作为子进程(生成MCP服务器)。 - MCP服务器通过stdio监听工具调用。
- MCP客户端向服务器发送指令数据(JSON-RPC) 标准输入.
- 服务器处理请求,反转文本,并通过stdout将结果发送回。
- MCP客户端接收响应并将其显示给用户。
开发说明
- 边缘情况下的测试和100%的测试覆盖率
- Linting通过
golangci-lint - 测试包括表驱动的案例,用于组合标记、ZWJ序列、标志和长字符串,以练习棘手的Unicode行为。
.editorconfig为了保持格式的一致性(Go文件的制表符、其他文件的空格、LF结尾、UTF-8字符集)。
贡献
这个项目主要是一个学习资源,但欢迎贡献(修复、测试、文档)。
许可证
- MIT许可证。看 许可证 了解详情。