Trust-boundary testing for agentic systems
Project description
CTPF Research Harness
Trust-boundary testing for agentic systems
CTPF Research Harness investigates Capability Trust Propagation Failure (CTPF): whether low-trust data (for example a tool result) is silently promoted into higher-authority actions when provenance, integrity, authorization scope, or intended audience are not preserved.
The product shape is a small local CLI: capture MCP traffic, mutate it under control via proxy, and keep runs/findings/evidence in SQLite. Individual experiments confirm or fail to observe promotion under pinned conditions — they do not “falsify CTPF” as a class.
Public CLI
| Command | Role |
|---|---|
ctpf proxy |
Intercept, inspect, modify, and export MCP traffic (Textual TUI) |
ctpf experiment |
Run controlled CTPF experiments |
ctpf targets |
Register MCP targets |
ctpf runs / ctpf findings |
Inspect stored runs and findings |
ctpf config / ctpf db |
Settings and local database maintenance |
ctpf --version |
Package version |
The former qai command remains a compatibility alias for ctpf during the identity transition.
Libraries (not root CLI pillars)
IPI document generators + headless callback, inject malicious MCP fixture servers, CXP context generators, and audit enumeration/SARIF export remain in-tree as libraries for research fixtures. They are not equal product modules on the public CLI.
Quick Start
pip install ctpf
# or from source:
git clone https://github.com/q-uestionable-AI/CTPF.git
cd CTPF
uv sync --group dev
Starting with v0.12.0, the former q-uestionable-ai distribution is a compatibility package
that installs the same-version ctpf distribution.
ctpf proxy --help
ctpf targets add "My Server" http://localhost:3000/sse
Framework mappings (library audit)
When using the audit library, findings can map to:
| Framework | Coverage |
|---|---|
| OWASP MCP Top 10 | All 10 categories |
| OWASP Agentic Top 10 | All 10 categories |
| MITRE ATLAS | Technique-level mapping per finding category |
| CWE | Weakness-level mapping per finding category |
Architecture notes: docs/Architecture.md. Published docs: ctpf.q-uestionable.ai.
Legal
All tools are intended for authorized security testing only. Only test systems you own, control, or have explicit permission to test. Responsible disclosure for all vulnerabilities discovered.
License
AI Disclosure
This project uses AI-assisted development. All code is reviewed and tested before merge.
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 ctpf-0.12.0.tar.gz.
File metadata
- Download URL: ctpf-0.12.0.tar.gz
- Upload date:
- Size: 593.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
792ff3d2901409a151b81adc90880f518f5a343c8ded7135ea7831014bd3de8d
|
|
| MD5 |
5456cb509562a1fa5099a3e6754c9f75
|
|
| BLAKE2b-256 |
33bc1861f3015b486b487257c5d24181d40a84f55e68a84ec9abe7f52fd98b4d
|
Provenance
The following attestation bundles were made for ctpf-0.12.0.tar.gz:
Publisher:
release.yml on q-uestionable-AI/CTPF
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ctpf-0.12.0.tar.gz -
Subject digest:
792ff3d2901409a151b81adc90880f518f5a343c8ded7135ea7831014bd3de8d - Sigstore transparency entry: 2165319619
- Sigstore integration time:
-
Permalink:
q-uestionable-AI/CTPF@ac289909f20c22f993a8457c4659e95d3931e5f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/q-uestionable-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ac289909f20c22f993a8457c4659e95d3931e5f9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ctpf-0.12.0-py3-none-any.whl.
File metadata
- Download URL: ctpf-0.12.0-py3-none-any.whl
- Upload date:
- Size: 397.2 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 |
fe12a4a94b9701ee5b5aa179016d894eb46bd13b7bcb153f6e12deab9e598689
|
|
| MD5 |
4ca34114a1ba599859699e272678057a
|
|
| BLAKE2b-256 |
11779901d78bc9b4f6e5ec46463eb428ed814fb07ddb987d61694693c5b35f26
|
Provenance
The following attestation bundles were made for ctpf-0.12.0-py3-none-any.whl:
Publisher:
release.yml on q-uestionable-AI/CTPF
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ctpf-0.12.0-py3-none-any.whl -
Subject digest:
fe12a4a94b9701ee5b5aa179016d894eb46bd13b7bcb153f6e12deab9e598689 - Sigstore transparency entry: 2165319703
- Sigstore integration time:
-
Permalink:
q-uestionable-AI/CTPF@ac289909f20c22f993a8457c4659e95d3931e5f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/q-uestionable-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ac289909f20c22f993a8457c4659e95d3931e5f9 -
Trigger Event:
push
-
Statement type: