mcpField
D
digline

digline

ローカル
digline.dev開発ツール9今日更新

digline について

diglineは、コーディングエージェントがリポジトリ内のLLM評価スイートを確認・実行するためのMCPサーバーです。判定結果を中心に返し、実行前に呼び出し回数の明示的な確認を求めます。ベースライン昇格機能はありません。

主な機能

  1. 01実行履歴とベースラインの確認
  2. 02実行結果の比較と判定の説明
  3. 03呼び出し回数を確認して評価スイートを実行
  4. 04判定結果のみを返却
  5. 05ベースライン昇格ツールなし

活用シーン

  1. 01保存済みの評価結果の確認
  2. 02実行結果とベースラインの比較
  3. 03予定呼び出し回数を確認してスイートを測定

MCP 対応

diglineの実行履歴の読み取りとスイートの測定を行う8つのツールを提供します。1インスタンスにつき1リポジトリを扱い、ベースライン昇格ツールはありません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dev-digline-digline": {
"command": "uvx",
"args": [
"digline-mcp"
]
}
}
}
起動コマンドuvx digline-mcp

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

パッケージ
pypidigline-mcp0.7.0

ツール

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

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

詳細

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 の下にあるファイルは、それを外部に出すコマンドによって拒否されます。どちらも黙って除外されることはありません。

コメント

MCP は初めてですか?

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

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