digline について
diglineは、コーディングエージェントがリポジトリ内のLLM評価スイートを確認・実行するためのMCPサーバーです。判定結果を中心に返し、実行前に呼び出し回数の明示的な確認を求めます。ベースライン昇格機能はありません。
主な機能
- 01実行履歴とベースラインの確認
- 02実行結果の比較と判定の説明
- 03呼び出し回数を確認して評価スイートを実行
- 04判定結果のみを返却
- 05ベースライン昇格ツールなし
活用シーン
- 01保存済みの評価結果の確認
- 02実行結果とベースラインの比較
- 03予定呼び出し回数を確認してスイートを測定
MCP 対応
diglineの実行履歴の読み取りとスイートの測定を行う8つのツールを提供します。1インスタンスにつき1リポジトリを扱い、ベースライン昇格ツールはありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
digline-mcp
digline 用の MCP サーバーです。コーディングエージェントが digline の結果を読み取り、新しい結果を測定できますが、エージェントにベースラインを昇格させることはできません。
昇格を拒否しているのではありません。そのようなツールが存在しないのです。
8 つのツール
| tool | 機能 |
|---|---|
list_runs | スイートに保存されたすべての実行結果を新しい順に表示し、ベースラインを示します |
get_run | 保存された実行結果を 1 つ取得します。判定結果のみで、ペイロードは含みません |
get_baseline | 承認済みの参照値を同じ形式で取得します |
log | 保存された実行結果をさかのぼって、どのモデルが回答したかを示します。ゲートとしては使いません |
compare | 実行結果とベースラインを比較し、悪化したかどうかを示します |
diff | 参照値ではない 2 つの実行結果を比較し、切り替えるべきかを示します |
explain | 実行結果を型付きの事実として読み返し、終了コードを示します |
run | スイートを実行します。まず呼び出し回数の確認が必要です |
promote は設計上存在せず、migrate、view、report もありません。ベースラインは承認済みの参照値です。promote は .digline/<tenant>/baselines/ に書き込みますが、そこはコミット対象です。そこに置かれたものはすべて誰かの差分に現れるため、そこに置くのはその人自身でなければなりません。拒否であれば、エージェントが反論できるやり取りになりますが、存在しなければその余地はありません。
読み取り用のものを含め、すべてのツールは指定されたスイートを読み込みます。プロジェクトのコードを実行する suite.py の場合は、サーバーの環境内で実行されます。
その根拠は ADR 0011 にあり、表層に反映される判断レイヤーは AGENTS.md です。
インストールと設定
uv pip install digline-mcp
1 つのサーバーが提供するのは1 つのリポジトリです。境界はリポジトリであり、複数プロジェクトの場合はレジストリではなく、名前付きサーバーを N 個用意します。
{
"mcpServers": {
"digline-northwind": {
"command": "digline-mcp",
"args": ["--root", "/Users/you/src/northwind"]
}
}
}
--tenant と --env は受け付けられ、検証に使われます。上書きには使われません。他の digline の機能と同じく、値はスイートが決定します。
run のコストが発生する前に確認すること
run では必須の acknowledge_calls を指定する必要があり、その値はターゲットへの予定呼び出し回数と一致していなければなりません。これを指定せずに呼び出すと、ツールは拒否し、回数を返します。
run(suite="suite.py")
→ refused: this suite plans 100 calls to the target.
20 cases × 5 samples = 100 calls to the target; each answer is judged
3 times by llm_rubric.
Call again with acknowledge_calls=100.
run(suite="suite.py", acknowledge_calls=100) → executes
最初の呼び出しはプローブです。呼び出し回数を明示せずに、エージェントがモデルを 100 回呼び出すことはできません。これは助言ではなく、AGENTS.md §7 の契約として定められています。
外部に出ることのない情報
MCP の応答はモデルのコンテキストに入り、そこから、誰も管理できないトランスクリプトやキャッシュに入ります。そのため、実行ツールが返すのは判定結果のみの投影です。名前、識別情報、ステータス、スコア、しきい値、許容誤差、測定区間、そしてスイートが開示したメタデータです。
判定者の reason は決して含まれません。判定者は出力を引用するため、その理由自体が出力だからです。中断の理由を説明する文、非開示のメタデータ、ケースの入力、そしてスイートが Disclosure(artifacts=True) を宣言していない限り、プロンプトやそのダイジェストも決して含まれません。
実行時に、境界の外にあると宣言されたファイルは拒否されます。.digline または .git の下にあるファイルは、それを外部に出すコマンドによって拒否されます。どちらも黙って除外されることはありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。