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.7.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.7-py3-none-any.whl (749.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: q_uestionable_ai-0.10.7.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.7.tar.gz
Algorithm Hash digest
SHA256 8c7b2c2bf1392c8e0e9d32940ae5749c9c6ccbc3e36a91417908ed3b99acbb0f
MD5 366e81df55791315e4a94f2f96bd0475
BLAKE2b-256 2c3e9c46ebeed723a35e69156cae6759a58ad24ca48a3948d4bf04edda3f5d71

See more details on using hashes here.

Provenance

The following attestation bundles were made for q_uestionable_ai-0.10.7.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.7-py3-none-any.whl.

File metadata

File hashes

Hashes for q_uestionable_ai-0.10.7-py3-none-any.whl
Algorithm Hash digest
SHA256 259ebc4c82e1c6a0d6a5bd91fde3d8833f0d6107dcda84bd1fb2368fd4d82ff7
MD5 bb66156d1662aa7070089708a294d240
BLAKE2b-256 9f51eef255684da67b1f2047a857d94f0779a80feca92916e4e9deaf9bf72944

See more details on using hashes here.

Provenance

The following attestation bundles were made for q_uestionable_ai-0.10.7-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