MCP server for validating signed agent execution receipts.
Project description
Agent Receipt Validator MCP
A local stdio MCP server for validating signed agent execution receipts against evidence bundles.
This server wraps the verifiable-tool-invocation-flow Python package and exposes receipt validation as MCP tools for local clients such as Claude Desktop, Cursor, and other MCP-compatible agent runtimes.
What This MCP Server Does
- Validates an
execution_receipt.jsonpayload against anevidence_bundle.jsonpayload and a public key PEM. - Generates fresh demo artifacts using the same deterministic demo flow as the core package.
- Summarizes verification reports into verdict, failed checks, warnings, and errors.
- Runs locally over stdio.
Installation From Local Checkout
cd agent-receipt-validator-mcp
python3.13 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[test]"
MCP Client Config
Use this stdio configuration after installing the package in your local environment:
{
"mcpServers": {
"agent-receipt-validator": {
"command": "agent-receipt-validator-mcp",
"args": []
}
}
}
Tools
validate_receipt_json
Inputs:
receipt_json: JSON string containing an execution receipt.evidence_bundle_json: JSON string containing the evidence bundle.public_key_pem: public key PEM string.audience: expected audience, defaultdemo-validator.
Output:
{
"verdict": "valid",
"report": {
"verdict": "valid"
}
}
generate_demo_artifacts
Inputs:
audience: expected audience, defaultdemo-validator.
Output:
{
"receipt_json": "{...}",
"evidence_bundle_json": "{...}",
"public_key_pem": "-----BEGIN PUBLIC KEY-----...",
"verification_report_json": "{...}",
"verdict": "valid"
}
The demo artifacts are generated fresh at runtime. The server does not use static expired samples.
summarize_verification_report
Inputs:
verification_report_json: JSON string containing a verification report.
Output:
{
"verdict": "invalid",
"failed_checks": ["tool_output_hash_match"],
"warnings": [],
"errors": ["tool_output_hash_mismatch"]
}
Boundary Statement
This MCP server validates signed execution evidence. It does not prove semantic correctness of the tool output. It does not prove that the policy itself is correct. It does not protect against a compromised signer. It does not replace sandboxing, IAM, access control, monitoring, or human approval. Do not pass private keys, API tokens, confidential evidence bundles, or production receipts to untrusted MCP clients.
This first release is a local stdio MCP server. Remote Streamable HTTP hosting and Smithery publication are future tasks.
Related Projects
- Core repo: https://github.com/joy7758/verifiable-tool-invocation-flow
- PyPI package: https://pypi.org/project/verifiable-tool-invocation-flow/0.1.1/
- GitHub Action: https://github.com/marketplace/actions/verify-agent-execution-receipt
- Hugging Face Space: https://huggingface.co/spaces/joy7759/agent-receipt-validator
Publishing
This package is intended to be published through PyPI Trusted Publishing using GitHub Actions OIDC.
Workflow:
.github/workflows/publish.yml- TestPyPI environment:
testpypi - PyPI environment:
pypi
No PyPI API token is stored in this repository.
Trusted Publishing must be configured once in TestPyPI/PyPI before the workflow can publish.
Development
pytest tests/test_tools.py
agent-receipt-validator-mcp --help
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_receipt_validator_mcp-0.1.1.tar.gz.
File metadata
- Download URL: agent_receipt_validator_mcp-0.1.1.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83868b3b6e0f76e32fa946d5fc01272e200943d18ab0bc85273b67ea2c0554a7
|
|
| MD5 |
c4338f6ca21e62357074a787f3ef8f3e
|
|
| BLAKE2b-256 |
58e8817085ac14270efe71b6fa3962842cc0ba2d817659bbb7076556995e79aa
|
Provenance
The following attestation bundles were made for agent_receipt_validator_mcp-0.1.1.tar.gz:
Publisher:
publish.yml on joy7758/agent-receipt-validator-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_receipt_validator_mcp-0.1.1.tar.gz -
Subject digest:
83868b3b6e0f76e32fa946d5fc01272e200943d18ab0bc85273b67ea2c0554a7 - Sigstore transparency entry: 1346590438
- Sigstore integration time:
-
Permalink:
joy7758/agent-receipt-validator-mcp@fbc546ca78e5cd8641a5a9c025ed433b6518d5a0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/joy7758
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fbc546ca78e5cd8641a5a9c025ed433b6518d5a0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file agent_receipt_validator_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agent_receipt_validator_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad716176b62f41c637c1a70dc527ada3d8ebc7c4ac739179ddf4f9c65a54abf6
|
|
| MD5 |
279f2a0d096cc9048de5b045f67896ad
|
|
| BLAKE2b-256 |
16c870d8ce9e3cb5e574591f42d7d1ced25926d82f2690cfa5aa09057fd45ddc
|
Provenance
The following attestation bundles were made for agent_receipt_validator_mcp-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on joy7758/agent-receipt-validator-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_receipt_validator_mcp-0.1.1-py3-none-any.whl -
Subject digest:
ad716176b62f41c637c1a70dc527ada3d8ebc7c4ac739179ddf4f9c65a54abf6 - Sigstore transparency entry: 1346590530
- Sigstore integration time:
-
Permalink:
joy7758/agent-receipt-validator-mcp@fbc546ca78e5cd8641a5a9c025ed433b6518d5a0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/joy7758
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fbc546ca78e5cd8641a5a9c025ed433b6518d5a0 -
Trigger Event:
workflow_dispatch
-
Statement type: