TestPlanIt MCP Server

Reads and edits test cases, runs, results and milestones in a TestPlanIt test management instance

Official · TestPlanIt TypeScript Local · stdio TestingProductivity

47 popularity score ★ 61 ↓ 267/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs TESTPLANIT_API_TOKEN. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add testplanit -e TESTPLANIT_API_TOKEN=<TESTPLANIT_API_TOKEN> -- npx -y @testplanit/mcp-server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "testplanit": {
      "command": "npx",
      "args": [
        "-y",
        "@testplanit/mcp-server"
      ],
      "env": {
        "TESTPLANIT_API_TOKEN": "<TESTPLANIT_API_TOKEN>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "testplanit": {
      "command": "npx",
      "args": [
        "-y",
        "@testplanit/mcp-server"
      ],
      "env": {
        "TESTPLANIT_API_TOKEN": "<TESTPLANIT_API_TOKEN>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "testplanit": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@testplanit/mcp-server"
      ],
      "env": {
        "TESTPLANIT_API_TOKEN": "<TESTPLANIT_API_TOKEN>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.testplanit]
command = "npx"
args = ["-y", "@testplanit/mcp-server"]

[mcp_servers.testplanit.env]
TESTPLANIT_API_TOKEN = "<TESTPLANIT_API_TOKEN>"
Gemini CLITerminal
gemini mcp add --scope user -e TESTPLANIT_API_TOKEN=<TESTPLANIT_API_TOKEN> testplanit npx -- -y @testplanit/mcp-server

Settings 2

TESTPLANIT_API_TOKEN Required: TestPlanIt API token (starts with tpi_); validated at start.
TESTPLANIT_API_URL Optional: Base URL of your TestPlanIt instance; defaults to https://app.testplanit.com, set it for a self-hosted instance.

What it does

The TestPlanIt MCP Server is the TestPlanIt project's own bridge between an MCP client and the TestPlanIt test management app. It runs on your machine over stdio and calls your TestPlanIt instance's REST API with a personal API token, so the assistant sees the same projects that token can see.

Its 54 tools cover most of the day-to-day work in the app: browsing and filtering test cases, counting coverage by folder, tag or state, creating cases singly or in bulk against a template, managing the folder tree, building and completing test runs, recording results (including per-row results for data-driven cases), exploratory sessions, linked issues such as Jira keys, milestones and the review inbox. It can also ask TestPlanIt to dispatch a run's automated cases to a CI target and generate QuickScript automation scripts from cases.

The token decides how much it may do. A token created with the read-only scope (mode:read) is blocked from every write by the TestPlanIt API itself, and a token marked as an agent token (client:mcp) makes its changes show up as MCP in the audit log.

One detail the README leaves out: although its table marks TESTPLANIT_API_URL as required, the 1.1.0 code falls back to https://app.testplanit.com when it is not set (src/env.ts), so users of the hosted TestPlanIt service only need the token; self-hosted users must set the URL.

What it needs

RuntimeNode.js

Node.js with npx. A TestPlanIt account, either on the hosted app.testplanit.com service or on a self-hosted instance, and an API token from Profile → API Tokens (it starts with tpi_). Some tools need features on the instance: testplanit_cases_generate_script needs QuickScript enabled for the project, testplanit_reviews_decide needs an instance recent enough to accept API-token review decisions, and per-row iterations for data-driven runs need a matching server-side fix.

Limits

Speaks stdio only; there is no HTTP mode or hosted endpoint. The token is checked at start and the process exits with code 1 if it is missing, does not start with tpi_, or is rejected. testplanit_cases_update sets plain steps only: shared step groups are not supported and are removed when steps are replaced. A completed run cannot be reopened. Against an older TestPlanIt instance, testplanit_reviews_decide reports that it is unsupported, and run creation still succeeds but without iterations for data-driven cases. The README's table calls TESTPLANIT_API_URL required, but the code defaults it to the hosted service.

Who it suits

Suits QA teams already running TestPlanIt who want an assistant to triage coverage, draft or bulk-create test cases, assemble runs and record results without clicking through the web app. Because writes include deletes, removing run cases with their results, and approving reviews that apply workflow transitions, a read-only (mode:read) token is the safer choice for agents that only need to look. It is of no use without a TestPlanIt instance; teams on another test management tool need that tool's own server.

Tools 54

testplanit_whoami
Shows the signed-in user and the token's scopes, to check setup
testplanit_projects_list
Lists the projects the token can reach, with their IDs
testplanit_cases_list
Lists a project's test cases with filters for folder, tag, state, custom fields, issues and automation
testplanit_cases_count
Counts cases under the same filters, optionally grouped by folder, tag, state, source or creator
testplanit_cases_get
Fetches one test case with its fields and steps
testplanit_cases_create
Creates a test case from a template, validating fields and recording a first version
testplanit_cases_create_many
Creates many test cases in one call, reporting success or failure per case
testplanit_cases_update
Edits a test case and records a new version; plain steps only
testplanit_cases_delete
Deletes a test case
testplanit_cases_generate_script
Generates QuickScript automation test files from cases, when QuickScript is enabled
testplanit_templates_list
Lists a project's enabled templates and the fields each defines
testplanit_folders_list
Returns a project's folder tree with case counts, to a chosen depth
testplanit_folders_get
Fetches one folder with its path, children and case counts
testplanit_folders_create
Creates a folder
testplanit_folders_update
Renames or moves a folder
testplanit_folders_delete
Deletes a folder
testplanit_tags_list
Lists a project's tags
testplanit_test_runs_list
Lists a project's test runs
testplanit_test_runs_get
Fetches one test run
testplanit_test_runs_cases_list
Lists the cases included in a run
testplanit_test_run_case_iterations_list
Lists the per-data-row iterations of a data-driven case in a run, sensitive values redacted
testplanit_runs_create
Creates a test run together with its cases
testplanit_runs_update
Renames, re-states, retags or completes a run; completion is final
testplanit_runs_cases_add
Adds cases to a run, as untested, with iterations for data-driven ones
testplanit_runs_cases_update
Assigns a tester to a case in a run or changes its position
testplanit_runs_cases_remove
Removes cases from a run along with their recorded results
testplanit_test_run_results_list
Lists manual and automated execution results
testplanit_test_run_results_get
Fetches one result with step detail or stack trace and output
testplanit_test_run_results_create
Records a result for a case in a run, per iteration for data-driven cases
testplanit_automation_targets_list
Lists the targets automated cases can be dispatched to
testplanit_runs_execute
Asks TestPlanIt to run a run's automated cases on a CI target
testplanit_runs_automation_plan
Reads the plan a dispatched job runs: automated cases with selectors and id tokens
testplanit_sessions_list
Lists exploratory testing sessions
testplanit_sessions_get
Fetches one session
testplanit_sessions_create
Creates a session
testplanit_sessions_update
Edits a session
testplanit_sessions_findings_list
Lists findings logged in sessions
testplanit_session_results_list
Lists session results
testplanit_session_results_get
Fetches one session result in detail
testplanit_issues_list
Lists a project's issues
testplanit_issues_get
Fetches one issue
testplanit_issues_find_by_key
Looks up a TestPlanIt issue by its external key, such as a Jira key
testplanit_issues_list_links
Lists the test cases linked to an issue
testplanit_issues_link
Links an issue to a test case
testplanit_issues_unlink
Removes a link between an issue and a test case
testplanit_milestones_list
Lists a project's milestones
testplanit_milestones_get
Fetches one milestone with its progress
testplanit_milestones_create
Creates a milestone
testplanit_milestones_update
Edits a milestone
testplanit_milestone_types_list
Lists the available milestone types
testplanit_reviews_list
Lists review requests assigned to you, pending by default or already decided
testplanit_reviews_decide
Approves, rejects or requests changes on a review assigned to you, applying the workflow step on approval
testplanit_code_repositories_list
Lists code repositories linked to a project
testplanit_repository_case_links_list
Lists links between test cases and repository code

Similar servers