Prerequisites
- Python 3.11 or later
- uv (recommended) or pip
- Node.js / npm — MCP server targets are typically npm packages. Install the example target used below with
npm install -g @modelcontextprotocol/server-memory. - LLM provider API key (optional) — Required only for
injectcampaigns andchainexecution. q-ai uses litellm for multi-provider support. Model strings use theprovider/modelformat (e.g.,anthropic/claude-sonnet-4-20250514,openai/gpt-4o,groq/llama-3.3-70b-versatile). Set the matching environment variable (e.g.,ANTHROPIC_API_KEY,OPENAI_API_KEY,GROQ_API_KEY) or store credentials in the OS keyring viaqai config set-credential. - sentence-transformers + chromadb (optional) — Required only for
rxpmodule. Install withpip install q-uestionable-ai[rxp].
Install
Configure a provider (optional)
If you plan to run injection campaigns, store your API key in the OS keyring:Run your first scan
Pick a target server
You can scan any MCP server you have permission to test. This guide uses the
official MCP memory server as an example. You don’t need to start the server
manually — q-ai spawns it via the
--command flag.Install the example target if you don’t have one:Run the scan
q-ai launches the server as a child process, connects over stdio,
enumerates its tools and resources, then runs all 10 OWASP MCP Top 10
scanner modules against it.
Enumerate a server
Before a full scan, you can quickly check what a server exposes:Launch the web UI
Runningqai with no subcommand starts the web UI:
qai findings list).
Use --port to specify a port, or --no-browser to start the server without opening a browser.
Try other modules
Next steps
- Core Concepts — MCP protocol, OWASP mapping, module methodologies, threat model
- Audit CLI Reference — full scan options and reporting
- IPI Overview — indirect prompt injection testing
- CXP Overview — context file poisoning for coding assistants