Skip to main content

MCP server for Tuskr: read/search cases, validate setup, filter by automated, read test runs

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tuskr_mcp-0.2.1.tar.gz (90.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tuskr_mcp-0.2.1-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file tuskr_mcp-0.2.1.tar.gz.

File metadata

  • Download URL: tuskr_mcp-0.2.1.tar.gz
  • Upload date:
  • Size: 90.7 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for tuskr_mcp-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6acc80aa05e4b74f02422467930274dfd6f565230f9ac7ea42604775fc884086
MD5 3322b948eb570bd25c0e382ef1698a15
BLAKE2b-256 4067754fa2e006169b97cb07f0b81f86b03d2d356be26a6c6bbc8c93d1f8cdff

See more details on using hashes here.

File details

Details for the file tuskr_mcp-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: tuskr_mcp-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for tuskr_mcp-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a26ae67dcc2eccb52ba1c635c0c9ca44c352d94fb9f8300bfc2c4d978c77a745
MD5 15e6687056b32c85b6e9fe5d4c71f718
BLAKE2b-256 f5893bab2d1e4793b2190d211dcf7524f93828801f17815289bbc657189bf388

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page