qualien-mcp
Add one MCP server to your assistant instead of five. qualien-mcp sits in front of Playwright, Filesystem, GitHub, your databases and more, and presents them as a single connection — curated for testing work.
Free and open source. It runs on your machine, not ours — nothing here uses qualien credits or sends your code anywhere.
Why a gateway
Your assistant can already connect to many MCP servers directly, so a gateway has to earn its place. This one does four things a pile of separate servers can’t:
- One endpoint — add a single entry to Claude Code, Claude Desktop, Cursor or any MCP client.
- Curation — enable or disable per server and per tool. Fewer, better-named tools mean the model picks the right one; hand it two hundred and it gets worse, not better.
- One log — every call is recorded with which server answered it, which tool ran, and how long it took.
- Clean shutdown — each downstream runs as a child process and all of them are torn down on exit, so you don’t collect orphaned browsers.
1. Add it to your assistant
That single entry gives your assistant every tool from every aggregated server. Out of the box it serves the QE starter pair — Playwright (browser automation, DOM, screenshots) and Filesystem (read and edit project files) — with no configuration at all. Tools arrive namespaced, so you’ll see playwright__browser_navigate rather than a bare name that could collide.
{
"mcpServers": {
"qualien": { "command": "npx", "args": ["-y", "qualien-mcp"] }
}
}2. Turn on what you need
Twenty-one servers ship in a built-in catalog — Playwright, Selenium, WebdriverIO, BrowserStack, GitHub, Jira, Confluence, Azure DevOps, Postgres, MySQL, Docker, Kubernetes, Sentry, Microsoft 365 and more. Enable one by key and supply only its secrets; no remembering package names. Drop a qualien-mcp.config.json in your working directory. Run npx qualien-mcp catalog to list them all with what each one needs.
{
"servers": {
"github": { "enabled": true },
"chrome-devtools": { "enabled": true },
"postgres": { "enabled": true, "env": { "DATABASE_URI": "postgres://…" } }
}
}The catalog keeps growing — servers are added as they prove useful for testing work. You don’t have to wait for one, though: any MCP server works today. Define it in full with its own command and args (or a url for a remote one) and it’s aggregated exactly like the built-in ones. The catalog only saves you looking up a package name — it isn’t a list of what’s allowed.
GitHub, without registering anything
Connecting GitHub takes one command — npx qualien-mcp login github — which prints a short code you approve in your browser. There is no OAuth app to register and no client secret anywhere.
It works that way because GitHub requires a client secret to exchange an authorization code, and a package published on npm can’t hold a secret. The device flow is the one grant that needs none, so qualien-mcp ships only a public client id and your tokens are minted on, and stay on, your own machine.
Safe by default
Guardrails are enforced centrally, before a call is forwarded, so they hold whatever the downstream server permits:
- Databases are read-only — writes and DDL are refused unless you opt in.
- Filesystem roots — a call whose path escapes the directories you allowed is refused.
- Destructive infra tools blocked — Docker and Kubernetes delete/prune/kill need an explicit opt-in.
Honest scope: these stop an assistant doing accidental damage. They are accident-prevention, not an adversarial sandbox.