testmo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTMO_URL | Yes | The URL of your Testmo instance (e.g., https://your-instance.testmo.net) | |
| TESTMO_API_KEY | Yes | Your Testmo API key from Settings → API Keys |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| testmo_list_projectsA | List all accessible Testmo projects. Returns project IDs, names, and metadata. |
| testmo_get_projectB | Get details of a specific Testmo project by ID. Args: project_id: The project ID. |
| testmo_list_foldersB | List all folders in a Testmo project with full paths. Args: project_id: The project ID. |
| testmo_get_folderB | Get details of a specific folder. Args: project_id: The project ID. folder_id: The folder ID. |
| testmo_create_folderA | Create a new folder in a Testmo project. Args: project_id: The project ID. name: Folder name. parent_id: Parent folder ID (omit for root level). |
| testmo_update_folderB | Update a folder's name, parent, docs, or display order. Args: project_id: The project ID. folder_id: The folder ID to update. name: New folder name (optional). parent_id: New parent folder ID (optional). docs: Docs text for the folder (optional). display_order: Display order in UI (optional). |
| testmo_delete_folderA | Delete a folder from a project. WARNING: This also deletes all test cases in the folder. Args: project_id: The project ID. folder_id: The folder ID to delete. |
| testmo_find_folder_by_nameA | Find a folder by its name within a project. Args: project_id: The project ID. name: Folder name to search for. parent_id: Parent folder ID to search within (omit for root level). |
| testmo_list_milestonesA | List all milestones in a project (e.g., release/5.2.0). Args: project_id: The project ID. is_completed: Filter by completion status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_get_milestoneB | Get details of a specific milestone by ID. Args: milestone_id: The milestone ID. expands: Related entities to include. |
| testmo_list_casesA | List test cases in a project or folder. Supports pagination. Args: project_id: The project ID. folder_id: Filter by folder ID (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. |
| testmo_get_all_casesB | Get all test cases in a project or folder, handling pagination automatically. Args: project_id: The project ID. folder_id: Folder ID to get cases from (optional). |
| testmo_get_caseB | Get full details of a specific test case, including custom fields and Gherkin scenarios. Args: project_id: The project ID. case_id: The test case ID. |
| testmo_create_caseA | Create a single test case in Testmo. Required fields in case_data:
Optional fields:
Args: project_id: The project ID. case_data: Test case data object with required fields. |
| testmo_create_casesA | Create multiple test cases in a batch (max 100 per call). Each case object MUST include these fields or the API will silently reject it:
Optional: template_id, state_id, tags, issues, configurations, custom_feature, etc. Args: project_id: The project ID. cases: Array of test case objects (max 100). |
| testmo_batch_create_casesA | Create any number of test cases, automatically handling batching (100 per request). Each case object MUST include these fields or the API will silently reject it:
Optional: template_id, state_id, tags, issues, configurations, custom_feature, etc. Args: project_id: The project ID. cases: Array of test case objects (unlimited, auto-batched). |
| testmo_update_caseA | Update an existing test case. Only include fields you want to change. Issue Linking: Use issues array with objects like {"display_id": "PROJ-123", "integration_id": 1, "connection_project_id": "org/repo"}. Use testmo_list_issue_connections to discover integration_id values. Args: project_id: The project ID. case_id: The test case ID to update. data: Fields to update. |
| testmo_batch_update_casesA | Bulk update up to 100 test cases with the same field values (PATCH). Useful for moving cases to a folder, updating priority/state in bulk, linking automation sources, or adding tags/issues to multiple cases. Args: project_id: The project ID. ids: Array of case IDs to update (max 100). folder_id: Target folder ID. state_id: State ID (1=Draft, 2=Review, 3=Approved, 4=Active, 5=Deprecated). status_id: Status ID. estimate: Estimated execution duration. custom_priority: Priority ID (52=Critical, 1=High, 2=Medium, 3=Low). automation_links: Automation links (automation_source_id, automation_case_id, name). tags: Tags to apply. issues: Issue links (display_id, integration_id, connection_project_id). |
| testmo_delete_caseC | Delete a test case. Args: project_id: The project ID. case_id: The test case ID to delete. |
| testmo_batch_delete_casesA | Delete multiple test cases (max 100 per call). Args: project_id: The project ID. case_ids: Array of test case IDs to delete (max 100). |
| testmo_search_casesA | Search for test cases with filters (query, folder, tags, state). Args: project_id: The project ID. query: Search query (searches name and description). folder_id: Filter by folder ID. tags: Filter by tags. state_id: Filter by state (1=Draft, 2=Review, 3=Approved, 4=Active, 5=Deprecated). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. |
| testmo_list_runsA | List test runs in a project. Args: project_id: The project ID. page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. is_closed: Filter by closed status. milestone_id: Comma-separated milestone IDs to filter by. expands: Related entities to include. |
| testmo_get_runB | Get details of a specific test run. Args: run_id: The test run ID. expands: Related entities to include. |
| testmo_list_run_resultsA | List test results for a run with optional filters. Args: run_id: The test run ID. status_id: Comma-separated status IDs (1=Untested, 2=Passed, 3=Failed, 4=Retest, 5=Blocked, 6=Skipped). assignee_id: Comma-separated assignee IDs. created_by: Comma-separated user IDs who created results. created_after: Filter results created after (ISO8601 format). created_before: Filter results created before (ISO8601 format). get_latest_result: If true, return only the latest result per test. page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_list_case_attachmentsA | List all attachments for a test case. Args: case_id: The test case ID. page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_upload_case_attachmentA | Upload a single file attachment to a test case. Large images are auto-compressed. IMPORTANT: file_path must be an absolute path to a file saved on disk (e.g. /Users/jan/Desktop/screenshot.png). Pasted images or image data from the conversation cannot be uploaded — the user must save the file first and provide its path. If no path is provided or the user has not saved the file yet, ask them to save it and share the full file path. Args: case_id: The test case ID. file_path: Absolute path to the local file to upload (e.g. /Users/jan/Desktop/screenshot.png). |
| testmo_upload_case_attachmentsA | Upload up to 20 file attachments to a test case in one request. Large images are auto-compressed. IMPORTANT: Each path must be an absolute path to a file saved on disk. Pasted images or image data from the conversation cannot be uploaded — the user must save the files first. If no paths are provided, ask the user to save the files and share their full paths. Args: case_id: The test case ID. file_paths: List of absolute paths to local files to upload (max 20). |
| testmo_delete_case_attachmentsC | Delete one or more attachments from a test case. Args: case_id: The test case ID. attachment_ids: Array of attachment IDs to delete. |
| testmo_list_automation_sourcesA | List automation sources in a project (CI/CD integrations). Args: project_id: The project ID. is_retired: Filter by retired status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_get_automation_sourceB | Get details of a specific automation source. Args: automation_source_id: The automation source ID. expands: Related entities to include. |
| testmo_list_automation_runsA | List automation runs in a project with optional filters. Args: project_id: The project ID. source_id: Comma-separated automation source IDs to filter by. milestone_id: Comma-separated milestone IDs to filter by. status: Comma-separated status values (2=Success, 3=Failure, 4=Running). created_after: Filter runs created after (ISO8601 format). created_before: Filter runs created before (ISO8601 format). tags: Comma-separated tags to filter by. page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_get_automation_runC | Get details of a specific automation run. Args: automation_run_id: The automation run ID. expands: Related entities to include. |
| testmo_create_automation_runA | Create a new automation run in a project. The source name identifies the CI/CD integration (e.g., 'frontend', 'backend'). If the source doesn't exist, Testmo auto-creates it. Args: project_id: The target project ID. name: Name of the automation run. source: Automation source name (auto-created if new). config: Configuration name (optional). config_id: Configuration ID (takes precedence over config). milestone: Milestone name (optional). milestone_id: Milestone ID (takes precedence over milestone). tags: Tags for the run (matching automation tags on milestones auto-link the run). artifacts: External test artifacts [{name, url, mime_type?, size?}]. fields: Custom fields [{name, type, value}]. links: Links [{name, url}] (e.g., back to CI build). |
| testmo_append_automation_runA | Append test artifacts, fields, or links to an existing automation run. Args: automation_run_id: The automation run ID. artifacts: External test artifacts to append. fields: Custom fields to append. links: Links to append. |
| testmo_complete_automation_runA | Mark an automation run as completed. Args: automation_run_id: The automation run ID to complete. measure_elapsed: Auto-set execution time from creation to completion. |
| testmo_create_automation_run_threadA | Create a new thread in an automation run for submitting test results. Threads represent parallel test execution lanes. After creating, use testmo_append_automation_run_thread to submit test results. Args: automation_run_id: The automation run ID. elapsed_observed: Observed execution time in microseconds. elapsed_computed: Computed execution time in microseconds. artifacts: External test artifacts for the thread. fields: Custom fields for the thread. |
| testmo_append_automation_run_threadB | Append test results, artifacts, or fields to an automation run thread. Each test in the 'tests' array: {key, name, folder, status, elapsed, file, line, assertions, artifacts, fields}. Status values: 'passed', 'failed', 'skipped', etc. Args: thread_id: The automation run thread ID. elapsed_observed: Partial observed time in microseconds to add. elapsed_computed: Partial computed time in microseconds to add. artifacts: External test artifacts to append. fields: Custom fields to append. tests: Test results to submit [{name, status, ...}]. |
| testmo_complete_automation_run_threadB | Mark an automation run thread as completed. Args: thread_id: The automation run thread ID to complete. elapsed_observed: Observed execution time in microseconds. elapsed_computed: Computed execution time in microseconds. |
| testmo_list_issue_connectionsA | List available issue integrations (GitHub, Jira, Azure DevOps, etc.). Discover configured issue tracker integrations. Returns integration_id and connection_project_id needed for linking issues to test cases. Args: project_id: Filter by project ID (optional). integration_type: Filter by type (e.g., 'github', 'jira', 'azure_devops'). is_active: Filter by active status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. |
| testmo_get_issue_connectionC | Get details of a specific issue connection. Args: connection_id: The issue connection ID. expands: Related entities to include. |
| testmo_get_folders_recursiveA | Get a folder and all descendant subfolders as a nested tree in a single call. Args: project_id: The project ID. folder_id: The root folder ID to start recursion from. |
| testmo_get_cases_recursiveA | Get all test cases from a folder and all subfolders in a single call. Returns a flat list of cases annotated with folder name/path, plus per-folder counts. Args: project_id: The project ID. folder_id: The root folder ID to collect cases from recursively. include_folder_path: Include folder path on each case (default: true). |
| testmo_search_cases_recursiveA | Search test cases recursively within a folder subtree or project-wide. Supports API-level filters (query, tags, state_id) plus client-side filters:
Args: project_id: The project ID. folder_id: Root folder to search within (omit for project-wide search). query: Search query (searches name and description). tags: Filter by tags (API-level). state_id: Filter by state (1=Draft, 2=Review, 3=Approved, 4=Active, 5=Deprecated). custom_filters: Key-value pairs to match on case properties. match_mode: 'exact' or 'contains' for string values in custom_filters. array_filters: Key-value pairs where value is list, matches if ANY value present. issue_key: Match cases linked to this issue (checks issues[].display_id). |
| testmo_get_field_mappingsA | Get the field value mappings for this Testmo instance. Returns mappings for: custom_priority, custom_type, configurations, state_id, result_status_id, automation_run_status, tags, and defaults. Use this to look up correct numeric IDs before creating/updating test cases. |
| testmo_get_web_urlB | Generate a web URL for viewing a resource in Testmo. Args: project_id: The project ID. resource_type: Type of resource (repositories, runs). resource_id: Resource ID (e.g., folder ID). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/strelec00/testmo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server