reed-solomon-alg-mcp について
reed-solomon-alg-mcpは、GF(256)上のリード・ソロモン誤り訂正符号を扱うRust製のMCPサーバーです。専用ツールで、符号化、誤り訂正、符号解析、テスト用の誤り注入を行えます。
主な機能
- 01パリティバイト付きの系統符号化
- 02バイト誤りの位置特定と訂正
- 03シンドロームと生成多項式の計算
- 04GF(256)演算の確認
- 05指定位置への誤り注入
活用シーン
- 01データをリード・ソロモン符号で符号化
- 02破損した符号語の訂正
- 03バイト誤りを注入して復号をテスト
MCP 対応
stdio上のJSON-RPCを通じて、リード・ソロモン符号の符号化、復号、解析、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 で記述された小規模な Model Context Protocol サーバーです。stdio 経由で 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(エージェントモード)
.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"]
}
}
}
-t ではなく -i を使ってください。トランスポートには、余計なデータのない標準入力/標準出力のパイプが必要です。
MCP Inspector
npx @modelcontextprotocol/inspector docker run -i --rm ghcr.io/xkid1/reed-solomon-alg-mcp:0.1.0
試してみる
アシスタントに次のように依頼してください。「'hello' をパリティバイト 8 個で符号化し、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を超える誤りがある場合、デコーダーはエラーを返すか、別の有効な符号語をエラーなく生成する可能性があります。これはリード・ソロモン符号の性質です。そのような誤りを検出する必要がある場合は、外側にチェックサムを追加してください。- 暗号ツールではありません。誤り訂正によって機密性や真正性が得られるわけではありません。
プロジェクト
- 貢献方法
- 行動規範
- セキュリティポリシー
- ライセンス(MIT)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。