关于 reed-solomon-alg-mcp
reed-solomon-alg-mcp 是一款用 Rust 编写的 MCP 服务,用于处理 GF(256) 上的 Reed-Solomon 差错纠正码。它通过专用工具提供编码、纠错、代码分析和错误注入测试。
主要功能
- 01带校验字节的系统编码
- 02定位并纠正字节错误
- 03计算伴随式和生成多项式
- 04检查 GF(256) 算术
- 05在指定位置注入错误
适用场景
- 01为数据编码并添加 Reed-Solomon 校验
- 02纠正受损码字
- 03通过注入字节错误测试解码
MCP 相关
它通过 stdio 上的 JSON-RPC,将 Reed-Solomon 编码、解码、分析和 GF(256) 运算作为 MCP 工具提供。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
这是一个用 Rust 编写的小型模型上下文协议服务。它通过标准输入/输出传输 JSON-RPC,仅依赖一个库(serde_json),并使用本原多项式 0x11d、alpha = 2 以及从 alpha^0 到 alpha^(nsym-1) 的生成根,在 GF(2^8) 上实现 Reed-Solomon。
功能
- 支持任意数量校验字节的系统编码(码字长度最多为 255)
- 使用 Berlekamp-Massey、Chien 搜索和 Forney 算法定位并纠正错误
- 校验子检查、生成多项式和 GF(256) 算术
- 测试辅助工具可损坏指定字节,方便观察解码过程
工具
| 工具 | 用途 |
|---|---|
rs_encode | 系统编码;返回码字和校验字节 |
rs_decode | 最多纠正 nsym/2 个字节错误;报告错误位置和幅度 |
rs_syndromes | 计算伴随式,并告知码字是否有效 |
rs_generator_polynomial | 给定校验字节数时的生成多项式系数 |
rs_code_parameters | RS(n,k) 的容量、码率、开销和最小距离 |
rs_inject_errors | 在给定位置篡改字节以进行测试 |
gf256_math | 在 GF(256) 中执行加、乘、除、幂、求逆、对数和指数运算 |
快速开始:使用已发布的 Docker 镜像
该服务已在 MCP Registry 中发布,名称为 io.github.xkid1/reed-solomon-alg-mcp,并以公共镜像的形式托管在 GHCR 上。你只需要 Docker。
docker pull ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
VS Code(Agent 模式)
添加到 .vscode/mcp.json(或你的用户 MCP 配置):
{
"servers": {
"reed-solomon": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0"]
}
}
}
Claude Desktop
添加到 claude_desktop_config.json:
{
"mcpServers": {
"reed-solomon": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0"]
}
}
}
使用 -i,不要使用 -t:传输需要干净的 stdin/stdout 管道。
MCP Inspector
npx @modelcontextprotocol/inspector docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
试用
向助手提问:"用 8 个校验字节对 'hello' 进行编码,篡改 3 个字节,然后解码。"
也可以手动与服务交互:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"rs_encode","arguments":{"data":"Hello","parity_symbols":6}}}' \
| docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
编码后的码字为 48656c6c6fc0886617750e。
从源代码构建
需要较新的稳定版 Rust 工具链。
git clone https://github.com/xkid1/reed-solomon-alg-mcp.git
cd reed-solomon-alg-mcp
cargo build --release
./target/release/reed-solomon-mcp
将客户端指向该二进制文件,而不是 Docker:
{ "mcpServers": { "reed-solomon": { "command": "/absolute/path/to/target/release/reed-solomon-mcp" } } }
开发
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release && bash scripts/smoke-test.sh
每个针对 main 的拉取请求都会先运行测试和构建,然后进行代码规范检查。请参阅 CONTRIBUTING.md。
限制
- 码字长度最多为 255 个字节(GF(256))。
- 仅支持错误解码:尚未实现擦除解码。
- 错误数超过
parity/2时,解码器可能返回错误,也可能静默地产生另一个有效码字。这是 Reed-Solomon 固有的特性;如果需要检测这种情况,请添加外层校验和。 - 这不是加密工具:纠错不提供机密性或真实性。
项目
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。