mcpField
D
Datumline Agent Guard

Datumline Agent Guard

Local
github.com/datumlineAI & Agents1Updated 3w ago

About Datumline Agent Guard

Datumline Agent Guard independently checks whether an AI agent's completion claim matches the files and URLs listed in a manifest. It is for agent workflows and CI gates, and reports missing artifacts as FALSE_DONE rather than verified completion.

Key features

  1. 01Verify files, JSON fields, and URLs
  2. 02Check size, contents, status, and hashes
  3. 03Distinguish FALSE_DONE from other verdicts
  4. 04CLI and Python library interfaces
  5. 05GitHub Action for workflow gating
  6. 06MCP tool for completion checks

Use cases

  1. 01Reject agent claims with missing outputs
  2. 02Gate CI on artifact verification
  3. 03Check a manifest before accepting completed work
  4. 04Verify artifacts through an MCP client

MCP support

Provides the verify_completion_claim tool to MCP clients. It accepts a manifest or manifest path, checks the named files and URLs, and returns a verification receipt.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"datumline-agent-guard": {
"command": "uvx",
"args": [
"datumline-agent-guard"
]
}
}
}
Run commanduvx datumline-agent-guard

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypidatumline-agent-guard0.2.0

Tools

1

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
manifestobjectNoManifest: {job, claimed_status, artifacts:[{type, path|url, ...checks}]}
manifest_pathstringNoPath to a manifest JSON file, instead of passing 'manifest'.

Details

From the project README

datumline-agent-guard

An independent verifier for AI agent work. An agent says a job is COMPLETED; agent-guard checks the artifacts it claims to have produced and returns a verdict. A completion claim with a missing artifact is reported as FALSE_DONE, not as a pass.

Standard library only, no dependencies. It imports nothing from the runtime it audits, so it can contradict that runtime.

Install

pip install datumline-agent-guard

CLI

agent-guard manifest.json          # human-readable receipt
agent-guard manifest.json --json   # machine-readable receipt

Exit code is 0 only on VERIFIED; every other verdict exits 1 (bad input exits 2), so it can gate CI or an agent loop.

Manifest

{
  "job": "WO-123",
  "claimed_status": "COMPLETED",
  "artifacts": [
    {"type": "file", "path": "out/report.md", "min_bytes": 200, "must_contain": ["## Findings"]},
    {"type": "json", "path": "out/feed.json", "required_keys": ["last_marked", "entries"]},
    {"type": "url",  "url": "https://example.com/feed.json", "status": 200, "must_contain": ["last_marked"]},
    {"type": "file", "path": "out/data.parquet", "sha256": "<hex>"}
  ]
}

Relative paths resolve against the current working directory.

Verdicts

VerdictMeaning
VERIFIEDevery artifact is present and passes every check
FAILEDan artifact is present but fails a check, or is absent without a completion claim
FALSE_DONEclaimed_status is COMPLETED / COMPLETE / DONE / VERIFIED and at least one artifact is absent
UNVERIFIABLEthe manifest asserts no artifacts; fail-closed, never green

Library

from datumline_agent_guard import verify, verify_file

receipt = verify({"claimed_status": "COMPLETED", "artifacts": [{"type": "file", "path": "out/report.md"}]})
if receipt["verdict"] != "VERIFIED":
    raise SystemExit(receipt["verdict"])

GitHub Action

Fail a workflow when an agent's "done" doesn't check out:

- uses: datumline/[email protected]
  with:
    manifest: agent-output/manifest.json   # what the agent claims it produced
    # fail-on: false-done                  # only fail on FALSE_DONE (default: anything but VERIFIED)

The step installs this package from the action's own source (no network fetch), writes the receipt to the job summary, sets the verdict and receipt outputs, and exits non-zero unless the verdict is VERIFIED. It needs python3 3.9+ on the runner, which GitHub-hosted runners have.

MCP server

The same verifier as an MCP tool, verify_completion_claim, for Claude, ChatGPT, Copilot, Cursor or any MCP client. Standard library only, stdio transport.

{
  "mcpServers": {
    "agent-guard": { "command": "uvx", "args": ["datumline-agent-guard"] }
  }
}

Or pip install datumline-agent-guard and run datumline-agent-guard (alias agent-guard-mcp). The tool takes manifest (object) or manifest_path (string) and returns the receipt; anything other than "verdict": "VERIFIED" means not done. It reads the files and fetches the URLs the manifest names, and sends nothing anywhere else.

LangChain

pip install "datumline-agent-guard[langchain]"
from datumline_agent_guard.langchain_tool import AgentGuardTool

tool = AgentGuardTool()  # name: agent_guard_verify
tool.invoke({"manifest": {"claimed_status": "COMPLETED", "artifacts": [{"type": "file", "path": "out/report.md"}]}})
# -> JSON receipt; anything other than "verdict": "VERIFIED" means not done

Give it to an agent as a tool, or call it yourself before accepting the agent's "done". It also takes manifest_path instead of manifest. It passes LangChain's standard tool tests (langchain-tests). Requires Python 3.10+; the core package needs only 3.9 and has no dependencies.

Related

The same verifier ships inside the free, MIT-licensed Receipted Operator Claude Code plugin, which adds a receipt ledger, truthful statuses and a hook that refuses unreceipted "done". Datumline also publishes paid method kits at datumlinehq.gumroad.com.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.