Skip to main content

Action surface compiler: turn observed web traffic into safe, versioned, agent-ready tools

Project description

CaskMCP

CaskMCP is a governed MCP capability supply chain with replayable proof.

Core contract:

  • caskmcp wow proves governance enforcement, replayability, and parity in one run.
  • caskmcp govern ... is the governance surface (approvals, lockfiles, drift gates, runtime policy).
  • caskmcp prove ... is the proof surface (prove-twice and smoke matrix).

Install

pip install caskmcp

For local development:

git clone https://github.com/caskmcp/CaskMCP.git
cd CaskMCP/cask
pip install -e .

Zero-Friction Wow

Default wow path is offline and browser-free:

caskmcp wow

Artifacts emitted on every run:

  • prove_twice_report.md
  • prove_twice_diff.json
  • prove_summary.json

caskmcp wow exits 0 only when all are true:

  1. Governance was enforced in fail-closed mode.
  2. Run A and Run B replay deterministically from the same governed inputs.
  3. Parity passed.

Optional Live Browser Path

pip install "caskmcp[playwright]"
python -m playwright install chromium
caskmcp wow --live

Traffic Capture, Without Friction

CaskMCP supports three practical capture paths so teams can start where they already are.

You already have Command Best for
Nothing yet (just want to see it work) caskmcp wow Fastest first run, no credentials, no browser deps
A first-party web flow caskmcp govern mint https://app.example.com -a api.example.com Capturing real authorized behavior
Existing artifacts (HAR, OTEL, OpenAPI) caskmcp capture import ... / caskmcp openapi ... Adopting CaskMCP without recapturing traffic

All three paths converge to the same governed runtime and proof loop (diff, gate, run, drift, verify, prove, wow).

  1. Offline fixture (no credentials, no browser install):
caskmcp wow
  1. Live browser capture (first-party authorized flows):
caskmcp govern mint https://app.example.com -a api.example.com
  1. Existing telemetry/spec imports:
caskmcp capture import traffic.har -a api.example.com
caskmcp capture import traces.json --input-format otel -a api.example.com
caskmcp openapi openapi.json -a api.example.com

Primary CLI Shape

caskmcp wow
caskmcp govern --help
caskmcp prove --help

Examples:

# Governed capture -> compile
caskmcp govern mint https://app.example.com -a api.example.com

# Review and approve pending lockfile
caskmcp govern diff --toolpack .caskmcp/toolpacks/<id>/toolpack.yaml --format github-md
caskmcp govern gate allow --all --lockfile .caskmcp/toolpacks/<id>/lockfile/caskmcp.lock.pending.yaml

# Enforced runtime + drift checks
caskmcp govern run --toolpack .caskmcp/toolpacks/<id>/toolpack.yaml
caskmcp govern drift --baseline .caskmcp/toolpacks/<id>/artifact/baseline.json --capture-id <capture-id>

# Prove matrix
caskmcp prove smoke

cask remains an alias for compatibility, but docs/defaults use caskmcp.

Why This Exists

MCP adoption is accelerating, while official guidance highlights tool-injection and trust risks in third-party MCP servers.

CaskMCP focuses on local governance and evidence, not bypass tooling.

Packaging

  • Distribution: caskmcp
  • Base install: supports offline wow
  • Extra: playwright (live/browser capture)
  • Extra: mcp (MCP SDK integration)
  • Extra: all (convenience install for mcp + playwright)

Development

pip install -e ".[dev,packaging-test]"
pytest tests/ -v
ruff check caskmcp tests
mypy caskmcp --ignore-missing-imports

Docs

Project details


Download files

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

Source Distribution

caskmcp-0.2.0b6.tar.gz (445.6 kB view details)

Uploaded Source

Built Distribution

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

caskmcp-0.2.0b6-py3-none-any.whl (270.2 kB view details)

Uploaded Python 3

File details

Details for the file caskmcp-0.2.0b6.tar.gz.

File metadata

  • Download URL: caskmcp-0.2.0b6.tar.gz
  • Upload date:
  • Size: 445.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for caskmcp-0.2.0b6.tar.gz
Algorithm Hash digest
SHA256 dbccb7d8a93f69473be9fc05c457007e73770c3d536e956e52a931d809ff7ee9
MD5 d21fee5b259e718cc311984c469f42c9
BLAKE2b-256 b2e2fc29736135801d889e6d544b9044ff293a3d13da8bbfe1e1ffa5b65f5747

See more details on using hashes here.

Provenance

The following attestation bundles were made for caskmcp-0.2.0b6.tar.gz:

Publisher: publish-pypi.yaml on caskmcp/CaskMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file caskmcp-0.2.0b6-py3-none-any.whl.

File metadata

  • Download URL: caskmcp-0.2.0b6-py3-none-any.whl
  • Upload date:
  • Size: 270.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for caskmcp-0.2.0b6-py3-none-any.whl
Algorithm Hash digest
SHA256 e1f907927713c7ce9fe133eff2024553d4310e4d9215f3222919cfaaaf017ee2
MD5 9795bd2e7da7a9ba9f5acc2d1fd16a33
BLAKE2b-256 13d94d6d61da385047233a01f0421fb665d08956aa140ff6700080bf6eb573de

See more details on using hashes here.

Provenance

The following attestation bundles were made for caskmcp-0.2.0b6-py3-none-any.whl:

Publisher: publish-pypi.yaml on caskmcp/CaskMCP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page