Skip to content
API ReferenceDoc

MCP Tool Catalog

The remote MCP endpoint, its auth model, and all 56 tools with their arguments.

Certyn runs a remote MCP server over Streamable HTTP. It exposes 56 tools that read and write the same projects, test cases, runs, and issues you see in the app.

Endpoint

https://api.certyn.io/api/mcp

Manifest:

https://certyn.io/server.json

Auth model

  • Transport: streamable-http
  • Authentication: a user bearer token via Auth0/OIDC, or an API key in the X-API-Key header. A key is scope-limited, so pick the scopes deliberately: see choosing scopes.
  • Prompts: supported. Five are advertised — setup_project, write_test_cases, run_gate, triage_failure, release_readiness.
  • Unsupported: demo tokens, resources

For the pre-registered Claude, ChatGPT, and Cursor OAuth Client IDs and setup values, see Connect via MCP. The clients are public PKCE clients and do not use a client secret.

Common arguments

Most tools accept the same selectors:

  • projectIdOrSlug: project ID or slug, resolved by Certyn server-side
  • environmentKey: environment key such as staging or production. Call list_environments for a project's keys.
  • testCaseId: Certyn test case ID
  • ticketId: Certyn ticket ID, external issue ID, or project ticket number
  • executionId: Certyn execution ID, returned by every run tool

Response conventions

So a response shape can be predicted rather than discovered:

  • Collections are named after the entity. list_tickets returns tickets, list_test_cases returns testCases, list_environments returns environments. Listing and searching agree, so search_issues also returns tickets. The exception is a weekly plan, whose contents are items because "plan items" is what they are.
  • Paging is page and pageSize, 1-based, defaulting to 50 and capped at 100. Tools that return an explicit top-N take limit instead, and daysBack is a time filter rather than paging. Paged responses carry totalCount and hasNextPage, so a truncated answer is distinguishable from a complete one.
  • A detail tool returns everything its list tool returned, plus more. get_execution_detail carries the environmentKey and durationSeconds that list_executions shows, so drilling into a row never loses context.

All tools

Read tools carry the MCP read-only annotation, so a client can show you which calls are safe before it makes them.

ToolModeWhat it does
whoamireadWhich workspace this connection is bound to, and what the server can do
list_projectsreadProjects visible to the current tenant
create_projectwriteCreate a project and point its default environment at a base URL
list_environmentsreadEnvironments across the tenant, or one project's
create_environmentwriteAdd an environment to a project
update_environmentwriteChange an environment's base URL, version, or changelog
list_env_varsreadA project environment's variables, secrets masked
add_env_varwriteAdd a variable to a project environment
update_env_varwriteChange an existing variable's value or description
delete_env_varwriteRemove a variable from an environment
get_project_wikireadProject wiki and agent memory sections
update_wikiwriteReplace one or more wiki sections
list_test_casesreadPaged test cases, filterable by tag and quarantine
get_test_casereadOne test case in full
search_test_casesreadSemantic search over test cases
create_test_casewriteCreate one test case
create_test_cases_batchwriteCreate up to 50 test cases in one call
update_test_casewriteUpdate a test case, omitted fields unchanged
delete_test_casewriteDelete one test case
list_ticketsreadPaged issues, filterable by type, severity, status
get_ticketreadOne issue in full
search_issuesreadSemantic search over issues
searchreadOne search across issues, test cases, runs, memories, and the wiki
create_ticketwriteFile an issue against an environment
update_ticketwriteUpdate an issue's content
retest_ticketwriteRe-run the agent against an agent-found issue
list_processesreadA project's processes and each one's latest run
create_processwriteCreate a process that selects test cases by tag
get_processreadOne process and the test cases it currently resolves to
run_processwriteStart a process run
run_quick_testwriteStart an ad-hoc exploratory test
run_test_casewriteRun one saved test case
wait_for_executionreadBlock until one execution finishes, then return it
wait_for_process_runreadBlock until a process run finishes, then return it
get_ci_setupreadGenerate ready-to-commit CI configuration for this project
create_ci_api_keywriteMint a CI-scoped API key (signed-in connections only)
list_ci_runsreadRecent CI runs, including uploaded reports
get_ci_runreadOne CI run: state, conclusion, pass/fail counts
get_process_run_statusreadRun progress, pass/fail counts, per-item outcomes
list_executionsreadRecent executions and their status
get_execution_detailreadOne execution: outcome, summary, artifacts, links
get_execution_transcriptreadThe agent's messages, tool calls, and tool results
get_debug_executionreadConsole errors and failed network requests
get_image_by_tool_idreadOne screenshot from an execution, on demand
get_recent_failuresreadRecent failures with reasons and flaky classification
get_project_statsreadQuality snapshot: counts, pass rates, activity
ask_certynreadOpen-ended question answered from the project's data
get_weekly_planreadThe current weekly QA plan for an environment
propose_weekly_planwritePropose a weekly QA plan
update_weekly_planwriteRevise a proposed or approved plan
approve_weekly_planwriteApprove a plan so its items self-execute
list_test_sourcesreadBrowse TestRail, Zephyr, Xray, or Azure projects and suites
create_external_suitewriteTurn an external suite into a runnable Certyn process
list_conversationsreadRecent Ask Certyn conversations
get_conversationreadFull message history for one conversation
get_coding_task_contextreadIssue, reproduction, and evidence for a coding task

Projects, environments, and context

list_projects

Lists projects visible to the current tenant user. No arguments.

Returns the same overview payload the app uses, including project IDs, slugs, default environment hints, onboarding status, and counts.

list_environments

ArgumentTypeRequiredNotes
projectIdOrSlugstringnoWhen omitted, returns environments across all tenant projects
pageintegerno1-based, defaults to 1
pageSizeintegernoDefaults to 50, capped at 100

Returns totalCount and hasNextPage alongside environments, so you can tell a complete answer from a truncated one.

list_env_vars

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
environmentKeystringyes

Secret values are masked: only the name is returned. Non-secret values are returned in full.

add_env_var

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
environmentKeystringyes
namestringyes
valuestringyes
descriptionstringno
isSecretbooleannoDefaults to true. Sensitive-looking names are always treated as secret.

Fails if a variable with the same name already exists in that environment.

get_project_wiki

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes

Returns overview, business logic, rules, common memory, Explorer memory, and lastEditedAt.

update_wiki

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
overviewMarkdownstringnoComplete replacement for the section
businessLogicMarkdownstringno
rulesMarkdownstringno
commonMemoryMarkdownstringno
explorerMemoryMarkdownstringno
expectedLastEditedAtdatetimenoOptimistic lock, from get_project_wiki.lastEditedAt

Each supplied section is replaced whole. Omitted sections are left unchanged.


Test cases

list_test_cases

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
tagstringno
isQuarantinedbooleanno
pageintegerno1-based, defaults to 1
pageSizeintegernoDefaults to 50, capped at 100

get_test_case

ArgumentTypeRequired
projectIdOrSlugstringyes
testCaseIdstringyes

search_test_cases

Semantic (vector) search by meaning, ranked by relevance, with a text-match fallback.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
querystringnoOmit to list recent test cases
tagstringno
isQuarantinedbooleanno

create_test_case

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
namestringyesTest case title
instructionsstringyesStep-by-step instructions
descriptionstringno
tagsstring[]no
coverageKeystringnoReusable coverage key
{
  "projectIdOrSlug": "acme-web",
  "name": "Checkout accepts valid cart",
  "instructions": "1. Add an item.\n2. Place the order.\nExpected: confirmation appears.",
  "description": "Smoke coverage for checkout.",
  "tags": ["checkout", "smoke"],
  "coverageKey": "checkout:valid-cart"
}

create_test_cases_batch

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
testCasesobject[]yesMaximum 50 per call. Same shape as create_test_case without the project.

update_test_case

ArgumentTypeRequired
projectIdOrSlugstringyes
testCaseIdstringyes
namestringno
descriptionstringno
instructionsstringno
tagsstring[]no
needsReviewbooleanno
isQuarantinedbooleanno
isObsoletebooleanno
reviewReasonstringno
supersededByTestCaseIdstringno
coverageKeystringno

Updates only the fields supplied.


Issues

list_tickets

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
typestringnobug, improvement, task, or vulnerability
severitystringnocritical, major, minor, or trivial
statusstringnoin_review, shadow, or closed
agentIdstringnoAgent template ID
environmentKeystringno
environmentVersionstringno
pageintegerno1-based, defaults to 1
pageSizeintegernoDefaults to 50, capped at 100

get_ticket

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
ticketIdstringyesInternal ID, external issue ID, or project ticket number

Returns status, severity, attachments, linked test case, latest run state, and external tracker metadata.

search_issues

Semantic search over a project's issues, with a text-match fallback.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
querystringnoOmit to list recent issues
statusstringnoin_review, shadow, or closed
typestringno
severitystringno

Searches everything recorded for a project in one call: issues, test cases, past runs, learned memories, and the wiki. Each kind is matched both literally and semantically, and exact matches rank above semantic ones — so a friendly id like PROJ-142 or an exact title returns that record first.

Prefer search_issues or search_test_cases when you want one kind and need its filters.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
querystringyesNatural language, an exact phrase, or an id like PROJ-142
typesstringnoComma-separated: issue, test_case, execution, memory, wiki. Defaults to all
limitnumberno1–50, defaults to 20

Each hit carries type, id, title, excerpt, score, and exact, plus number, status, and severity for the kinds that have them.

create_ticket

Files a native Certyn issue. It does not create a remote Linear, Jira, or GitHub issue.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
titlestringyes
environmentKeystringyesThe issue appears on that environment's Issues page
descriptionstringno
typestringnoDefaults to bug
severitystringnoDefaults to minor
labelsstring[]no

update_ticket

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
ticketIdstringyes
titlestringno
descriptionstringno
typestringno
severitystringno
labelsstring[]noReplacement set. Omit to leave labels unchanged.

retest_ticket

Re-runs the agent against a shadow (agent-found) issue to confirm whether it still reproduces.

ArgumentTypeRequired
projectIdOrSlugstringyes
ticketIdstringyes

Returns the new executionId. Poll it with get_execution_detail.


Starting a run

list_processes

Lists a project's processes (test suites, agent explorations, and external-suite processes) with each one's latest run status. Use it to discover what run_process can execute.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
includeInactivebooleannoDefaults to false
limitintegernoDefaults to 20, capped at 50

run_process

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
processstringyesName, slug, or ID from list_processes
environmentKeystringnoDefaults to the project's default environment

Returns a processRunId. Poll it with get_process_run_status.

run_quick_test

Starts an ad-hoc exploratory test from a natural-language description.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
descriptionstringyesWhat to test
environmentKeystringnoDefaults to the project's default environment

Returns an executionId. Poll it with get_execution_detail.

run_test_case

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
testCaseIdstringyesRuns against the project's default environment

Returns an executionId.


Results and evidence

get_process_run_status

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
processRunIdstringnoA specific run
processNamestringnoFind a process's latest run by partial name match

Give one of processRunId or processName, or neither to list recent runs.

list_executions

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
statusstringnoqueued, running, completed, failed, aborted
outcomestringnopassed, failed, blocked
daysBackintegernoDefaults to 30, capped at 90
limitintegernoDefaults to 20, capped at 50

get_execution_detail

ArgumentTypeRequired
projectIdOrSlugstringyes
executionIdstringyes

Returns status, outcome, summary, artifacts, notes, and linked issues.

get_execution_transcript

The agent's messages, tool calls, and tool results, in order, so you can see exactly what it did and why.

ArgumentTypeRequiredNotes
executionIdstringyes
pageintegernoPage 1 is the most recent page; raise it for earlier events
pageSizeintegernoDefaults to 30, capped at 200

Events are oldest-first within a page. Screenshot bytes are stored separately: fetch one with get_image_by_tool_id rather than pulling every image into the transcript.

get_debug_execution

Browser-side signal captured during a run: JavaScript console events and failed network requests. Use this to work out why an execution failed. For summary, artifacts and linked issues use get_execution_detail instead.

ArgumentTypeRequiredNotes
executionIdstringyes
limitintegernoPer category, defaults to 50, capped at 200

get_image_by_tool_id

ArgumentTypeRequiredNotes
executionIdstringyes
toolCallIdstringyesFrom a tool_result event in get_execution_transcript

Returns the image itself, so you can view one screenshot on demand.


Analysis

get_recent_failures

Triages recent failures in one call: failed executions in a window, each with its reason, any linked issues, and a flaky-versus-new classification.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
daysBackintegernoDefaults to 7, capped at 90
limitintegernoDefaults to 20, capped at 50
includeBlockedbooleannoAlso include blocked outcomes. Defaults to false.

get_project_stats

ArgumentTypeRequired
projectIdOrSlugstringyes

Test case counts, issue counts, pass rates, and recent session activity.

ask_certyn

Asks an open-ended question and returns a synthesized answer. Reach for it when no other tool answers the question directly: it pulls together the project's test cases, issues, failures, coverage, wiki, and run history to explain why something is happening or what the overall state is, rather than returning rows.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyesProvides the context the answer reasons over
questionstringyes
contextstringnoExtra context, such as a failing URL, a hypothesis, or a ticket ID

Weekly QA plan

get_weekly_plan

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
environmentKeystringnoRequired unless planId is given
planIdstringnoWhen given, environmentKey is ignored

Returns each item's status and any linked runs.

propose_weekly_plan

Proposes a week of QA work for one environment. Gather evidence first with get_weekly_plan, get_recent_failures, and list_tickets. Proposing supersedes any open plan whose week overlaps.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
environmentKeystringyes
notCoveringMarkdownstringyesWhat is explicitly not covered this week, and why
itemsobject[]yesEach item has a kind (process, exploratory, or retest), an area, a why-now rationale, and a scheduled time inside the week
introMarkdownstringnoPlan-level rationale
periodStartUtcdatetimenoDefaults to the current week's Monday
periodEndUtcdatetimenoExclusive
timeZonestringnoIANA zone, for example America/New_York

update_weekly_plan

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
planIdstringyes
removeItemIdsstring[]no
updateItemsobject[]noField updates to existing items
addItemsobject[]noSame shape as propose_weekly_plan items
notCoveringMarkdownstringnoReplacement section

Items added to an already-approved plan are scheduled immediately.

approve_weekly_plan

ArgumentTypeRequired
projectIdOrSlugstringyes
planIdstringyes

Approving lets the plan's items self-execute at their scheduled times.


External test management

list_test_sources

Browses a connected TestRail, Zephyr Scale, Xray, or Azure Test Plans account.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
systemTypestringnotestrail, zephyr, xray, or azure. Defaults to testrail.
externalProjectIdstringnoOmit to list projects. Provide one to list that project's suites.

A suite's id is the externalSourceId you pass to create_external_suite.

create_external_suite

Creates a reusable Certyn process that runs an external suite. Run it afterwards with run_process.

ArgumentTypeRequiredNotes
projectIdOrSlugstringyes
namestringyesFor example TestRail Release Smoke
externalSourceTypestringyestestrail, zephyr, xray, or azure
externalSourceIdstringyesProvider selector, for example TestRail projectId:suiteId or Azure project:planId:suiteId
slugstringno
descriptionstringno

See Connect a Test Management Tool for the credentials each provider needs.


Conversations and coding tasks

list_conversations

ArgumentTypeRequiredNotes
projectIdOrSlugstringnoFilter to one project
limitintegernoDefaults to 20, capped at 100

get_conversation

ArgumentTypeRequired
conversationIdstringyes

get_coding_task_context

Returns the Certyn issue, reproduction result, evidence, and related runs for a coding task. Call it before implementing a coding-task fix.

ArgumentTypeRequiredNotes
codingTaskIdstringyesSupplied in the task prompt

Behavior notes

  • All tool access is filtered to the current tenant and the signed-in user's permissions. MCP cannot reach anything you could not open in the app yourself.
  • Project resolution accepts either a project ID or a slug.
  • Write tools carry MCP write annotations, so a client can ask for confirmation before mutating project records.
  • List limits are clamped server-side. Asking for more than the cap returns the cap.
  • Run tools return an ID and finish immediately. Poll with get_process_run_status or get_execution_detail rather than waiting on the call.