QAmcp GitHub

QAmcp in the terminal

Everything the command-line tool can do, with an example for each. You need Node.js 20 or newer. Nothing to install first: npx downloads and runs it. It sends nothing anywhere except to the server you test.

Last updated: 27 October 2026

Start here

The three commands most people need

A server on the internet

npx qamcp-cli https://your-server.com/mcp

A server that runs on your computer

npx qamcp-cli --stdio "npx -y @your-org/your-server"

No server yet? Try the demo

npx qamcp-cli --demo

Starts a server we broke on purpose, on your computer only, tests it, and writes qamcp-demo-report.html. About 30 seconds.

Prefer to install it once? npm install -g qamcp-cli, then just type qamcp. See every option any time with npx qamcp-cli --help.

Options · What to test

Telling it what to test

--header "Name: value"Send a header, for a server that needs an API key. Example: --header "Authorization: Bearer YOUR_KEY". Can be repeated.
--loginFor a server that needs you to sign in: opens its login page in your browser. The login is used for this test only.
--stdio "<command>"Start this program and test it: a server that runs on your computer.
--env NAME=valueAn environment variable for the --stdio program, like an API key. Can be repeated.
--cwd <folder>The folder to start the --stdio program in.
--timeout <seconds>Time limit for each request. Default 20.
--no-historyDon't remember this server's tools between runs. Without it, the next run shows exactly what changed in the tools.
Options · Which tools may run

Choosing how much it may touch

By default it only runs tools the server labels read-only, and never runs tools that sound destructive, like delete_account, in any mode.

--before-installAbout to add someone else's server to Claude or Cursor? A quick safety look in plain words: red flags, and which tools can change, send or delete things. Calls no tools.
--look-onlyCall no tools at all; only read what the server says about itself. For a server you don't trust.
--ownerYour own server: also run unlabeled tools whose names clearly only read (get_, list_, search_…).
--run-unlabeledYour own test copy: run every tool not named or labeled dangerous. Never on live data.
Options · On every change

Testing on every commit and pull request

Before every commit

npx qamcp-cli --install-hook --stdio "npm start"

From then on every git commit tests your server first, and stops the commit if it scores below 80 (change it with --fail-under). Skip it once with git commit --no-verify.

In CI

npx qamcp-cli https://your-server.com/mcp --fail-under 80 --baseline base.json --save-baseline base.json --junit report.xml

On GitHub, the action QAmcp/qamcp-cli@v0 does this and comments the score on each pull request. See Run it in CI.

--fail-under <score>Fail if the score is below this.
--fail-on-failFail if any check failed.
--fail-on-tool-changeFail if a tool changed in a way that changes what an AI does (compared with the baseline, or the last run on this computer).
--baseline <file.json>Compare with a saved report; fail if the score dropped or a check got worse.
--max-drop <points>How far the score may fall below the baseline. Default 5.
--save-baseline <file>Save this report to compare with next time.
--install-hookTest this server on every git commit (see above).
Options · Reports

Saving and sharing the result

--html <file.html>A report page you can open and share. Works offline.
--json <file.json>The full report as data.
--markdown <file.md>A short report for pull-request comments.
--junit <file.xml>A JUnit report for CI systems.
Exit codes

Exit codes

0Fine.
1A check you required failed (a CI gate).
2Wrong options.
3Could not test: the server is down or needs a login.
Questions

Questions

Do I need to install anything?

Only Node.js 20 or newer. npx qamcp-cli downloads and runs the latest version for you.

Does it send my data anywhere?

No. It talks only to the server you test (and its login page, if it has one). No tracking, no telemetry.

Can it test a Python MCP server?

Yes. Test it by its link if it runs on a port, or start it with --stdio, for example --stdio "uv run server.py".

What does --before-install do?

It reads what a server says about itself, without calling any tool, and tells you in plain words about hidden instructions and which tools could change, send or delete things.