Skip to main content

Security testing for agentic AI

Project description

{q-AI}

pre-commit CI CodeQL Python 3.11+ License: Apache 2.0 Docs

Security testing for agentic AI

A research program testing whether MCP and agentic AI vulnerabilities are exploitable end-to-end, with execution-level proof.

Model-layer tests like Garak, PyRIT, or BIPIA can tell you "this model follows injected instructions." An audit scan can tell you "this MCP server has a vulnerable tool." A qai finding connects the two: the model weakness was exploitable end-to-end through a real agentic system. Authenticated callbacks confirm execution, not just compliance.

The Intel workspace is the operator surface. A target-centric view where scan results, probe runs, and sweep findings accrue per target and drive payload generation for the end-to-end tests.

Capabilities:

  • Audit MCP servers
  • Intercept agent traffic
  • Test tool poisoning and prompt injection
  • Execute multi-step attack chains
  • Generate IPI payloads (adversarial documents with authenticated callbacks)
  • Poison coding assistant context files
  • Measure RAG retrieval rank

Local web UI orchestrates multi-module workflows. All findings stored in a SQLite database.

By Richard Spicer · {q-AI}


Quick Start

Scan an MCP server:

qai audit scan http://localhost:3000/sse

Transport is inferred automatically. Launch the web UI:

qai ui

Bring What You Have

Already running Garak or PyRIT, or working from BIPIA benchmarks? Import their results and let qai prove whether the weaknesses they found are exploitable in real agentic systems.

qai targets add "My Server" http://localhost:3000/sse
qai import report.jsonl --format garak --target <target-id>
qai import conversations.json --format pyrit --target <target-id>
qai import bipia.csv --format bipia --target <target-id>

Imported findings drive qai's native modules — inject payloads are prioritized based on compliance patterns your tools already discovered. Also supports SARIF from any tool.


Built-in Assistant

An AI assistant helps you discover capabilities, interpret scan results, and plan testing workflows. It uses RAG over qai's documentation and your own reference material, with a trust boundary model that separates trusted docs from untrusted scan output. Works with local models (Ollama) or cloud APIs.

qai config set assist.provider ollama
qai config set assist.model llama3.1
qai assist "how do I scan an MCP server?"

Framework Coverage

All audit findings map to four security taxonomies:

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

Install

pip install q-uestionable-ai

Or from source:

git clone https://github.com/q-uestionable-AI/qai.git
cd qai
uv sync --group dev

Full documentation at docs.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

Apache 2.0

AI Disclosure

This project uses a human-led, AI-augmented workflow. See AI-STATEMENT.md

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

q_uestionable_ai-0.10.8.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

q_uestionable_ai-0.10.8-py3-none-any.whl (749.3 kB view details)

Uploaded Python 3

File details

Details for the file q_uestionable_ai-0.10.8.tar.gz.

File metadata

  • Download URL: q_uestionable_ai-0.10.8.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for q_uestionable_ai-0.10.8.tar.gz
Algorithm Hash digest
SHA256 305926af5551b642479addd854bd693d460f8a40c5c2d87c707ac426e784eff5
MD5 a5c684224a9d2a3810cf09a9941dfe19
BLAKE2b-256 a8e9a7e7e51b2e3d11aa8ddcca7edd5e5339a3d3bcd258232c1175685dfacf93

See more details on using hashes here.

Provenance

The following attestation bundles were made for q_uestionable_ai-0.10.8.tar.gz:

Publisher: release.yml on q-uestionable-AI/qai

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

File details

Details for the file q_uestionable_ai-0.10.8-py3-none-any.whl.

File metadata

File hashes

Hashes for q_uestionable_ai-0.10.8-py3-none-any.whl
Algorithm Hash digest
SHA256 474f6632c11372d4c5eab3a42fcf92a22353c2f3c5e11d3fa61976bd14b88533
MD5 b91cba9218f8611c82ba077f2c365f02
BLAKE2b-256 ecb0f68a6bd09db5e6eb459b9091e76f0f77411ff410050e34ced5abe4530355

See more details on using hashes here.

Provenance

The following attestation bundles were made for q_uestionable_ai-0.10.8-py3-none-any.whl:

Publisher: release.yml on q-uestionable-AI/qai

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