Skip to main content

Checkmate MCP Server - Complete API Reference

This document provides detailed information about all available tools in the Checkmate MCP Server.

Table of Contents


Organization & Projects

get-orgs-list

List all organizations accessible to the authenticated user.

Parameters: None

Example:

List all my organizations

get-org-details

Get detailed information about a specific organization.

Parameters:

  • orgId (number, required): Organization ID

Example:

Get details for organization 123

get-projects

List all projects in an organization.

Parameters:

  • orgId (number, required): Organization ID

Example:

Show me all projects in organization 456

get-project-detail

Get detailed information about a specific project.

Parameters:

  • projectId (number, required): Project ID

Example:

Get details for project 789

create-project

Create a new project in an organization.

Parameters:

  • orgId (number, required): Organization ID
  • projectName (string, required): Project name
  • projectDescription (string, optional): Project description

Example:

Create a new project called "Mobile App Testing" in organization 123 with description "Test suite for mobile app"

edit-project

Edit an existing project's name or description.

Parameters:

  • projectId (number, required): Project ID
  • projectName (string, optional): New project name
  • projectDescription (string, optional): New project description

Example:

Update project 456 name to "Updated Mobile Testing" and description to "New description"

update-project-status

Update a project's active/inactive status.

Parameters:

  • projectId (number, required): Project ID
  • isActive (boolean, required): Whether the project should be active

Example:

Deactivate project 789

Tests

get-tests

List tests in a project with optional filtering.

Parameters:

  • projectId (number, required): Project ID
  • sectionId (number, optional): Filter by section
  • priorityId (number, optional): Filter by priority
  • limit (number, optional): Number of results to return
  • offset (number, optional): Pagination offset

Example:

Get all tests in project 123 with high priority

get-test-details

Get detailed information about a specific test.

Parameters:

  • testId (number, required): Test ID
  • projectId (number, required): Project ID

Example:

Get details for test 456 in project 123

get-tests-count

Get the count of tests matching specific filters.

Parameters:

  • projectId (number, required): Project ID
  • sectionId (number, optional): Filter by section
  • priorityId (number, optional): Filter by priority
  • automationStatusId (number, optional): Filter by automation status

Example:

How many automated tests are in project 123?

get-test-status-history

Get the status history of a test across all runs.

Parameters:

  • testId (number, required): Test ID
  • projectId (number, required): Project ID

Example:

Show me the status history for test 789

get-test-status-history-in-run

Get the status history of a test within a specific run.

Parameters:

  • testId (number, required): Test ID
  • runId (number, required): Run ID

Example:

Show status history for test 456 in run 123

download-tests

Download all tests from a project in a structured format.

Parameters:

  • projectId (number, required): Project ID
  • format (enum, optional): Export format - 'json' or 'csv' (default: 'json')

Example:

Download all tests from project 123 in CSV format

create-test

Create a new test case in a project.

Parameters:

  • projectId (number, required): Project ID
  • testName (string, required): Test name/title
  • testDescription (string, optional): Test description
  • sectionId (number, optional): Section ID
  • priorityId (number, optional): Priority ID
  • typeId (number, optional): Test type ID
  • automationStatusId (number, optional): Automation status ID
  • platformId (number, optional): Platform ID
  • testCoveredById (number, optional): Test covered by ID
  • squadId (number, optional): Squad ID
  • labels (array of numbers, optional): Array of label IDs

Example:

Create a test called "Login with valid credentials" in project 123 with high priority and API squad

update-test

Update an existing test case.

Parameters:

  • testId (number, required): Test ID
  • testName (string, optional): New test name
  • testDescription (string, optional): New test description
  • sectionId (number, optional): Section ID
  • priorityId (number, optional): Priority ID
  • typeId (number, optional): Test type ID
  • automationStatusId (number, optional): Automation status ID
  • platformId (number, optional): Platform ID
  • testCoveredById (number, optional): Test covered by ID
  • squadId (number, optional): Squad ID
  • labels (array of numbers, optional): Array of label IDs

Example:

Update test 456 to change priority to high and assign to frontend squad

delete-test

Delete a test case from a project.

Parameters:

  • testId (number, required): Test ID to delete
  • projectId (number, required): Project ID

Example:

Delete test 789 from project 123

bulk-add-tests

Create multiple test cases at once.

Parameters:

  • projectId (number, required): Project ID
  • tests (array, required): Array of test objects to create

Each test object can contain:

  • testName (string, required)
  • testDescription (string, optional)
  • sectionId (number, optional)
  • priorityId (number, optional)
  • typeId (number, optional)
  • automationStatusId (number, optional)
  • platformId (number, optional)
  • testCoveredById (number, optional)
  • squadId (number, optional)
  • labels (array of numbers, optional)

Example:

Bulk add 5 login tests to project 123: test valid login, test invalid password, test empty fields, test SQL injection, test XSS

bulk-update-tests

Update multiple test cases at once.

Parameters:

  • tests (array, required): Array of test objects to update (each must include testId)

Each test object must contain:

  • testId (number, required)

And can optionally contain any of the update fields from update-test.

Example:

Update tests 100, 101, 102 to assign them to the API squad

bulk-delete-tests

Delete multiple test cases at once.

Parameters:

  • projectId (number, required): Project ID
  • testIds (array of numbers, required): Array of test IDs to delete

Example:

Delete tests 200, 201, 202 from project 123

Test Runs

get-runs

List test runs in a project.

Parameters:

  • projectId (number, required): Project ID
  • limit (number, optional): Number of results to return
  • offset (number, optional): Pagination offset

Example:

Get all test runs for project 123

run-detail

Get detailed information about a specific test run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID

Example:

Get details for run 456

get-run-tests-list

List all tests in a specific run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID

Example:

Show me all tests in run 789

get-run-test-status

Get the status of tests in a run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID
  • status (string, optional): Filter by status (passed, failed, blocked, retest, untested)

Example:

Show me all failed tests in run 123

get-run-state-detail

Get detailed state information about a run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID

Example:

Get state details for run 456

download-report

Download a comprehensive test run report.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID
  • format (enum, optional): Report format - 'json', 'pdf', or 'html' (default: 'json')

Example:

Download PDF report for run 123

create-run

Create a new test run in a project.

Parameters:

  • projectId (number, required): Project ID
  • runName (string, required): Run name
  • runDescription (string, optional): Run description
  • testIds (array of numbers, required): Array of test IDs to include in the run

Example:

Create a new run called "Sprint 10 Regression" in project 123 with tests 100, 101, 102

edit-run

Edit an existing test run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID
  • runName (string, optional): New run name
  • runDescription (string, optional): New run description

Example:

Update run 456 name to "Sprint 10 Full Regression"

delete-run

Delete a test run from a project.

Parameters:

  • runId (number, required): Run ID to delete
  • projectId (number, required): Project ID

Example:

Delete run 789 from project 123

run-update-test-status

Update the status of multiple tests in a run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID
  • testResults (array, required): Array of test result objects

Each test result object should contain:

  • testId (number, required)
  • status (string, required): One of 'passed', 'failed', 'blocked', 'retest', 'untested'
  • comment (string, optional): Comment about the test result

Example:

Mark tests 100 and 101 as passed and test 102 as failed in run 123

run-lock

Lock a test run to prevent further modifications.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID

Example:

Lock run 456

run-reset

Reset all tests in a run to retest status.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID

Example:

Reset run 789

run-remove-tests

Remove specific tests from a run.

Parameters:

  • runId (number, required): Run ID
  • projectId (number, required): Project ID
  • testIds (array of numbers, required): Array of test IDs to remove

Example:

Remove tests 100, 101 from run 123

Metadata & Configuration

get-labels

List all available labels in a project.

Parameters:

  • projectId (number, required): Project ID

Example:

Get all labels for project 123

get-sections

List all available sections (test suites) in a project.

Parameters:

  • projectId (number, required): Project ID

Example:

Show me all test suites in project 123

get-squads

List all available squads in a project.

Parameters:

  • projectId (number, required): Project ID

Example:

Get all squads for project 123

get-priority

List all priority levels.

Parameters:

  • projectId (number, required): Project ID

Example:

Show me all priority levels

get-platforms

List all available platforms.

Parameters:

  • projectId (number, required): Project ID

Example:

Get all platforms for project 123

get-automation-status

List all automation status options.

Parameters:

  • projectId (number, required): Project ID

Example:

Show me all automation status options

get-type

List all test types.

Parameters:

  • projectId (number, required): Project ID

Example:

Get all test types for project 123

get-test-covered-by

List all test coverage types.

Parameters:

  • projectId (number, required): Project ID

Example:

Show me all coverage types

add-labels

Add new labels to a project.

Parameters:

  • projectId (number, required): Project ID
  • labels (array of strings, required): Array of label names to create

Example:

Add labels "smoke", "regression", "high-priority" to project 123

add-squads

Add new squads to a project.

Parameters:

  • projectId (number, required): Project ID
  • squads (array of strings, required): Array of squad names to create

Example:

Add squads "Frontend Team", "Backend Team", "QA Team" to project 123

add-section

Add a new section (test suite) to a project.

Parameters:

  • projectId (number, required): Project ID
  • sectionName (string, required): Section name
  • parentSectionId (number, optional): Parent section ID (for nested sections)

Example:

Add a new section called "Login Tests" to project 123

edit-section

Edit an existing section name.

Parameters:

  • sectionId (number, required): Section ID
  • sectionName (string, required): New section name

Example:

Rename section 456 to "Authentication Tests"

Users

get-user-details

Get detailed information about a specific user.

Parameters:

  • userId (number, required): User ID

Example:

Get details for user 123

get-all-users

List all users in the system.

Parameters:

  • orgId (number, optional): Filter by organization ID
  • limit (number, optional): Limit the number of users returned
  • offset (number, optional): Offset for pagination

Example:

List all users in organization 456

Error Handling

All tools follow a consistent error handling pattern:

Success Response

{
"content": [{
"type": "text",
"text": "<JSON formatted data>"
}]
}

Error Response

{
"content": [{
"type": "text",
"text": "❌ Error: <error message>\n\n💡 Tip: <helpful guidance>"
}],
"isError": true
}

Rate Limiting

The MCP server respects rate limits from the Checkmate API. If you encounter rate limit errors, the server will automatically retry with exponential backoff.

Best Practices

  1. Use Bulk Operations: When creating, updating, or deleting multiple items, use the bulk operations for better performance.

  2. Filter Queries: When listing items, use filters to reduce the amount of data transferred.

  3. Download Reports: Use the download tools for large datasets instead of listing all items.

  4. Check Status First: Before updating runs or tests, check their current state to avoid errors.

  5. Lock Runs: Lock runs when they're complete to prevent accidental modifications.

Support

For issues or questions: