digline

dev.digline由 digline.dev 发布v0.8.1更新于 Nov 7, 2026

Read, measure and explain LLM eval runs of a digline suite. Cannot promote a baseline.

概览

AI 生成的概览

本地 MCP 服务器,让编码助手读取、比较和解释 digline 的 LLM 评测运行,并测量新的运行,但不能提升基线。

可以做什么
  • 列出、读取并解释某个套件的已存运行、基线与模型日志
  • 将一次运行与基线比较,或对比两次运行
  • 在确认计划的目标调用次数后执行套件
  • 查看各租户的记录状态,以及按用例和配置统计的已记录回答
  • 以事实形式建议首个套件,并给出写入它的命令
  • 报告项目位置及下一步应执行的命令
适用场景
当仓库中已有 digline 评测套件,且希望助手查看结果、判断某次改动是否让结果变差,或在明确调用预算下运行套件时使用。它不是通用的评测编写工具,也不能提升基线。
运行要求
需用 uv pip install digline-mcp 安装 Python 包,并以本地 stdio 服务器运行。每个仓库一个服务器,启动时用 --root 指向仓库,并必须提供 --names(clear 或 project,后者还需 --name-table)。--tenant 与 --env 仅用于校验。未声明账号、密钥或环境变量。
安装前请注意
所有工具(包括只读工具)都会加载所指定的套件,而 suite.py 会在服务器环境中执行项目代码。run 会消耗模型调用,需提供与套件计划调用数一致的 acknowledge_calls。响应为仅含判定结果的投影,但仍会进入模型上下文与记录。基线提升被刻意省略。

安装

在 SourceWeft 中

  1. 打开 控制台中的 digline,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

digline-mcp

The MCP server for digline: it lets a coding agent read a digline result and measure a new one, and it does not let the agent promote a baseline.

Not because promotion is refused. Because there is no such tool.

The thirteen tools

toolwhat it does
list_runsevery stored run of a suite, newest first, with the baseline marked
get_runone stored run — the verdicts, never the payload
get_baselinethe approved reference, same shape
logwhich model answered, read down the stored runs; never a gate
comparea run against the baseline: did it get worse?
difftwo runs, neither of them a reference: should I switch?
explainone run read back as typed facts, with the exit code
runexecute the suite, with the call count acknowledged first
wherewhere the project is, and the command for the next step
record_statuswhether each tenant records, and how much
record_listinga suite's recorded answers, counted by the shape of the output; never a yes or a no
record_comparea suite's recorded answers by case and by setup, each by its number in the answer
suggesta first suite, proposed as facts, with the command that writes it; writes nothing, asks no model

promote is absent by construction, and so are migrate, view, report, a record import that writes a yes or a no, and record on and off. A baseline is an approved reference, and promote writes into .digline/<tenant>/baselines/, which is committed — anything landing there arrives in somebody's diff and must arrive because they put it there. A refusal would be a conversation an agent could argue with; an absence is not.

Every tool, the reading ones included, loads the suite it is named. For a suite.py that executes the project's code, in the server's environment.

The reasoning is ADR 0011, and the judgement layer it turns into surface is AGENTS.md.

Install and configure

bash
uv pip install digline-mcp

One server serves one repository: the perimeter is the repo, and multi-project is N named servers rather than a registry.

json
{  "mcpServers": {    "digline-northwind": {      "command": "digline-mcp",      "args": ["--root", "/Users/you/src/northwind", "--names", "clear"]    }  }}

--tenant and --env are accepted and verify; they never override. The suite decides, as it does everywhere else in digline.

--names is required, with no default: clear lets the store's names leave as they are, and project projects every answer, so the names leave as tokens from the name table that --name-table module:attribute names; a refusal is not projected yet, and is a sentence (ADR 0054 §8). A configuration with --root alone no longer starts; --names clear keeps what it did. ADR 0054 has the reasons.

What run costs, before it costs it

run takes a mandatory acknowledge_calls that must equal the suite's planned calls to the target. Called without it, the tool refuses and hands back the number:

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

The first call is the probe. An agent cannot spend a hundred model calls without having stated the number — AGENTS.md §7 as a contract rather than as advice.

What never crosses

An MCP response goes into a model's context, and from there into transcripts and caches nobody controls. So the run tools return a verdict-only projection: the name, the identity, the status, the score, the threshold, the tolerance, the measured interval, and the metadata a suite disclosed.

Never the judge's reason — the judge quotes the output, so the reason is the output. Never the sentence explaining a suspension, never undisclosed metadata, never a case's inputs, and never a prompt or its digest unless the suite declares Disclosure(artifact_body=True). A declared file outside the perimeter is refused when the run is made; one under .digline or .git is refused by the command that would let it cross. Neither is dropped in silence.

来源:packages/digline-mcp/README.md,提交 1b5cf08

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:软件包安装失败。

版本历史

7
  1. v0.8.1最新Oct 31, 2026
  2. v0.8.0Oct 29, 2026
  3. v0.6.3Oct 26, 2026
  4. v0.6.2Oct 21, 2026
  5. v0.6.1Oct 19, 2026
  6. v0.6.0Oct 18, 2026
  7. v0.5.0Oct 12, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分