Skip to main content

assurance-mcp

PyPI Tests 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.1.tar.gz (12.5 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.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: assurance_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 12.5 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.1.tar.gz
Algorithm Hash digest
SHA256 97bb4227219e31b9da6422ee0ca63ebf07a8e6fd81e014d3f436946541aba4b9
MD5 3c158cc744be30353a317126ac396a27
BLAKE2b-256 6ec11d7791050c0b79ed309a329e636fe91f59a7a4aa87b1f07ba97251518482

See more details on using hashes here.

File details

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

File metadata

  • Download URL: assurance_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 df3a77aabe7d1273acfae7e84cdc93139947f3c90cb7a219d91b6cb93ef82f34
MD5 edccececbb7185c094749c84f6dae18f
BLAKE2b-256 e87d943dc9c7b01df935c70179cd80d05cd619edcf20fd8df8cd66123ff7b463

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

This release

0.1.1 This release

2 files

0.1.0

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