mcpField
S

SPARDA

ローカル
github.com/zyx77550セキュリティ87 週間前に更新

SPARDA について

SPARDAはバックエンドの動作を決定論的なグラフに変換し、AIが書いた変更やデプロイに安全性の回帰がないか静的に検査します。ローカルでオフライン検証を行いたいバックエンド開発者向けで、任意で動作グラフをAIクライアントに公開できます。

主な機能

  1. 01バックエンドを動作グラフに変換
  2. 02ガード削除や安全性の回帰を検出
  3. 03デプロイリスクと不変条件を検査
  4. 04リクエストを再生してテストを出力
  5. 05任意でMCP経由でグラフを公開

活用シーン

  1. 01認可ガードを削除する変更を阻止
  2. 02デプロイ前にバックエンドの安全性を確認
  3. 03本番リクエストを再生してテスト化

MCP 対応

任意でライブMCPサーバーを起動し、アプリのコンパイル済み動作グラフをツールとしてAIクライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"zyx77550-sparda": {
"command": "npx",
"args": [
"-y",
"sparda-mcp"
],
"env": {
"SPARDA_FLYWHEEL": "<SPARDA_FLYWHEEL>",
"SPARDA_RECORD_SEQUENCES": "<SPARDA_RECORD_SEQUENCES>"
}
}
}
}
起動コマンドnpx -y sparda-mcp
設定が必要な環境変数
SPARDA_FLYWHEELSet to `off` to disable serving proven-stable reads from memory (organs keep learning).
SPARDA_RECORD_SEQUENCESSet to `1` to enable Labs circuit recording (crystallizes repeated tool chains into composite tools).

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

パッケージ
npmsparda-mcp0.71.3

ツール

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

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

詳細

SPARDA

SPARDA — AI が書き、SPARDA が証明します。

🇫🇷 フランス語 — AI が書き、SPARDA が証明します。 AI による変更がガードを取り除いたり、ルートを公開したり、不変条件を破ったりしたときに検出する、決定論的なオフラインゲートです。API キーは不要で、エージェントの編集ループに直接組み込めます。10 分で全体を理解するには(課題、アーキテクチャ、ビジョン):SPARDA-EXPLIQUE.md。


AI が書き、SPARDA が証明します。

AI が書き、SPARDA が証明します。

AI が書いたバックエンドのための信頼レイヤーです。 SPARDA は、バックエンドのルート、データベースクエリ、状態変更、ガード、副作用を、1 つの決定論的な動作グラフにコンパイルし、リリース前に何が壊れ、何が壊れないかを静的に証明します。ガードされていない変更、不変条件の破損、非アトミックな集約書き込みはありません。

npm CI node runtime deps license

100% ローカル · 決定論的 · API キー不要 · クラウドアカウント不要。実際のリスクがある場合は明確に失敗し、アプリの一部しか確認できない場合は PROVEN (PARTIAL) と表示します。誤って問題なしとは判定しません。また、アプリ全体を確認できていないことを証明できる場合は PREMISE NOT VERIFIED と表示し、何も断定しません。

60 秒でわかる証明

Express、FastAPI、Flask、Next.js、NestJS、Medusa のアプリから実行できます。設定は不要です。

npx sparda-mcp apocalypse   # prove the tree is safe to deploy — exit 1 on any real risk, or on an unverified premise
npx sparda-mcp prove        # the whole verdict: proof + coverage + shareable seal
npx sparda-mcp badge        # a README badge: proven · coverage% · routes

内部では、バックエンドを言語に依存しない 1 つのグラフ、SBIR 仕様(SPARDA Behavior IR)に基づいて .sparda/ubg.json としてシリアライズされる Unified Behavior Graph(UBG) にコンパイルします。各コマンドは、そのグラフに対するパスとして実行されます。

切り札 — ガードを取り除く AI の編集をループ内で検出

テキスト差分レビューやパターンスキャナーでは、構造上できないことが 1 つあります。それは、この特定の編集によって、以前のバージョンにあった保護機能が失われたと証明することです。sparda gate は編集前後の動作グラフを比較し、リグレッションをブロックします。決定論的、オフライン、1 秒未満で実行され、終了コードは 2 です(エージェントの編集ループを止める Claude Code の PostToolUse コントラクトに対応)。セットアップ不要で、1 つのコマンドで最初から最後まで確認できます。

npm run wedge     # (from a clone)  — or drive it on your own app with `sparda gate --arm` then `sparda gate --hook`
  1. baseline armed on the guarded code   (POST /admin/delete-user · requireAdmin)
  2. an AI edit "simplifies" requireAdmin → a pass-through (still compiles, still 200s)
  3. sparda gate on the edit:
       ✗ [critical] GUARD_REMOVED — POST /admin/delete-user was guarded in the baseline
                    and is now reachable without any guard (src/app.js:11)
     ⏱  ~40 ms · deterministic · offline · no API key
     ⛔ exit 2 on --hook — Claude Code PostToolUse blocks the edit

1 行で Claude Code に組み込めます — プラグインは、各 Edit/Write の後に npx -y sparda-mcp gate --hook を実行する PostToolUse フックを登録します。これにより、ガードを取り除く編集が反映される前に検出されます。

重要


ルートコンパイルの証明 — ご自身で再現できます。 SPARDA は、実際の巨大なオープンソースプロジェクトを、それぞれ約 1~2 秒で、クラッシュゼロで動作グラフにコンパイルします。Next.js の Dub(579 ルート)、NestJS の Immich(281)、MedusaJS(477)に対応しています。深い依存性注入、外部コントローラー、Next.js ハンドラーをネイティブに解決します。次のコマンドを実行すると、プロジェクトをクローンし、お使いのマシンで再計測します。

node bench/repro.mjs        # → bench/route-proof.json

まずは正確に説明します。ルートの コンパイル はパーサーの結果(上記の数値)であり、安全性の 証明 はリポジトリごとに別途判定されます。実際のアプリの大半は NOT_PROVEN となりますが、これは失敗ではなく実際の状態です。(全 25 リポジトリを使ったストレステストでは、約 150 ルート/秒で 3,565 ルートをコンパイルします。このテストには、コーパスをチェックアウトする必要があります。)

グラフで可能になること — 100% ローカル、決定論的、バージョンを厳密に固定した依存関係 4 つ、API キー不要:

コマンド機能
prove信頼性の判定をワンアクションで — 証明+カバレッジ+前提条件の確認+共有可能なシール(--json / --markdown)
apocalypseデプロイを証明 — ガード、不変条件、トランザクション、集約境界のいずれも破れないことを検証します(SARIF + CI ゲート)
heal証明済みの自動修復 — Copilot Autofix にないゲートです。修正が反映されるのは、リプレイが一致し、verify が引き続き合格し、apocalypse が新たなリスクやガードの欠落を検出しない場合に限られます。修正したのが誰であれ、機械が判定します。
badge共有可能な成果物 — 自己完結型の SVG バッジ + README スニペット(判定結果・カバレッジ・ルート)
dossier公開レポート — 判定結果、リスク、SPARDA 自身の盲点をまとめた、自己完結型の HTML ページ
ubgコードベースを動作グラフにコンパイルします(Express・FastAPI・Flask・Next.js・NestJS・Medusa にネイティブ対応。OpenAPI 経由であらゆるスタックに対応)
timelessタイムトラベル — 本番環境のリクエストを記録し、バイト単位で同一の状態にリプレイして、バグをテストとして出力します
mirrorグラフを実行 — フレームワークもソースコードも使わず、コンパイル済みの動作を HTTP 経由で提供します
init / devランタイム(任意) — グラフをライブ MCP サーバーとして AI クライアントに公開します(+Twin、Immune、Evolution)

プロダクトの中核は証明機能です。MCP サーバーはグラフの一つの_出力_であり、目的ではありません。SPARDA はシステム全体の動作をコンパイルし、それを証明、リプレイ、自動修復し、(任意で)提供します。

用語: SBIR は仕様(「JSON」のようなフォーマット)です。UBG はコンパイル済みグラフそのもの(成果物の ubg.json)です。MCP サーバーはグラフの一つの_出力_であり、プロダクトそのものではありません。

オプション:AI クライアントにグラフを公開する(MCP ランタイム)

証明に加えて、SPARDA は実行中のアプリをライブ MCP サーバーにできます。書き込みの安全性と免疫レイヤーを備えた、実行可能なグラフです。これはオプションであり、上記の証明器とは別の機能です。

  1. スキャンして挿入 — アプリのディレクトリから一度だけ実行します。

    npx sparda-mcp init
    

    SPARDA はルート(AST)を解析し、マーク付きの /mcp ルーターを生成して、 バックアップを作成したうえでアプリに挿入し、sparda.json を書き込みます。すべての手順は元に戻せます。

  2. アプリを起動してから、ブリッジを起動します。

    npx sparda-mcp dev
    
  3. クライアントを接続します。 init は、アプリ名とパスをあらかじめ入力した claude_desktop_config.json 用の、そのまま貼り付けられる設定ブロックを出力します。

    {
      "mcpServers": {
        "your-app": {
          "command": "npx",
          "args": ["sparda-mcp", "dev"],
          "cwd": "/absolute/path/to/your-app"
        }
      }
    }
    

    Claude Code も同じブリッジに接続します。これで完了です。実行中のアプリが、AI から呼び出せる MCP ツール群になります。

スタンドアロンデモを試す

コードベースを変更せずに SPARDA の動作をすぐに確認するには、次のコマンドを実行します。

npx sparda-mcp demo

これにより、一時フォルダー内の同梱デモアプリで MCP のライフサイクル全体(検出 → 解析 → 生成 → 挿入 → 削除)が約 10 秒で実行されます。コンパイラー自体を実行するには、任意の Express/FastAPI アプリで npx sparda-mcp ubg を実行し、続けて apocalypse を実行します。

ブラックボックスレポート

SPARDA はローカルで動作する生命体として設計されています。記憶している内容と、どれだけの計算を再利用したかを確認するには、次のコマンドを実行します。

npx sparda-mcp report

公開されているツール、書き込みのオプトイン、証明ジャーナルの判定、結晶化された複合ツールを集約したターミナルダッシュボードが表示されます。

.sparda/report.html に自己完結型のオフライン HTML ダッシュボードを書き出すには、--html フラグを追加します。

npx sparda-mcp report --html

連携用に生の JSON を出力するには、次のコマンドを実行します。

npx sparda-mcp report --json

デプロイ前の証明:Apocalypse

SPARDA の動作グラフは、システムの形式モデルです。ランタイムエラーを待ったり、静的解析の感覚に頼ったりする代わりに、デプロイ前にバックエンドの安全性を静的に証明できます。

npx sparda-mcp apocalypse

このコマンドはコンパイル済みの .sparda/ubg.json を読み込み(ランタイム時のソースコード解析は一切行わず)、次の 5 つの静的正当性要件を検証します。

  • ガードされていない変更(重大):セキュリティ guard を通らない変更経路にフラグを立てます。
  • アトミックでない集約書き込み(高):API が同じ整合性ドメイン(集約)の複数のテーブルに対し、単一のトランザクションスコープ外で書き込みを行う場合にフラグを立てます。
  • 制約があるのに検証されていない書き込み(中):宣言された不変条件(CHECK、NOT NULL、UNIQUE)がある列への書き込みについて、事前の検証(Zod/Pydantic)がない場合にフラグを立てます。不変条件は .sql DDL または schema.prisma から解析され、Prisma の enum も含まれます。
  • 補償できない観測可能な副作用(高):状態の書き込みと同時に発生するプロセス外のアクション(Stripe の課金など)に、構造的な補償経路(返金を行う catch など)がない場合にフラグを立てます。
  • 集約メンバーのバイパス(情報):集約ルートを経由せず、メンバーテーブルを直接変更する場合にフラグを立てます。

現在のグラフを安全なベースラインとして保存するには、次のコマンドを実行します。

npx sparda-mcp apocalypse --save-baseline

以降の実行では、候補グラフとこのベースラインを比較して、次の回帰要因を検出します。

  • セキュリティ guard の削除(重大)。
  • データベースの SQL 不変条件の削除(高)。
  • API の影響範囲の拡大(中)。

重大または高の検出事項が見つかった場合、apocalypse はゼロ以外の終了コードで終了し、CI パイプラインをブロックします。

ワークフローの手順を 1 つ実行するだけで、検出事項が GitHub の Security タブに SARIF 形式で表示されます。

- uses: zakariagharzouli/sparda@main
  with:
    sarif: 'true'

タイムトラベル:Timeless

本番環境の各リクエストは、その作用の間では決定的です。コンパイラーは、非決定性がどこにあるか(db、http、clock、random、uuid:グラフの作用ノード)を正確に把握しています。Timeless はそれらのポイントだけを記録し(リクエストごとに数 KB)、データベース、Webhook、クロックを記録から仮想化して、現在のコードに対してリクエストをバイト単位で完全に同一に再生します。

npx sparda-mcp timeless                # list recorded flights
npx sparda-mcp timeless replay <id>    # re-fly it — byte-identical or loud divergence
npx sparda-mcp timeless export <id>    # the production bug is now a vitest test

アプリ(ESM)に記録処理を追加するのは2行だけです。決定論的なサンプリングと GDPR に準拠した編集機能も組み込まれています。

import { getFlightBox } from 'sparda-mcp/src/flight/box.js';
const box = getFlightBox(); box.arm();
app.use(box.middleware({ sample: 100 }));   // 1 request in 100; passwords/tokens redacted by default
const db = box.wrapClient(pgPool);           // your query client, tapped

他にはない閉ループです。本番環境のバグ → 記録されたフライト → 失敗するテスト → AI が修正を作成 → apocalypse が修正によってガード、不変条件、トランザクションが壊れないことを証明 → デプロイ。 リプレイはリクエスト単位です(同時実行レースのキャプチャーは v1 の対象外です。明記しており、隠してはいません)。

実証済みの自己修復:sparda heal

上記のループをひとつの操作で実行できます。誰が修正を書いたかにかかわらず、マシンがその修正を判定します。

npx sparda-mcp heal <flightId>                       # diagnose + write the fix brief
# ...apply the fix (a human, or --agent "your-ai-cli")...
npx sparda-mcp heal <flightId> --check --expect '{"status":404}'

概要はグラフ自体から作成されます。修正担当者には、ハンドラーの file:line、修正によって増やしてはならない機能、削除してはならないガードが渡されます。そしてゲート(これが実際の製品です)が、3つの観点から同時に修正を検証します。

  1. 動作 — 記録されたフライトを寛容にリプレイし(同じ決定論的な入力を使用)、記録されたバグではなく、期待される応答を生成するようになったかを確認します。修正ではクエリの再構成が認められます(タップに別のラベルを付けることは許可されます)が、作用の順序や種類を変更することはできません。
  2. コンパイラーの法則 — verify が引き続き成功すること。グラフの健全性と決定性が保たれていることを確認します。
  3. リグレッションなし — 修正前に凍結されたグラフとの差分を apocalypse で検証し、新しい重大または高リスクの検出がゼロであること、ガードが削除されていないこと、影響範囲が拡大していないことを確認します。
✓ HEALED & PROVEN — same recorded inputs, correct output, zero law broken, zero protection lost. Ship it.

ゲートは、どちらの場合も正直に判定します。未修正のバグも、ガードを密かに削除する「修正」も、ゲートを閉じたままにします(終了コード 1)。これこそ、もっともらしいコードを書く AI と、コードの正しさを証明するシステムの違いです。エージェント時代に欠けている信頼性のレイヤーです。

あらゆるバックエンドに対応:OpenAPI の低レベル化

SPARDA は Express、FastAPI、Next.js をネイティブに解析し、それ以外のあらゆるスタックも、業界で既に合意された形式を通じて扱います。Go、Java、Rails、Laravel、.NET も、OpenAPI 仕様があればコンパイルできます。

npx sparda-mcp ubg --openapi openapi.json

セキュリティスキームはゲートとして機能する guard ノードになり、レスポンススキーマは型付きの戻り値になり、宣言されたリクエストボディは検証済み入力として扱われます。仕様を .sql または schema.prisma ファイルと組み合わせると、宣言された事実に基づいて、不変条件、集約、ステートマシンを含む状態レイヤー全体が補完されます。(v1 では JSON 仕様に対応しています。依存関係なしで YAML を中途半端に解析することはしません。)

ミラー VM:フレームワークを削除しても、アプリは応答する

グラフは図ではなく、実行できます。

npx sparda-mcp mirror
MIRROR — the graph is serving. 3 entrypoint(s) on http://127.0.0.1:4477
  GET    /orders/{orderId}  → {amount, id, status}
  POST   /orders  🔒 bearerAuth  → {amount, id, status}

Express も FastAPI もソースコードも必要ありません。ubg.json だけで HTTP に応答します。ガードは実際にアクセスを拒否し(401)、レスポンスはコンパイル済みの戻り値スキーマに従って生成され、未知のパスにはルートテーブル全体とともに 404 を返します。フロントエンドチームは、まだデプロイされていないバックエンド、あるいはまだ書かれていないバックエンドを使って開発できます(mirror の参照先に OpenAPI 仕様を指定します)。すべてのレスポンスには x-sparda-mirror: true が含まれます。ミラーは宣言された動作を提供しますが、ビジネス上の値をでっち上げることはありません。

すべてを元に戻すには、npx sparda-mcp remove を実行すると、コードがバイト単位で完全に元の状態に復元されます。

その約束はすべて、CI のテストで裏付けられています

SPARDA の機能

  1. 3分、コマンドは1つ。 AST スキャン、ルーター生成、元に戻せるインジェクションを、設定なしで実行できます。
  2. 無料で試せて、無料でやめられます。 npx sparda-mcp remove を実行すると、コードがバイト単位で完全に元に戻ります(JS、TS、Python、Windows の CRLF ファイルでもテスト済みです)。痕跡は残らず、ベンダーロックインもありません。
  3. あなたが許可するまで、AI は書き込みません。 すべての POST/PUT/DELETE はデフォルトで無効です。ツールごとに有効化でき、その選択は再実行しても保持されます。
  4. アプリが自らを守ります。 ルートで3回連続して失敗すると隔離されるため、AI が本番環境の壊れたルートにリクエストを送り続けることはありません。レイテンシーの異常も検知されます。LLM は不要です。
  5. マシンの外にデータが出ることはありません。 当社へのテレメトリー送信はなく、クラウドも使用しません。ローカルキー認証を採用し、依存関係は正確に固定された4つだけです。
  6. 学習した内容は失われません。 診断、説明、設定は Git でバージョン管理され、再初期化しても保持されます。

保証しないことについては、docs/SECURITY.md の正直な制限事項をご覧ください。

仕組み

  1. npx sparda-mcp init はコードベースを解析し(AST)、すべてのルートを抽出して、小さなマーカー付きルーター(/mcp)をアプリに挿入します。npx sparda-mcp remove で完全に元に戻せます。
  2. ツールの呼び出しは稼働中のアプリプロセス内で実行されます。ウォーム状態の DB プール、実際の認証チェーン、実データを利用できます。SPARDA はインフラを追加しません。コンピューティングはホストプロセスから、インテリジェンスは AI クライアント独自のモデル(MCP サンプリング)から、ストレージは sparda.json と Git から提供されます。
  3. 書き込みツール(POST/PUT/DELETE)はデフォルトで無効です。sparda.json でツールごとに有効化でき、その選択は再実行しても保持されます。
  4. 不審な docstring は、AI に届く前にサニタイズされます(プロンプトインジェクション対策)。
  5. npx sparda-mcp doctor --app はコードベースのドリフトを監査します。古くなったツール(AI が存在しないツールを認識している状態)、未同期のルート、フィンガープリントによるスキーマのドリフト、ゾンビ設定を検出します。重大度の高い問題がある場合は、CI パイプラインでゼロ以外の終了コードを返します。
  6. npx sparda-mcp seed export/import を使うと、アプリの「ゲノム」(意味記憶、ワークフロー、抗体)を安全にパッケージ化して共有できます。データを漏えいさせることなく、環境間や類似したスタック間で免疫記憶を移転できます。
  7. npx sparda-mcp twin は、元のポートでバックエンドの安全なシミュレーション用モックサーバーを起動します。学習済みの実例(観測されたレスポンスの形状とモックデータ)を使って GET 呼び出しに応答し、実際のデータベースや本番 API に触れることなく、シミュレーションによる202書き込みを返します。npx sparda-mcp twin --learn を実行すると実例を学習できます。
  8. npx sparda-mcp grammar は、有効なツール呼び出しシーケンスのグラフ(観測された回路と候補となる仮説)をマッピングし、LLM によるルートの幻覚を防ぎます。
  9. npx sparda-mcp evolve は候補チェーンを変異させ、twin 上でメモリー内テストを行い、成功したチェーンを進化したワークフローの提案として昇格させます。

SPARDA が AI に提供するもの

読むだけでなく、操作する

すべてのルートが、稼働中のプロセスに対して実行されるツールになります。実際の認証、実データ、ウォーム状態の接続を利用できます。sparda_get_context を1回呼び出すだけで、AI に稼働中の全体像を渡せます。有効なツール、推奨ワークフロー、ランタイムのテレメトリー、隔離状態、免疫記憶が含まれるため、各セッションは前回の続きから再開できます。

書き込みの安全性:あなたが許可するまで、AI は書き込みません
  • 書き込み(POST/PUT/DELETE)は無効な状態で提供されます。sparda.json でツールごとに有効化できます。その選択は再初期化しても保持されます。
  • 有効化した書き込みも、最初の呼び出しでは決して実行されません。SPARDA は、使い捨てトークンとアクションのプレビューを含む awaiting_confirmation エンベロープを返し、明示的な確認ステップの後にのみ確定します。
  • クライアントが MCP elicitation に対応している場合、確認プロンプトはAI 自身の UI に表示されます。
  • 書き込み後の検証:書き込みが成功するたびに同じリソースを読み戻すため、AI とあなたの両方が、期待に基づく推測ではなく実際の効果を確認できます。
アプリが自らを守ります — ホットパスでLLMは不要です
  • 隔離。 あるツールが5xxを3回連続で返すと、隔離されます。壊れたルートにリクエストを送り続ける代わりに、それ以降の呼び出しには理由と再試行までの待機時間を含む503が返されます。クールダウン後、単一のプローブに限り、半開状態になります。
  • レイテンシと異常のフラグ。 ルーターは各ルートのベースラインを学習し、数行の計算で局所的に逸脱を検出します。
  • 適応型の診断は、予期しない事態が起きた場合のみ。 まったく新しい障害が発生すると、AI クライアント自身のモデルが起動して一度だけ診断します。その診断はsparda.jsonに「抗体」としてキャッシュされるため、同じ障害が再発してもトークンを消費しません。コードをクローンしても、免疫記憶はクローンされません。
無料のインテリジェンスレイヤー、API キー不要

初回接続時に、AI クライアント自身のモデルが(MCP サンプリングを介して)生のルートをビジネス用語のツール説明に書き換え、複数ステップのワークフローを提案します。これらはsparda.jsonにキャッシュされ、MCP プロンプトとして公開されます。設定も支払いも不要です。

使うほどコストが下がります
  • レスポンスの再利用。 読み取りで同じ回答が繰り返し返される場合、SPARDAは次の同一呼び出しに対して、ホストアプリに触れることなくメモリから直接応答します。対象は読み取りのみです。書き込みは常にホストに送られます。
  • 再利用率メーター。 GET /mcp/statsは、SPARDA独自のナレッジから応答された呼び出し数と、ホストのルートを利用した呼び出し数をカウントします。初日は0%で、利用とともに増えていきます。これは測定値であり、保証ではありません。
誰も書いていないツール — Labs、オプトイン方式、デフォルトではOFF

sparda.jsonに"labs": { "recordSequences": true }を設定して有効にします。SPARDAは、あるツールの出力が次のツールの入力に渡される状況を検出し、回路を記録します。記録するのは構造のみ(ツール名、引数名、回数)で、データは一切記録しません。読み取り専用の回路が十分な回数検出されると、複合ツールに結晶化され、セッション中に通知されます。1回の呼び出しでチェーン全体が実行され、各ステップには前のステップの実際のレスポンスが自動的に渡されます。書き込みルートは決して取り込まれません。呼び出しごとの確認は常に必要です。

生きたコンテキストとテレメトリー

GET /mcp/stats(ツールごとの呼び出し数/エラー数、ツールの「純度」、隔離状態)と GET /mcp/events(エラー、レイテンシ異常、キャッシュされた診断)により、アプリが実行している内容を正確に確認でき、ライブ通知としてAIに提示されます。

AI クライアント向けに構築:付属のSkill

SPARDAにはAgent Skill(SKILL.md)が付属しており、互換性のあるあらゆる AI クライアントに、SPARDAサーバーの能力を最大限に引き出す方法を教えます。まず sparda_get_contextを呼び出し、レスポンスの再利用を活用し、隔離状態を尊重し、チェーンを再実行するより結晶化された回路を優先し、2段階の書き込み確認プロトコルに従います。プロジェクトごとの最新のツール一覧は、実行時に常にsparda_get_contextから取得されるため、ガイダンスが古くなることはありません。

対応フレームワーク

  • Next.js App Router (13/14/15) — ファイルベースの注入。SPARDAがキャッチオールのルートハンドラーを作成します。ラップされたハンドラー(export const POST = withAuth(h))や、深いエフェクトチェーンをネイティブに解決します。
  • NestJS — ASTベースのルーター注入。多段の依存性注入(Controller → Service → Repository)、継承されたDI、baseUrl/pathsのインポートを深く解決します。Prisma、TypeORM、Kyselyに対応しています。
  • Express 4/5(JS/TS、ESM/CJS) — ASTベースのルーター注入。外部コントローラー、Mongooseスキーマ、バレル再エクスポートを深く解決します。動的なツリースキャンを使い、標準外のエントリーポイント(bootstrap.tsなど)を検出します。
  • MedusaJS — 複雑なEコマースのルーティングをネイティブのAST解析で取り込みます。
  • あらゆるバックエンド(Go、Java、Rails、Laravel) — OpenAPI 3.xの仕様から、問題なくコンパイルできます。
  • FastAPI(Python >= 3.9) — ASTベースのルーター注入。

セキュリティ体制(誠実な説明)

  • ランタイム依存関係は4つで、バージョンは完全に固定されています。
  • 動的なローカルキー解決。 生成されたルーターにシークレットは埋め込まれません。実行時に、環境変数 SPARDA_LOCAL_KEY またはローカルの gitignore 対象ファイル .sparda/key から認証キーを解決します。どちらも見つからない場合は、フェイルクローズ(503)になります。本番環境やステージング環境のカスタム設定では、環境変数に SPARDA_LOCAL_KEY を公開してこの動作をオーバーライドできます。
  • ルーター呼び出しごとにローカルキーを使用し、自己参照ループを保護します。タイムアウトは30秒、出力の切り捨ては8 KBです。
  • AST の位置に基づく挿入と、バックアップおよび挿入後の再解析に対応しています。npx sparda-mcp remove を実行すると、クリーンな git diff が残ります。
  • 永続化するデータに値は含まれません。SPARDA が記録するのは構造(ツール名、フィールド名、フィンガープリント)であり、ペイロードは記録しません。

完全な脅威モデルと既知の制限事項については、docs/SECURITY.md をご覧ください。

ドキュメント

  • docs/ARCHITECTURE.md — init、挿入されるルーター、ブリッジの連携、および sparda.json のスキーマについて説明します。
  • docs/SECURITY.md — 脅威モデル、防御策、既知の制限事項について説明します。
  • docs/TESTING.md — 上記の約束を CI でどのように検証しているかを説明します。
  • docs/ERRORS.md — エラーのナレッジベースです。

オープンコアのその先

SPARDA は無料で、本番環境でも利用できます(ライセンスを参照)。チーム規模での利用に向けた機能 — 担当者ごとのきめ細かなアクセス方針と、署名付きの改ざん検知可能な監査ログ — は、 将来の有料プラン向けに計画されています。オープンコアだけで完結しており、アップセルを目的に機能を 制限している箇所はありません。

ライセンス

Business Source License 1.1 — 本番環境での利用を含め、無料で使用できます。 SPARDA の再販売、および競合する商用サービスとしての提供は禁止されています。 各バージョンはリリースから4年後に Apache 2.0 に移行します。

スターを付ける

Residual Labs による制作

コメント

MCP は初めてですか?

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

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