mcpField
T
tetrad

tetrad

ローカル
github.com/SamoraDC開発ツール139 週間前に更新

tetrad について

TetradはClaude Code向けのRust製MCPサーバーです。Codex、Gemini CLI、Qwenでコードや計画を評価し、結果を集約します。セッションをまたぐパターン保存、キャッシュ、設定可能な合意ルールも備えています。

主な機能

  1. 01複数モデルでコードと計画をレビュー
  2. 02評価結果の合意を集約
  3. 03ReasoningBankでパターンを学習
  4. 04LRU方式で結果をキャッシュ
  5. 05SQLiteでセッション間の履歴を保存
  6. 06CLIで設定と診断

活用シーン

  1. 01実装前に計画をレビュー
  2. 02保存前に生成コードを確認
  3. 03完了前にテストと変更を評価
  4. 04レビューのパターンを記録して再利用

MCP 対応

stdio上のJSON-RPC 2.0を介して、計画・コード・テストのレビューと評価ツールの状態確認を行う6つのツールをClaude Codeに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"samoradc-tetrad": {
"command": "npx",
"args": [
"-y",
"@samoradc/tetrad"
]
}
}
}
起動コマンドnpx -y @samoradc/tetrad

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@samoradc/tetrad0.1.12

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Tetrad

CI MCP Registry npm Crates.io Rust License: MIT

Claude Code 用の四者合意 MCP サーバー

Tetrad は、Rust で記述された高性能な MCP(Model Context Protocol)サーバーです。3 つの AI 搭載 CLI コード評価ツール(Codex、Gemini CLI、Qwen)を調整し、Claude Code が生成したすべてのコードを検証します。

このシステムは四者合意プロトコルを実装しており、4 つの知性、すなわち 3 つの外部評価ツールと Claude Code 自身の承認なしには、コードも計画も受け入れられません。

特長

  • 四者合意:コードの承認には 4 つの AI モデルすべての合意が必要です
  • ReasoningBank:RETRIEVE→JUDGE→DISTILL→CONSOLIDATE のサイクルによる継続学習システム
  • 高性能:Rust で記述され、Tokio による並列実行に対応
  • MCP サーバー:Claude Code と連携する、stdio 経由の JSON-RPC 2.0 サーバー
  • 充実した CLI:直感的なコマンド(init、serve、status、doctor、config など)
  • LRU キャッシュ:TTL を設定できる結果キャッシュ
  • フックシステム:カスタマイズ用の評価前後のコールバック
  • 拡張可能:カスタムエグゼキューター用のプラグインシステム
  • セッションをまたぐ永続化:パターンと履歴を SQLite に保存

クイックスタート

1. Tetrad をインストールする
# Via npm (recommended - works seamlessly with Claude Code)
npm install -g @samoradc/tetrad

# Or via cargo (requires additional setup)
cargo install tetrad
sudo cp ~/.cargo/bin/tetrad /usr/local/bin/
1.1 プロジェクトで初期化する(任意)
npx @samoradc/tetrad init

これにより、次の処理が行われます。

  • tetrad.toml 設定ファイルを作成します
  • データベース用の .tetrad/ ディレクトリを作成します
  • .gitignore に .tetrad/ を追加します
2. 外部 CLI ツールをインストールして設定する

Tetrad には、以下の AI CLI ツールのうち少なくとも 1 つが必要です。朗報です。既存のサブスクリプションがあれば、別途 API キーを用意する必要はありません!

Codex CLI(OpenAI)
npm install -g @openai/codex

認証方法:

方法必要条件API キーが必要ですか?
ChatGPT ログインChatGPT Plus、Pro、Business、Edu、または Enterprise のサブスクリプションいいえ
API キークレジット残高のある OpenAI API アカウントはい
# Option 1: Login with your ChatGPT subscription (recommended)
codex login
# Opens browser for OAuth - follow the prompts

# Option 2: Use API key
export OPENAI_API_KEY="your-openai-key"

注記: ヘッドレス/リモートサーバーでは、codex login --device-auth を使用し、デバイスコードフローに従ってください。

📖 Codex CLI の認証に関するドキュメント


Gemini CLI(Google)
npm install -g @google/gemini-cli

認証方法:

方法必要条件API キーが必要ですか?無料枠
Google ログイン個人の Google アカウントいいえ60 リクエスト/分、1,000 リクエスト/日
API キーGoogle AI Studio アカウントはい同じ制限
# Option 1: Login with Google account (recommended)
gemini auth login
# Opens browser for OAuth - follow the prompts

# Option 2: Use API key from Google AI Studio
export GEMINI_API_KEY="your-gemini-key"

無料枠: 個人の Google アカウントを使用すると、100 万トークンのコンテキストウィンドウに対応した Gemini 2.5 Pro を無料で利用できます!

📖 Gemini CLI の認証に関するドキュメント


Qwen CLI(Alibaba)
npm install -g qwen-code

認証方法:

方法必要条件API キーが必要ですか?無料枠
DashScope APIAlibaba Cloud アカウントはい2,000 リクエスト/日
Coding PlanQwen Coding サブスクリプションはい(形式が異なります)含まれています
# Get your API key from DashScope console
export DASHSCOPE_API_KEY="your-dashscope-key"

# For international users (outside China)
export OPENAI_BASE_URL="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"

リージョン別エンドポイント:

  • シンガポール:dashscope-intl.aliyuncs.com
  • バージニア:dashscope-us.aliyuncs.com
  • 北京:dashscope.aliyuncs.com

📖 Qwen API ドキュメント

3. インストールを確認する
# Check Tetrad version
tetrad version

# Check CLI availability
tetrad status

# Diagnose any issues
tetrad doctor
4. Claude Code CLI に追加
# Add Tetrad as MCP server (all projects)
claude mcp add --scope user tetrad -- npx @samoradc/tetrad serve

# Verify it's configured
claude mcp list
別のインストール方法
# Current project only
claude mcp add tetrad -- npx @samoradc/tetrad serve

# If installed via cargo
claude mcp add --scope user tetrad -- tetrad serve

Note: Tetrad は、発見しやすさとドキュメントのためにMCP Registryに公開されています。

5. 別の方法:手動で設定

プロジェクトのルートに .mcp.json を作成するか、編集します。

{
  "mcpServers": {
    "tetrad": {
      "type": "stdio",
      "command": "npx",
      "args": ["@samoradc/tetrad", "serve"],
      "env": {
        "OPENAI_API_KEY": "${OPENAI_API_KEY}",
        "GOOGLE_API_KEY": "${GOOGLE_API_KEY}",
        "DASHSCOPE_API_KEY": "${DASHSCOPE_API_KEY}"
      }
    }
  }
}

または、~/.claude.json の mcpServers セクションで、ユーザー全体の設定を行います。

{
  "mcpServers": {
    "tetrad": {
      "type": "stdio",
      "command": "npx",
      "args": ["@samoradc/tetrad", "serve"]
    }
  }
}

仕組み

Claude Code にコードの作成を依頼すると、Tetrad が自動的に検証します。

You: "Create a function in Rust that calculates the average of a vector"

Claude Code:
1. Writes the code
2. Calls tetrad_review_code automatically
3. Tetrad sends to Codex, Gemini and Qwen for evaluation
4. Returns consolidated consensus from all 3 evaluators

Tetrad Response:
┌─────────────────────────────────────────────┐
│ DECISION: PASS ✓                            │
│ Score: 92/100                               │
│ Consensus: Yes (3/3 approved)               │
│                                             │
│ Votes:                                      │
│   • Codex:  Pass (95)                       │
│   • Gemini: Pass (90)                       │
│   • Qwen:   Pass (92)                       │
│                                             │
│ Suggestions:                                │
│   - Consider handling empty vector case     │
└─────────────────────────────────────────────┘

Claude Code: Saves the approved code
問題が見つかった場合:
Tetrad Response:
┌─────────────────────────────────────────────┐
│ DECISION: BLOCK ✗                           │
│ Score: 26/100                               │
│ Consensus: Yes (3/3 rejected)               │
│                                             │
│ Votes:                                      │
│   • Codex:  Fail (30) - division by zero    │
│   • Gemini: Fail (25) - no error handling   │
│   • Qwen:   Fail (25) - unsafe operation    │
│                                             │
│ Issues:                                     │
│   - Division by zero not handled            │
│   - Missing input validation                │
│   - No Result/Option return type            │
└─────────────────────────────────────────────┘

Claude Code: Fixes the code and resubmits

CLI コマンド

tetrad - Quadruple Consensus CLI for Claude Code

COMMANDS:
    init              Initialize configuration in current directory
    serve             Start the MCP server (used by Claude Code)
    status            Show CLI status (codex, gemini, qwen)
    config            Configure options interactively
    doctor            Diagnose configuration issues
    version           Show version
    evaluate          Evaluate code manually (without MCP)
    history           Show evaluation history from ReasoningBank
    export            Export patterns from ReasoningBank
    import            Import patterns into ReasoningBank

OPTIONS:
    -c, --config <FILE>    Configuration file (default: tetrad.toml)
    -v, --verbose          Verbose mode
    -q, --quiet            Quiet mode
    -h, --help             Show help

MCP ツール

MCP サーバーとして実行すると、Tetrad は 6 つのツールを公開します。

ツール説明
tetrad_review_planコーディング前に実装計画をレビューします
tetrad_review_code保存前にコードをレビューします
tetrad_review_tests最終確定前にテストをレビューします
tetrad_confirm受け取ったフィードバックへの合意を確認します
tetrad_final_checkコミット前に最終検証を行います
tetrad_status評価器の健全性を確認します
ワークフローの例
1. Claude Code generates plan → tetrad_review_plan → Feedback
2. Claude Code implements   → tetrad_review_code → Feedback
3. Claude Code adjusts      → tetrad_confirm     → Confirmation
4. Claude Code finalizes    → tetrad_final_check → Certificate

アーキテクチャ

Claude Code → MCP Protocol (stdio) → Tetrad Server (Rust)
                                          │
                    ┌─────────────────────┼─────────────────────┐
                    ▼                     ▼                     ▼
              Codex CLI            Gemini CLI              Qwen CLI
              (syntax)            (architecture)           (logic)
                    │                     │                     │
                    └─────────────────────┼─────────────────────┘
                                          ▼
                                  Consensus Engine
                                          │
                            ┌─────────────┴─────────────┐
                            ▼                           ▼
                      LRU Cache                  ReasoningBank
                      (results)                    (SQLite)
                                    RETRIEVE→JUDGE→DISTILL→CONSOLIDATE
実行器の専門分野
実行器CLI専門分野
Codexcodex exec --json構文とコード規約
Geminigemini -o jsonアーキテクチャと設計
Qwenqwenロジックのバグと正確性
合意形成ルール
ルール要件ユースケース
Golden全会一致(3/3)重要なコード、セキュリティ
Strong高い信頼度で 3/3 または 2/3デフォルト
Weak単純多数決(2/3)迅速なプロトタイピング

ReasoningBank

ReasoningBank は、コードパターンを保存して統合する継続的な学習システムです。

学習サイクル
RETRIEVE → JUDGE → DISTILL → CONSOLIDATE
    │         │        │           │
    │         │        │           └─ Merge similar patterns
    │         │        └─ Extract new patterns
    │         └─ Evaluate code with context
    └─ Search for relevant patterns
パターンの種類
  • AntiPattern:避けるべきパターン(バグ、脆弱性、コードの臭い)
  • GoodPattern:従うべきパターン(ベストプラクティス、慣用的なパターン)
  • Ambiguous:分類が不確かなパターン(追加データが必要)
ReasoningBank のコマンド
# View evaluation history
tetrad history --limit 50

# Export patterns to share
tetrad export -o team-patterns.json

# Import patterns from another ReasoningBank
tetrad import team-patterns.json

設定

tetrad init を実行すると、tetrad.toml ファイルが自動的に作成されます。

[general]
log_level = "info"
timeout_secs = 60

[executors.codex]
enabled = true
command = "codex"
args = ["exec", "--json"]
timeout_secs = 30

[executors.gemini]
enabled = true
command = "gemini"
args = ["-o", "json"]
timeout_secs = 30

[executors.qwen]
enabled = true
command = "qwen"
args = []
timeout_secs = 30

[consensus]
default_rule = "strong"
min_score = 70
max_loops = 3

[reasoning]
enabled = true
db_path = ".tetrad/tetrad.db"
max_patterns_per_query = 10
consolidation_interval = 100

[cache]
enabled = true
capacity = 1000
ttl_secs = 300
対話形式の設定

対話形式で設定するには、tetrad config を使用します。

🔧 Tetrad Interactive Configuration

What would you like to configure?
❯ General Settings
  Executors (Codex, Gemini, Qwen)
  Consensus
  ReasoningBank
  Save and Exit
  Exit without Saving

LRU キャッシュ

不要な再評価を避けるために、LRU キャッシュが組み込まれています。

  • 容量:設定可能(デフォルト:1000 エントリ)
  • TTL:設定可能な有効期間(デフォルト:5 分)
  • キー:コード + 言語 + 評価タイプのハッシュ
  • 無効化:TTL による自動無効化または手動無効化

フックシステム

フックを使うと、特定の時点での動作をカスタマイズできます。

フック実行タイミング用途
pre_evaluate評価の前リクエストの変更、評価のスキップ
post_evaluate評価の後ロギング、メトリクス、通知
on_consensus合意形成時承認時の自動アクション
on_blockコードがブロックされた時アラート、自動ロールバック
組み込みフック
  • LoggingHook:すべての評価を記録します
  • MetricsHook:使用統計を収集します

プロジェクト構成

tetrad/
├── Cargo.toml              # Crate manifest
├── CLAUDE.md               # Documentation for Claude Code
├── README.md               # This file
├── Tetrad.md               # Complete specification
├── src/
│   ├── main.rs             # Entry point (CLI)
│   ├── lib.rs              # Exportable library
│   ├── cli/
│   │   ├── mod.rs          # CLI definition with clap
│   │   ├── commands.rs     # Command implementations
│   │   └── interactive.rs  # Interactive configuration (dialoguer)
│   ├── executors/
│   │   ├── mod.rs
│   │   ├── base.rs         # CliExecutor trait
│   │   ├── codex.rs        # Codex executor
│   │   ├── gemini.rs       # Gemini executor
│   │   └── qwen.rs         # Qwen executor
│   ├── types/
│   │   ├── mod.rs
│   │   ├── config.rs       # TOML configuration
│   │   ├── errors.rs       # TetradError/TetradResult
│   │   ├── requests.rs     # EvaluationRequest
│   │   └── responses.rs    # EvaluationResult, ModelVote
│   ├── consensus/
│   │   ├── mod.rs          # Exports
│   │   ├── engine.rs       # ConsensusEngine
│   │   ├── aggregator.rs   # Vote aggregation
│   │   └── rules.rs        # Voting rules
│   ├── reasoning/
│   │   ├── mod.rs          # Exports
│   │   ├── bank.rs         # ReasoningBank
│   │   ├── patterns.rs     # Pattern types
│   │   ├── sqlite.rs       # SQLite storage
│   │   └── export.rs       # Import/Export
│   ├── mcp/
│   │   ├── mod.rs          # Exports
│   │   ├── server.rs       # MCP server
│   │   ├── protocol.rs     # JSON-RPC types
│   │   ├── tools.rs        # Tool handlers
│   │   └── transport.rs    # Stdio transport
│   ├── cache/
│   │   ├── mod.rs          # Exports
│   │   └── lru.rs          # LRU cache
│   └── hooks/
│       ├── mod.rs          # Hook trait and HookSystem
│       └── builtin.rs      # Default hooks
└── tests/
    ├── cli_integration.rs
    ├── consensus_integration.rs
    ├── mcp_integration.rs
    └── reasoning_integration.rs

開発

# Build
cargo build
cargo build --release

# Tests
cargo test                          # All tests
cargo test --lib                    # Unit tests only
cargo test --tests                  # Integration tests only

# Lint
cargo clippy --all-targets --all-features -- -D warnings

# Format
cargo fmt
cargo fmt --check

# Documentation
cargo doc --open

# Run CLI
cargo run -- status
cargo run -- doctor
cargo run -- version
cargo run -- config

トラブルシューティング

「CLI が見つかりません」
# Check if CLIs are in PATH
which codex
which gemini
which qwen

# Check configuration
tetrad doctor
「stdin is not a terminal」(Codex)

設定で exec --json が使用されていることを確認してください。

[executors.codex]
args = ["exec", "--json"]
「Response does not contain valid JSON」(Gemini)

設定で -o json が使用されていることを確認してください。

[executors.gemini]
args = ["-o", "json"]
Claude Code で MCP のステータスを確認する

Claude Code 内で、次を実行します。

/mcp

前提条件

Tetrad を使用するには、少なくとも 1 つの AI CLI がインストールされ、認証されている必要があります。

CLIインストールAPI キーなしで認証可能?無料枠
Codex CLInpm i -g @openai/codex✅ ChatGPT Plus/Pro/Businessサブスクリプション経由
Gemini CLInpm i -g @google/gemini-cli✅ Google アカウント1,000 req/day
Qwen CLInpm i -g qwen-code❌ DashScope キーが必要2,000 req/day

利用可能かどうかは、次のコマンドで確認できます。

tetrad status
tetrad doctor

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します(git checkout -b feature/amazing-feature)
  3. 変更をコミットします(git commit -m 'Add some amazing feature')
  4. ブランチにプッシュします(git push origin feature/amazing-feature)
  5. プルリクエストを作成します

ライセンス

MIT

作者

SamoraDC


リンク:

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。