brainfaq-mcp について
brainfaq-mcpは、LLMを使ってBrainfuckプログラムをデバッグするMCPサーバーです。逐次実行、インタープリターの状態確認、入力処理に対応します。
主な機能
- 01設定を指定してコードを読み込み
- 02命令を1つずつ実行
- 03終了または入力待ちまで実行
- 04メモリ、ポインター、出力を確認
- 05括弧の検証とセル値のオーバーフロー検出
活用シーン
- 01Brainfuckプログラムを命令単位でデバッグ
- 02ループ中のプログラム状態を確認
- 03文字入力を待つプログラムに入力を渡す
MCP 対応
Brainfuckコードの読み込み、実行、入力、状態・出力の確認ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| code | string | はい | |
| maxValue | number | いいえ | テープセルに許可される最大値(デフォルト:9007199254740991) |
| minValue | number | いいえ | テープセルに許可される最小値(デフォルト:-9007199254740991) |
| tapeSize | integer | いいえ | メモリテープのサイズ(デフォルト:30000) |
| initial_input | string | いいえ |
詳細
brainfaq-mcp
お気に入りのLLMでBrainfuckプログラムをデバッグできる、Brainfuckプログラミング言語用のMCP サーバーです。
使い方
次のコマンドでMCP サーバーを実行します。
npx brainfaq-mcp
VS Codeで使用するには、次のJSONスニペットを.vscode/mcp.jsonに追加します(ファイルがない場合は作成してください)。
{
"servers": {
"brainfaq-mcp": {
"command": "npx",
"args": ["brainfaq-mcp"]
}
}
}
LLMエージェントに対応したほかのIDE(Cursorなど)にも、同様の方法でMCPを追加できます。各IDEのドキュメントを確認し、npx brainfaq-mcpを実行するように設定してください。これにより、MCP サーバーがstdioモードで起動します。
機能
MCP ツール
- load_code - デバッガーをリセットし、新しいBrainfuckソースコードを読み込みます。テープサイズ、セルの最小値/最大値、初期入力を設定できます。
- step - 指定した数の命令(デフォルトは1)を実行し、詳細な状態を出力します。
- run - プログラムが終了するか入力待ちになるまで実行します。命令数の上限も指定できます。
- add_input - プログラムが入力待ちのとき、入力バッファーに文字を追加します。
- get_state - 現在のインタープリターの状態(メモリ、ポインター、出力)を取得します。表示範囲も指定できます。
- read_output - これまでに生成された出力文字列全体を取得します。
機能
- Brainfuckの全機能に対応(8つの操作:
>,<,+,-,.,,,[,]) - 設定可能な値の上限/下限によるオーバーフロー/アンダーフローの検出
- ブラケットの対応関係の検証とループ制御
- ステップごとの実行とデバッグ
- 設定可能なテープサイズによるメモリ保護
開発
セットアップ:
npm i
ビルド:
npm run build
テスト:
npm run test
テストは、Daniel CristofaniによるBrainfuckテストスイートを参考にしています。
リリース
まず、上記のコマンドを使用してソースコードをビルドします。
NPMにログインします。
npm login
NPMに公開します。
npm publish
ライセンス
このリポジトリ内のすべての作品は、「Creative Commons Attribution-ShareAlike 4.0 International License」の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。