About reed-solomon-alg-mcp
reed-solomon-alg-mcp is a Rust MCP server for working with Reed-Solomon error-correcting codes over GF(256. It offers encoding, error correction, code analysis, and test error injection through focused tools.
Key features
- 01Systematic encoding with parity bytes
- 02Locate and correct byte errors
- 03Compute syndromes and generator polynomials
- 04Inspect GF(256) arithmetic
- 05Inject errors at chosen positions
Use cases
- 01Encode data with Reed-Solomon parity
- 02Correct corrupted codewords
- 03Test decoding with injected byte errors
MCP support
It exposes Reed-Solomon encoding, decoding, analysis, and GF(256) operations as MCP tools over JSON-RPC on stdio.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEreed-solomon-mcp
An MCP server that encodes, decodes, and explains Reed-Solomon error-correcting codes.
A small Model Context Protocol server written in Rust. It speaks JSON-RPC over stdio, has a single dependency (serde_json), and implements Reed-Solomon over GF(2^8) with primitive polynomial 0x11d, alpha = 2, and generator roots alpha^0 to alpha^(nsym-1).
Features
- Systematic encoding with any number of parity bytes (codeword length up to 255)
- Error location and correction with Berlekamp-Massey, Chien search and Forney
- Syndrome checks, generator polynomials and GF(256) arithmetic
- Test helpers that corrupt chosen bytes so you can watch decoding work
Tools
| Tool | Purpose |
|---|---|
rs_encode | Systematic encode; returns codeword and parity |
rs_decode | Corrects up to nsym/2 byte errors; reports positions and magnitudes |
rs_syndromes | Computes syndromes and tells you if a word is a valid codeword |
rs_generator_polynomial | Generator polynomial coefficients for a parity count |
rs_code_parameters | RS(n,k) capacity, rate, overhead and minimum distance |
rs_inject_errors | Corrupts bytes at given positions for testing |
gf256_math | add, mul, div, pow, inverse, log, exp in GF(256) |
Quick start: use the published Docker image
The server is published in the MCP Registry as io.github.xkid1/reed-solomon-alg-mcp and ships as a public image on GHCR. You only need Docker.
docker pull ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
VS Code (agent mode)
Add to .vscode/mcp.json (or your user MCP config):
{
"servers": {
"reed-solomon": {
"type": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0"]
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"reed-solomon": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0"]
}
}
}
Use -i, not -t: the transport needs a clean stdin/stdout pipe.
MCP Inspector
npx @modelcontextprotocol/inspector docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
Try it
Ask your assistant: "Encode 'hello' with 8 parity bytes, corrupt 3 bytes, then decode it."
Or talk to the server by hand:
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
The encoded codeword is 48656c6c6fc0886617750e.
Build from source
Requires a recent stable Rust toolchain.
git clone https://github.com/xkid1/reed-solomon-alg-mcp.git
cd reed-solomon-alg-mcp
cargo build --release
./target/release/reed-solomon-mcp
Point a client at the binary instead of Docker:
{ "mcpServers": { "reed-solomon": { "command": "/absolute/path/to/target/release/reed-solomon-mcp" } } }
Development
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release && bash scripts/smoke-test.sh
Every pull request to main runs tests and builds first, then the code-convention checks. See CONTRIBUTING.md.
Limitations
- Codeword length is at most 255 bytes (GF(256)).
- Errors-only decoding: erasure decoding is not implemented.
- Beyond
parity/2errors the decoder may return an error or silently produce a different valid codeword. This is inherent to Reed-Solomon, so add an outer checksum if you need to detect that. - Not a cryptographic tool: error correction gives no confidentiality or authenticity.
Project
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.