Skip to main content

tuskr-mcp

MCP server for Tuskr test management — browse, search, and manage test cases from Cursor or any MCP host.

Python 3.10+ PyPI License: MIT

Requirements

Requirement Notes
Python 3.10–3.13 3.9 and older cannot install from PyPI
Tuskr API access Tenant ID + API token from Settings → API
Custom field automated Checkbox on test cases (required for automation tools)
Test case type AutoGen Only if you use create_test_case_minimal

pip install tuskr-mcp pulls in mcp and requests automatically.

Install

python3 --version   # must be 3.10+
pip install tuskr-mcp

From source (GitHub):

git clone https://github.com/Zapkid/tuskr-mcp.git
cd tuskr-mcp
uv sync
# or: python -m venv .venv && source .venv/bin/activate && pip install -e .

Setup

Copy config files

Pick one config location (both files must live in the same folder):

Option Folder Typical use
A. Project folder Your QA/automation repo root Same repo as your tests
B. User config ~/.config/tuskr-mcp/ One Tuskr setup for all Cursor projects

Option A — e.g. ~/projects/my-qa-repo/:

cd ~/projects/my-qa-repo
# copy from the tuskr-mcp repo if you cloned it, or create the files manually
cp /path/to/tuskr-mcp/.env.example .env
cp /path/to/tuskr-mcp/tuskr_projects.example.json tuskr_projects.local.json

Option B — shared config:

mkdir -p ~/.config/tuskr-mcp
cp /path/to/tuskr-mcp/.env.example ~/.config/tuskr-mcp/.env
cp /path/to/tuskr-mcp/tuskr_projects.example.json ~/.config/tuskr-mcp/tuskr_projects.local.json

(projects.json also works in ~/.config/tuskr-mcp/.)

Configure .env

TUSKR_TENANT_ID=your-tenant-id
TUSKR_API_TOKEN=your-api-token

Configure projects

Edit tuskr_projects.local.json in that same folder and set project_id per app (from the Tuskr project URL).

Connect Cursor

Add to ~/.cursor/mcp.json.

After pip install — set cwd to the folder where you put .env and tuskr_projects.local.json (Option A or B above). Cursor starts the server in that directory so tuskr-mcp can find your files:

{
  "mcpServers": {
    "tuskr": {
      "command": "python3",
      "args": ["-m", "tuskr_mcp"],
      "cwd": "/Users/you/projects/my-qa-repo"
    }
  }
}

Examples:

  • Option A: "cwd": "/Users/you/projects/my-qa-repo"
  • Option B: "cwd": "/Users/you/.config/tuskr-mcp"

Use the same Python you installed with (which python3 if needed). To pin a venv: "command": "/path/to/venv/bin/python".

From source (editable install in the tuskr-mcp clone):

{
  "mcpServers": {
    "tuskr": {
      "command": "/path/to/tuskr-mcp/.venv/bin/python",
      "args": ["-m", "tuskr_mcp"],
      "cwd": "/path/to/tuskr-mcp"
    }
  }
}

Verify

Restart Cursor, enable the tuskr server, then run health_check and validate_tuskr_setup with your app_name.

Tuskr custom fields (test cases)

Label Key Type When needed
Automated automated Checkbox Automation filtering and updates
Preconditions pre_conditions Text Optional on create
Priority priority Dropdown Optional on create
Steps steps Steps Required for create_test_case_minimal

Safe by design

Allowed Not allowed
List, search, read cases, steps, and test runs Update cases (except automated)
Create suites, sections, and new cases Delete anything
Set automated on existing cases

API calls use GET and POST only. Credentials stay in local .env and tuskr_projects.local.json (never committed).

Tools

Tool Purpose
health_check Env, projects file, API connectivity
validate_tuskr_setup Verify custom fields, AutoGen type, and API for one app
list_projects Apps defined in tuskr_projects.local.json
list_test_suites / list_sections / get_sections_tree Project structure
get_test_cases_by_section Paginated cases; automated_filter: any, automated, manual, unset
get_test_case / get_case_steps Single case and steps
search_test_cases Search by key, title, or step text
list_test_runs / get_test_run Read-only test runs
create_test_suite / create_section / create_test_case_minimal Create resources
set_test_case_automated / set_test_cases_automated_bulk Update automated only

Configuration

Variable Required Description
TUSKR_TENANT_ID Yes Tuskr tenant ID
TUSKR_API_TOKEN Yes API token
TUSKR_MCP_ENV_FILE No Override path to .env
TUSKR_PROJECTS_FILE No Override path to projects JSON

Lookup order: MCP cwd (see above), then the installed package directory (source install), then ~/.config/tuskr-mcp/. Override with TUSKR_MCP_ENV_FILE / TUSKR_PROJECTS_FILE (absolute paths recommended after pip install).

Troubleshooting

Problem What to do
pip install finds no version Use Python 3.10+; check with python3 --version
missing_env Create .env with tenant ID and token; restart Cursor
Empty list_projects Add apps to tuskr_projects.local.json
No module named tuskr_mcp Run pip install tuskr-mcp, or set cwd and use a venv Python when running from source
set_test_case_automated has no effect Add Tuskr custom field automated (Checkbox)
create_test_case_minimal fails Add test case type AutoGen in Tuskr
automated_filter returns nothing Confirm automated field exists; try filter any
Wrong case for C-2 vs C-20 Pass the full case key

License

MIT — Copyright (c) Rowan Kendal

Release files for tuskr-mcp 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tuskr-mcp 0.2.1
File Size Uploaded
tuskr_mcp-0.2.1.tar.gz 90.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tuskr-mcp 0.2.1
File Interpreter ABI Platform
tuskr_mcp-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 117.5 kB

Release files / tuskr_mcp-0.2.1.tar.gz

Download URL tuskr_mcp-0.2.1.tar.gz
Size 90.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6acc80aa05e4b74f02422467930274dfd6f565230f9ac7ea42604775fc884086
BLAKE2b-256 checksum
How to use checksums
4067754fa2e006169b97cb07f0b81f86b03d2d356be26a6c6bbc8c93d1f8cdff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / tuskr_mcp-0.2.1-py3-none-any.whl

Download URL tuskr_mcp-0.2.1-py3-none-any.whl
Size 26.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a26ae67dcc2eccb52ba1c635c0c9ca44c352d94fb9f8300bfc2c4d978c77a745
BLAKE2b-256 checksum
How to use checksums
f5893bab2d1e4793b2190d211dcf7524f93828801f17815289bbc657189bf388
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page