MCP server implementation for Qase API
This is a TypeScript-based MCP server that provides integration with the Qase test management platform. It implements core MCP concepts by providing tools for interacting with various Qase entities.
The server provides tools for interacting with the Qase API, allowing you to manage the following entities:
list_projects- Get all projectsget_project- Get project by codecreate_project- Create new projectdelete_project- Delete project by code
get_cases- Get all test cases in a projectget_case- Get a specific test casecreate_case- Create a new test caseupdate_case- Update an existing test case
get_runs- Get all test runs in a projectget_run- Get a specific test run
get_results- Get all test run results for a projectget_result- Get test run result by code and hashcreate_result- Create test run resultcreate_result_bulk- Create multiple test run results in bulkupdate_result- Update an existing test run result
get_plans- Get all test plans in a projectget_plan- Get a specific test plancreate_plan- Create a new test planupdate_plan- Update an existing test plandelete_plan- Delete a test plan
get_suites- Get all test suites in a projectget_suite- Get a specific test suitecreate_suite- Create a new test suiteupdate_suite- Update an existing test suitedelete_suite- Delete a test suite
get_shared_steps- Get all shared steps in a projectget_shared_step- Get a specific shared stepcreate_shared_step- Create a new shared stepupdate_shared_step- Update an existing shared stepdelete_shared_step- Delete a shared step
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watch- Copy
.env.exampleto.envand add your Qase API token. - Generate HTTPS certificates (example with mkcert):
The cert files stay outside of git thanks to the
brew install mkcert nss # macOS example mkcert -install mkdir -p certs mkcert -cert-file certs/localhost.pem \ -key-file certs/localhost-key.pem \ localhost 127.0.0.1 ::1certs/entry in.gitignore. - Start the container (builds the image on first run):
The server exposes HTTPS on
npm run docker:start
https://localhost:3333(mapped from port 3000 in the container). - Stop the container with:
npm run docker:stop
- For background mode, use:
npm run docker:start:detached
To use with Claude Desktop, add the server config:
- On MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - On Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-qase": {
"command": "/path/to/mcp-qase/build/index.js",
"env": {
"QASE_API_TOKEN": "<YOUR_TOKEN>"
}
}
}
}-
Local Node Method (Recommended): Edit
~/.claude/claude_desktop_config.jsonand add:{ "mcpServers": { "qase": { "command": "node", "args": ["/absolute/path/to/mcp-qase/build/index.js"], "env": { "QASE_API_TOKEN": "your-api-token-here" } } } } -
Alternative - Docker Method: With the Docker container running:
{ "mcpServers": { "qase": { "command": "docker", "args": ["exec", "-i", "mcp-qase-mcp-qase-1", "node", "./build/index.js"] } } }
After editing the config, restart Claude Code to pick up the new server. The MCP tools will then be available for interacting with your Qase projects.
Once npm run docker:start is running, Codex can connect in either of two ways:
- Via the HTTPS endpoint (keeps the Dockerized proxy in play):
If your Node trust store does not include the mkcert CA, append
codex mcp add mcp-qase -- npx mcp-proxy --endpoint https://localhost:3333
--ca "$(mkcert -CAROOT)/rootCA.pem"to the command above. - Directly exec into the container (bypasses HTTPS and attaches to the raw MCP server):
Replace
codex mcp add mcp-qase -- docker exec -i mcp-qase-mcp-qase-1 node ./build/index.jsmcp-qase-mcp-qase-1with the container name reported bydocker compose psif your project directory name changes.
To use with Cursor, register the command as follows:
env QASE_API_TOKEN=<YOUR_TOKEN> /path/to/mcp-qase/build/index.js
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector:
npx -y @modelcontextprotocol/inspector -e QASE_API_TOKEN=<YOUR_TOKEN> ./build/index.js