Skip to main content

assurance-mcp

PyPI Python License

Read-only. No writes, no deletes, no network. This MCP server exposes assurance checks as tools any agent can call. Point it at a folder and ask "did I read everything?" or "is this document still true?" — the findings are arithmetic, not model output.

Proven by test_the_server_never_writes in this repository: no tool opens a file for writing, and no requests, urllib, shutil, or delete calls exist in the package.

Depends on assurance-core for the decision logic. This package is the I/O that gathers facts; assurance-core is the verdict.

Install (under five minutes)

python3 -m venv .venv
source .venv/bin/activate
pip install assurance-mcp

That pulls in assurance-core, which holds the decision logic. Python 3.10 or newer.

Configure your MCP client

Cursor / Claude Desktop

Add to your MCP config (~/.cursor/mcp.json or Claude Desktop settings):

{
  "mcpServers": {
    "assurance": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["-m", "assurance_mcp.server"],
      "env": {}
    }
  }
}

Restart the client. You should see three tools: check_coverage_tool, check_staleness_tool, list_dated_files_tool.

Demo transcript

You: "Check coverage on ~/Downloads/monthly-reports"

Agent (calls check_coverage_tool):

{
  "folder": "/Users/you/Downloads/monthly-reports",
  "summary": "22 of 24 months — not in this folder: March 2024, July 2025",
  "complete": false,
  "coverage": {
    "read": 22,
    "required": 24,
    "missing": [
      {"key": "2024-03", "label": "March 2024"},
      {"key": "2025-07", "label": "July 2025"}
    ]
  }
}

Agent: "22 of 24 months are present. March 2024 and July 2025 are not in this folder."

That works from a cold start — no prior state, no database, no model.

Tools

Tool What it does
check_coverage_tool Given a folder (and optional period range), reports which months are present and which are not
check_staleness_tool Compares recorded figures to a source file the caller names — never searches for a match
list_dated_files_tool Lists periods found in dated filenames so an agent can decide what to ask next

Hard limits (honest)

  • CSV and TSV only in v1 — no XLSX dependency
  • Staleness needs recorded facts — pass recorded_facts or the document must be readable tabular data; otherwise the answer is uncheckable, not silence
  • No cross-document inference — comparing figures across files that merely look related produced 21 false positives on a real corpus; this package refuses to do that
  • The caller names the folder boundary — paths cannot escape via .. or symlinks

Run the tests

python -m pytest -q
python -c "import assurance_mcp.checks"

Licence

Apache-2.0. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

assurance_mcp-0.1.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

assurance_mcp-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file assurance_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: assurance_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.0

File hashes

Hashes for assurance_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 60ab1f502ae1d222d11bf99985319cd7788a40a64f02a13b11250d38de15d7e7
MD5 666821965ee99ffaeb955f8325207860
BLAKE2b-256 133453b9a4c8fa2ea645c6c664410732ae8650aa7c88731b9a9613195012fbcd

See more details on using hashes here.

File details

Details for the file assurance_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: assurance_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.0

File hashes

Hashes for assurance_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 32d11e172e0e42d8eefbab1dd6ab338c414ba51158fb831d1f7bf73e5a5fa718
MD5 f11846e8b3ab908ccff9d9e170173be6
BLAKE2b-256 3ce58411f355fdb19376ca5396db9c4ad99d64eac38f568a3597d428f76f47bf

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page