Skip to main content
Glama

Server Details

The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.

Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
99.4% over 59 days
OAuth
Requires browser extension
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

C2.9/5.0

Scored across 58 tools

Disambiguation2/5

Multiple tools target the same resources with only subtle variations, such as getCustomDataForEntity versus getCustomDataForEntityByKey versus retrieveCustomDataForEntityAdvanced, or listScorecardScores versus listScorecardScoresForEntity. Descriptions try to clarify boundaries, but the sheer number of overlapping read tools still creates real misselection risk.

Naming Consistency2/5

The dominant pattern is camelCase verb_noun, but it is broken by snake_case tools (get_more_tools, query_docs), PascalCase vendor-prefixed tools (AWSGetAwsResources, KubernetesGetK8sResourcesForEntity), and inconsistent verb choices like get versus retrieve versus list for similar operations.

Tool Count2/5

With 58 tools, the server is far beyond the typical 3-15 range and well past the 25-tool threshold for being too heavy. Cortex is a broad platform, but many tools are thin variations that could be consolidated or grouped, making the count excessive for an MCP server.

Completeness2/5

The surface is heavily read-oriented: entities, teams, scorecards, custom data, relationships, and integrations mostly have list/get operations without create/update/delete. Workflow lifecycle is better covered, but there is no verification action despite several listing tools, leaving significant lifecycle gaps that would cause agent failures.

Available Tools

116 tools
addCustomDataForEntityAddcustomdataforentityInspect

Set one custom data key on an entity. value can be any JSON type. If the key is missing it is created; if it exists its value and description are overwritten (an upsert, so repeating the same call changes nothing). Overwriting a key that came from a different source, such as the YAML descriptor, returns 400 unless force=true, and a forced value is replaced again the next time the descriptor is processed.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesCustom data key for the entity
forceNoWhen true, overrides values that were defined in the catalog descriptor. Will be overwritten the next time the catalog descriptor is processed.
valueYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNo
addCustomDataForEntityAdvancedAddcustomdataforentityadvancedInspect

Set one custom data key on an entity whose tag is passed as a query parameter. Use this form when the tag contains characters that cannot go in a path segment; otherwise use addCustomDataForEntity. Works the same way: upsert by key, and overwriting a key from another source needs force=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesCustom data key for the entity
tagYes
forceNoWhen true, overrides values that were defined in the catalog descriptor. Will be overwritten the next time the catalog descriptor is processed.
valueYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNo
addDeployForEntityAdddeployforentityInspect

Record a new deployment on an entity: title, timestamp, type (DEPLOY, SCALE, ROLLBACK or RESTART), and optional sha, url, environment, deployer and customData. Every call adds another record, so retrying creates duplicates. Returns the deployment with its UUID. To correct an existing record, use updateDeployByUuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
shaNo
urlNo
typeYes
titleYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
deployerNo
timestampYes
customDataNo
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
environmentNo
addGroupsToEntityAddgroupstoentityInspect

Add one or more groups (the free-form x-cortex-groups tags) to an entity. Existing groups are kept, and a group that does not exist yet is created. Tags may use only letters, numbers and dashes. Returns all of the entity's groups after the change. Use listGroupsForEntity to read the current groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupsYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
approveScorecardRuleExemptionApprovescorecardruleexemptionInspect

Approve every PENDING exemption for one rule on one entity, identified by Scorecard tag, entity tag and ruleIdentifier. Admin only. Fails with 400 when nothing is pending. Use listScorecardRuleExemptions to review requests before approving them.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
ruleIdentifierYesIdentifier of the Scorecard rule
archiveEntityArchiveentityInspect

Archive an entity by tag or CID. Archived entities are hidden from the catalog and from default searches and listings, but nothing is deleted. Archiving an entity that is already archived changes nothing. Reverse it with unarchiveEntity. Returns the entity's full details, and 404 if the entity is not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
archiveTeamArchiveteamInspect

Archive a team by tag or ID. The team stays in the catalog, flagged as archived, and can be restored with unarchiveTeam. Archiving an already-archived team does nothing new. Returns 404 if the team does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
AWSGetAwsResourcesAwsgetawsresourcesAInspect

List the AWS resources mapped to an entity, with their type and ARN. Returns nothing when the tenant has no AWS integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose an important edge case: 'Returns nothing when the tenant has no AWS integration.' It does not mention pagination, authorization, or error behavior, but for a simple list operation this level of disclosure is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two terse sentences with no filler. The primary operation and output fields are front-loaded, and the edge-case sentence earns its place by setting a clear expectation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description names the entity context, the returned fields, and the no-integration behavior, while the schema fully documents the parameters. There is no output schema, so a bit more detail on the exact return shape could help, but the tool is simple enough that the current description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three required parameters, including a detailed explanation of session_id and tagOrId. The description adds no additional parameter-level meaning, so the baseline of 3 applies given 100% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List the AWS resources mapped to an entity, with their type and ARN.' It clearly identifies the tool's scope and output fields, and the 'AWS' qualifier differentiates it from similar resource-listing siblings like KubernetesGetK8sResourcesForEntity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: use this when you need AWS resources associated with an entity. However, the description gives no explicit when-to-use vs. alternatives guidance, no exclusions, and does not name comparable sibling tools. It relies entirely on the agent inferring the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

createCustomEventForEntityCreatecustomeventforentityInspect

Record a new custom event on an entity, with a title, type, timestamp and optional description, url and customData. Every call adds another event, so retrying creates duplicates. Returns the event with its UUID. To change an existing event, use replaceCustomEventForEntityByUuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL associated with custom event
typeYesType of custom event
titleYesName for custom event
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
timestampYesTime when event occurred
customDataNoOptional property to store additional data
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoOptional description of custom event
createCustomMetricDataCreatecustommetricdataInspect

Add one data point (value plus an optional timestamp, which defaults to now) to an entity's custom metric, identified by customMetricKey. The metric must already be defined. Timestamps cannot be in the future or more than 2 years old. Every call adds another point, so retrying creates duplicates. Read data back with getCustomMetricData.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesValue for the data point
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
timestampNoTimestamp for the data point in ISO 8601 format. Accepts timezone offsets (e.g., '2024-08-14T11:00:00Z' or '2024-08-14T11:00:00+00:00'). Note: It can't be earlier than 2 years
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
customMetricKeyYesKey for the custom metric filter
createDefinitionCreatedefinitionInspect

Create a custom entity type. It needs a type slug and a JSON schema that every entity of this type must satisfy; name, description and iconTag are optional. Fails if the type already exists or conflicts with a built-in type. To change an existing type, use updateDefinition.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
typeYes
schemaYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNo
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNo
createDependencyCreatedependencyInspect

Create a dependency from a caller entity to a callee entity, with an optional description and JSON metadata. Optional method and path scope it to an endpoint, which must exist in the callee's OpenAPI spec. Fails if the same dependency already exists; to change one, use updateDependency.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
methodNoHTTP Method
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
metadataNo
calleeTagYesThe entity tag (x-cortex-tag) for the caller entity ("to" entity)
callerTagYesThe entity tag (x-cortex-tag) for the callee entity ("from" entity)
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNo
createInitiativeCreateinitiativeInspect

Create a new Initiative against one Scorecard (scorecardTag), with a name, a future targetDate and isDraft. Provide emphasizedLevels (by ladder rank, 1 = highest) or emphasizedRules (each expression must exactly match an existing rule expression in that Scorecard; get them from getScorecard). Optionally narrow it with a filter and set a notificationSchedule. Each call creates a new Initiative and is not idempotent. Requires the Edit Initiative permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the Initiative
filterNoFilter that selects the entities in the catalog, for `FILTER` catalogs
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
isDraftYesWhether or not the Initiative is a draft
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
targetDateYesTarget date for the Initiative to be completed. Must be in the future
descriptionNoOptional description of the Initiative
scorecardTagYesTag of the scorecard associated with the Initiative
emphasizedRulesYesEmphasized rules for the Initiative. Either emphasized levels or rules must be provided
emphasizedLevelsYesEmphasized levels for the Initiative. Either emphasized levels or rules must be provided
notificationScheduleNoNotification schedule for the Initiative
createOrPatchEntityCreateorpatchentityInspect

Merge a partial YAML descriptor (tag at info.x-cortex-tag) into an existing entity. Keys you leave out are kept. If no entity has that tag, it is created, unless failIfEntityDoesNotExist=true, which returns 404 instead. Arrays are replaced by default; pass appendArrays=true to add to them. To remove a key, set its value to the string given in deleteMarkerValue (e.g. __delete__). Pass dryRun=true to only validate. Use createOrUpdateEntity to replace the whole descriptor.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRaw text of the YAML See examples of cortex.yaml files for each entity type [here](https://docs.cortex.io/docs/reference/basics/entities#example-cortexyaml-for-service-entity)
dryRunNoWhen true, this endpoint only validates the descriptor contents and returns any errors or warnings.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
appendArraysNoDefault merge behavior is to replace arrays, set this to true to append arrays instead. For simple types, duplicate values will be removed from the merged array.
deleteMarkerValueNoDelete keys with this value from the merged yaml, e.g. `__delete__`, if any values match this, they will not be included in merged YAML. For example `my_value: __delete__` will remove `my_value` from the merged YAML.
asyncUpdateWaitTimeMsNoMaximum time (milliseconds) to wait for asynchronous property updates. Default is zero.
failIfEntityDoesNotExistNoDefault behavior is to upsert the entity, set `failIfEntityDoesNotExist=true` to fail (404) if the entity specified in `x-cortex-tag` does not exist.
createOrUpdateEntityCreateorupdateentityInspect

Create a catalog entity from a full YAML descriptor (OpenAPI-style, with the tag at info.x-cortex-tag), or update the entity that already has that tag. An update replaces the whole descriptor, so any key you leave out is removed. To change only some fields, use createOrPatchEntity. Pass mode=CREATE to fail instead of overwriting an existing entity. Pass dryRun=true to only validate the descriptor and see its errors and warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRaw text of the YAML See examples of cortex.yaml files for each entity type [here](https://docs.cortex.io/docs/reference/basics/entities#example-cortexyaml-for-service-entity)
modeNoMode of operation: UPSERT (default) creates or updates existing entity, CREATE fails if entity already exists.
dryRunNoWhen true, this endpoint only validates the descriptor contents and returns any errors or warnings.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
githubPullRequestNoAdd a comment with validation errors on the pull request with the given ID
asyncUpdateWaitTimeMsNoMaximum time (milliseconds) to wait for asynchronous property updates. Default is zero.
createOrUpdateScaffolderCreateorupdatescaffolderInspect

Create a Scaffolder template, or replace the one with the same tag. The request needs name and repoLocator; fields you omit go back to their defaults and are not merged. Without a tag a new template is always created, with a tag derived from the name. Needs the Configure Scaffolder permission. To update by Cortex ID or to rename a tag, use updateScaffolder.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoStable, human-readable identifier, unique within the workspace. Lowercase letters, numbers, and dashes; may not start or end with a dash. Derived from the name when omitted on creation; an existing template keeps its tag unless a new one is provided.
nameYesDisplay name of the Scaffolder template
typeYesThe templating engine of the template
labelsYesDescriptive labels used to group templates in the UI
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
showReadmeYesWhether the template repository's README is shown before a run. Defaults to `false`
descriptionNoDescription of the Scaffolder template
repoLocatorYes
createYamlFileYesWhether a cortex.yaml is generated for the created entity. Defaults to `true`
publisherOptionsNo
strictAliasUsageYesWhether runs are restricted to the git configuration alias the template names. Defaults to `true`
requireNewServiceYesWhether running the template must create a new entity. Defaults to `true`
requirePullRequestYesWhether the template publishes via a pull request to an existing repository. Defaults to `false`
createOrUpdateScorecardCreateorupdatescorecardInspect

Create a Scorecard from a raw YAML descriptor, or update the existing Scorecard if one with the descriptor's tag already exists. An update replaces the whole definition (rules, levels, filter) with the descriptor and does not merge fields, so call getScorecard(tag) first and send back the complete definition. Pass dryRun=true to parse and validate the YAML without saving anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRaw text of the YAML See an example of a yaml file for scorecards [here](https://docs.cortex.io/docs/reference/basics/scorecards#descriptor)
dryRunNoWhen true, this endpoint only validates the descriptor contents and returns any errors or warnings.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
createOrUpdateWorkflowCreateorupdateworkflowInspect

Create a new workflow, or update an existing one if a workflow with the same tag already exists. An update fully replaces the prior definition rather than merging fields. The caller must have the Edit workflows permission. Prefer getWorkflow(tag) first when updating, to base the new definition on the current one.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag of the workflow. Use lowercase letters, digits and hyphens, 2 to 255 characters, not starting or ending with a hyphen.
nameYesName of the workflow
filterYesFilter to determine in what entity contexts the workflow can run
actionsYesList of actions in the workflow. Actions read run data with three top-level keys: `context` (`workflowRunId`, `initiatedBy`, and `entity` for a run on an entity), `actions` (earlier actions by slug) and `variables` (workflow variables by slug). Every action writes its result to `actions.<slug>.outputs`. The keys depend on the action type, e.g. `result` for JQ and JavaScript, or `status`, `headers` and `body` for HTTP. JQ reads `.variables.x`, CEL, JavaScript and dot paths read `variables.x`, and action text fields take `{{variables.x}}` templates. Quote a slug with a hyphen: `actions["my-slug"]`, with a leading dot in JQ.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNoIcon tag for the workflow
isDraftYesWhether the workflow is a draft
createdAtNoThe date the workflow was created, in ISO 8601 format
createdByNo
variablesYesList of variable definitions for the workflow. Set run values with `initialContext`.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoDescription of the workflow
lastUpdatedAtNoThe date the workflow was last updated, in ISO 8601 format
lastUpdatedByNo
isRunnableViaApiNoWhether the workflow is runnable via the public API
runResponseTemplateNoTemplate for the response when the workflow is completed successfully
runRestrictionPoliciesNoList of restriction policies for the workflow
failedRunResponseTemplateNoTemplate for the response when the workflow run fails
restrictActionCompletionToRunnerUserYesIf true, only the user who started the workflow can complete actions. Defaults to false.
createPluginCreatepluginInspect

Create a plugin from its HTML source (blob), with tag, name, contexts (where it shows up, for example {"type":"GLOBAL"}), minimumRoleRequired, isDraft, and optional proxyTag, iconTag and version. Fails if the tag already exists; to change a plugin use updatePlugin or patchPlugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier for the plugin
blobYesThe raw source code of the plugin. This should be an HTML file
nameYesDisplay name of the plugin
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNoIcon tag for the plugin
isDraftYesWhether the plugin is generally available or not
versionNoThe version of the plugin
contextsYesWhich contexts the plugin should execute/show up in, e.g. `{ "type": "GLOBAL" }`
proxyTagNoThe identifier of the proxy to use for requests from this plugin
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoDescription of the plugin
minimumRoleRequiredYesThe minimum role required to view the plugin, e.g. `VIEWER`, `USER`, `MANAGER`, `OWNER`, or the tag for a custom role. Learn more about each permission in our [docs](https://docs.cortex.io/docs/walkthroughs/workspace-settings/permissioning#roles-in-cortex).
createQueryCreatequeryInspect

Submit a CQL query to run in the background over every catalog entity. The query must return a boolean for each entity, and the entities where it is true are the matches. Returns a jobId immediately, not results; fetch the status and matching entities with getQueryResults(jobId). Returns 409 if the same query is already running.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
createRelationshipTypeCreaterelationshiptypeInspect

Create a relationship type. Set its tag and name, the entity types allowed as sources and as destinations, single-source and single-destination limits, whether cycles are allowed, where relationships can be defined (definitionLocation), and the parameters entities inherit through it. Pass createCatalog=true to also create a catalog page for it. To change an existing type, use updateRelationshipType.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier tag for the relationship type
nameYesHuman-readable name for the relationship type
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
allowCyclesYesWhether cyclical relationships are allowed
descriptionNoOptional description explaining the relationship type
inheritancesYesInheritance configuration for Cortex parameters. Currently supports ownership inheritance via x-cortex-owners.
createCatalogYesWhether to create a catalog page for this relationship type
sourcesFilterYes
isSingleSourceYesWhether an entity can have only one source for this relationship type
sourceLabelPluralNoPlural label for sources in the relationship
definitionLocationYesDefines where a relationship can be configured in entity descriptors
destinationsFilterYes
isSingleDestinationYesWhether an entity can have only one destination for this relationship type
sourceLabelSingularNoSingular label for sources in the relationship
destinationLabelPluralNoPlural label for destinations in the relationship
destinationLabelSingularNoSingular label for destinations in the relationship
createTeamMemberRoleCreateteammemberroleInspect

Define a new team member role (for example "Security Champion") with a name, a unique tag (letters, digits and hyphens), an optional description and a default for notificationsEnabled. Members can then be given the role through roleTags. Fails if the tag already exists, so check listTeamMemberRoles first. Needs the Edit Settings permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag identifying the team member role. May only contain letters, digits, and hyphens.
nameYesDisplay name of the team member role
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoOptional description of the team member role
notificationsEnabledNoWhether notifications are enabled by default for members assigned this role. Defaults to true.
createVerificationPeriodCreateverificationperiodInspect

Create a verification period (campaign) with a name, startDate, endDate and scope. The scope selects entities by types, entityGroups, excludedEntityGroups and/or cqlQuery; an empty scope covers every entity. Every entity in scope gets a PENDING verification right away. A cqlQuery scope is evaluated in the background, so the counts show zero until it finishes. Optional requiredRoles, requiredCustomRoleTags and requiredTeamRoleTags limit who may verify. Each call creates a new period and is not idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name
scopeYesWhich entities a verification period covers. An empty scope covers every entity. Combined conditions all have to hold.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endDateYesThe day the period closes, inclusive
startDateYesThe day the period opens, inclusive
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoWhat owners are being asked to confirm
requiredRolesYesCortex roles a user must hold to verify. Empty means any owner of the entity may verify.
reasonRequiredNoWhether a reason is required to mark an entity incorrect. Marking an entity correct never requires one. Defaults to false.
requiredTeamRoleTagsYesTags of team roles a user must hold on a team that owns the entity in order to verify
requiredCustomRoleTagsYesTags of custom Cortex roles a user must hold to verify
denyScorecardRuleExemptionDenyscorecardruleexemptionInspect

Deny (reject) every PENDING exemption for one rule on one entity, identified by Scorecard tag, entity tag and ruleIdentifier, with a required reason. Admin only. Fails with 400 when nothing is pending. To remove an exemption that is already approved, use revokeScorecardRuleExemption.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
reasonYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
ruleIdentifierYesIdentifier of the Scorecard rule
getCatalogPageGetcatalogpageInspect

Get one catalog page by slug, including its type and the filter or relationship type that selects its entities. Read this before upsertCatalogPage, which replaces the whole page.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
getCurrentOncallForEntityGetcurrentoncallforentityAInspect

Retrieve the current on-call personnel for an entity in real-time. Shows who is actively responsible for incident response, including primary and secondary on-call, contact information, and rotation schedules.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of disclosing behavior. It adds useful context about primary/secondary on-call, contact information, and rotation schedules, and indicates real-time freshness. However, it does not mention whether results are cached, what happens if no on-call exists, or any access requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The core function is front-loaded, and the second sentence adds valuable return details without bloating the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description does a reasonable job of explaining the return content (primary/secondary, contacts, rotation). It is slightly incomplete around edge cases like missing on-call data or time-zone handling, but enough for a straightforward read-only lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description references 'entity' matching tagOrId, but adds no new semantic meaning beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieve') with a specific resource ('current on-call personnel for an entity') and adds a real-time qualifier. Among the large sibling list, no other tool mentions on-call, so this clearly distinguishes itself and tells an agent exactly what it returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, exclusions, or references to alternative tools are provided. With dozens of get* siblings, the description does not help an agent decide between this and related retrieval tools such as getEntityDetails or getTeamDetails.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCustomDataForEntityGetcustomdataforentityBInspect

List all custom data key-value pairs associated with an entity. Retrieve metadata, configuration settings, and custom attributes stored for services, resources, or domains. Supports pagination for entities with large amounts of custom data.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It adds useful context beyond purpose: scoping to services/resources/domains and pagination support for large result sets. However, it does not disclose the return structure (there is no output schema), behavior for empty results, or any ordering/side-effect details; the read-only nature is only inferred from 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all of which earn their place: the core action is front-loaded first, the data scope in the second sentence clarifies what 'custom data' means, and the pagination note in the third addresses a real operational concern. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description carries a heavy burden that it only partially meets. It explains the data categories and pagination but never describes what the response looks like, how pages are structured, or what happens with an unknown tagOrId — gaps an agent needs answered before invoking a paginated list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 and the schema already documents all five parameters, including the tricky session_id semantics and pagination defaults. The description adds only general context about what the data contains, not per-parameter meaning beyond the schema, so it neither needs to compensate nor adds much.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List all custom data key-value pairs') and resource ('an entity'), and elaborates on the data kinds covered (metadata, configuration settings, custom attributes). It does not explicitly differentiate itself from siblings like getCustomDataForEntityByKey or retrieveCustomDataForEntityAdvanced, though 'all ... key-value pairs' implies the contrast with key-specific lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or naming of alternatives, despite many similarly scoped siblings (getCustomDataForEntityByKey, retrieveCustomDataForEntityAdvanced, getCustomEventForEntityByUuid). Usage is only implied by the phrase 'List all ... key-value pairs', which leaves an agent guessing which custom-data tool to pick among the overlapping set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCustomDataForEntityByKeyGetcustomdataforentitybykeyAInspect

Retrieve a specific custom data value by key for an entity. Efficiently access individual metadata attributes, configuration values, or custom properties without fetching all custom data.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. The verb 'Retrieve' and the phrase 'without fetching all custom data' make the read-only, targeted nature clear. However, it does not disclose return shape, behavior when the key is missing, or any error conditions, so it stops short of being fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the primary action, and the second adds useful scope and efficiency context. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple key-based lookup, the description supplies the essential selection logic and distinguishes it from bulk retrieval. The schema covers required parameters, though the lack of an output schema means return format and not-found behavior are left implied rather than stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Three of four parameters already have schema descriptions, including detailed guidance for session_id and context. The description reinforces that key selects the custom data value and tagOrId identifies the entity, but it adds little parameter-level detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Retrieve a specific custom data value by key for an entity.' It clearly differentiates from siblings like getCustomDataForEntity by emphasizing the single-key scope and 'without fetching all custom data.' An agent can understand exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: efficiently access one metadata attribute, configuration value, or custom property without retrieving the full custom-data set. It does not explicitly name an alternative tool or state when not to use it, but the context strongly implies single-key lookup over bulk retrieval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCustomEventForEntityByUuidGetcustomeventforentitybyuuidAInspect

Retrieve a specific custom event by its UUID. Returns event details including title, description, timestamp, type, and any custom data associated with the event.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does disclose what the response contains (title, description, timestamp, type, custom data). However, it says nothing about not-found behavior, error handling, or response format — adequate but thin for a single-item retrieval with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero filler. It states the action, the target, and the return contents efficiently — appropriately sized for what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a retrieval tool with 4 required parameters, no output schema, and no annotations, the description is on the lean side. It covers the retrieval target and return fields but omits not-found/error behavior and any guidance linking it to its list counterpart (listCustomEventsForEntity). Adequate, with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%; the uuid parameter has no schema description (only a uuid format), and the description only reinforces it via 'by its UUID' without adding format or format-context details. The mention of 'custom data' in the return fields modestly overlaps with tagOrId semantics. Adds marginal value but doesn't fully compensate for the undocumented uuid parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb (Retrieve) with a clear resource (custom event) and identifying key (UUID), and lists the returned fields. The word 'specific' helps distinguish it from the list-style siblings like listCustomEventsForEntity, though it doesn't name the sibling directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and phrasing 'by its UUID' — the agent can infer it should call this when it already has a UUID in hand. No explicit context distinguishes it from listCustomEventsForEntity or the getCustomDataForEntity family, and no when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCustomMetricDataGetcustommetricdataBInspect

Retrieve custom metric data points for an entity. Returns paginated time-series data for a specific custom metric, with optional filtering by date range to analyze trends and patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endDateNoEnd date for the filter, inclusive (UTC, e.g. 2026-06-22T00:00:00)
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
startDateNoStart date for the filter, inclusive (UTC, e.g. 2026-06-22T00:00:00). Default: 6 months ago
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
customMetricKeyYesKey for the custom metric filter

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It does disclose two useful behavioral traits: the results are paginated and the data is time-series with optional date-range filtering. However, it does not explain how pagination behaves, the shape of each data point, sorting, or empty/error outcomes, leaving several behavioral aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with the core purpose front-loaded. It has minimal waste, though 'custom metric data points' and 'time-series data for a specific custom metric' are slightly redundant. Overall it is concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 8-parameter tool with no output schema and no annotations, the description is too thin. It doesn't describe the structure of the returned time-series data, the relationship between customMetricKey and tagOrId, or how the required context and session_id parameters factor in. It also fails to distinguish itself from the many closely-related sibling tools, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies. The description adds general context about pagination and date-range filtering, but it doesn't illuminate specific parameters beyond what the schema already provides. The schema already documents page/pageSize defaults, tagOrId as entity identifier, and customMetricKey as the metric filter key.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Retrieve custom metric data points for an entity') and adds distinguishing characteristics: paginated time-series data for a specific custom metric with optional date-range filtering. It does not explicitly name any sibling tool, but the 'custom metric' framing helps separate it from generic getCustomDataForEntity and similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as getCustomDataForEntity, getCustomDataForEntityByKey, retrieveCustomDataForEntityAdvanced, or queryPointInTimeMetrics. The description never states exclusions or conditions, so an agent must infer the appropriate choice from name and schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDefinitionGetdefinitionAInspect

Get one entity type definition by type, including the JSON schema its descriptor must satisfy.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It communicates that the tool is a getter and reveals that the returned definition includes a JSON schema constraint for its descriptor. It does not cover potential error behavior, permissions, or any side effects, but for a simple read operation the main behavior is adequately disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every phrase adds meaning: the resource, the lookup key, and the notable output detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with three required parameters, the description captures the core purpose and a key aspect of the return value. However, there is no output schema, no annotations, and no guidance on how to discover valid entity types or how this relates to sibling tools like listDefinitions. The description is sufficient but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%; the 'type' parameter is undocumented in the schema, and the description partially compensates by saying the tool retrieves a definition 'by type.' The session_id and context parameters are already thoroughly described in the schema, so the description adds little beyond clarifying the role of 'type.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get one entity type definition by type.' It also explains what the definition includes ('the JSON schema its descriptor must satisfy'), which clarifies the tool's output. It is clear enough to distinguish from listDefinitions, though it does not explicitly differentiate from every sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need a single entity type definition identified by its type. However, it does not explicitly mention alternatives such as listDefinitions or getEntityDescriptor, nor does it state when not to use this tool. The usage context is clear but not fully guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDependencyGetdependencyCInspect

Get specific dependency details between two entities including method, path, and metadata. Useful for understanding the nature of the relationship, API contracts, and communication patterns between services.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
methodNo
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
calleeTagYes
callerTagYes
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, and no output schema, so the description carries the full behavioral disclosure burden. It indicates the result includes method, path, and metadata, but it does not clarify whether the operation is read-only, what happens when no dependency exists, whether method/path act as filters or output fields, or any error/edge behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The primary action and result content are front-loaded, and the second sentence adds use-case context. It is not bloated, though it could be more precise without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six parameters, four required, no output schema, and no annotations. The description leaves key ambiguities: what callerTag/calleeTag mean concretely, whether method/path are filters or returned fields, and what the returned metadata looks like. This is not enough for an agent to reliably invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%; the core parameters callerTag, calleeTag, path, and method have no schema descriptions. The tool description names method and path but does not clarify their roles or required format. CallerTag and calleeTag are only inferable from their names, not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action (get) and resource (specific dependency details between two entities) and mentions the key facets of the result: method, path, and metadata. It is distinguishable from list-oriented siblings like listDependenciesForEntity, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says the tool is 'useful for understanding the nature of the relationship, API contracts, and communication patterns,' which gives some context, but it never states when to prefer this tool over listDependenciesForEntity or getRelationshipTypeDetails, nor gives any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getDeploysForEntityGetdeploysforentityAInspect

List all deployments for a specific catalog entity. Returns deployment history including timestamps, environments, SHAs, and deployment types in paginated format.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of behavioral disclosure. It states the operation is a list (implying read-only) and mentions pagination, but does not disclose error behaviors, rate limits, or any side effects. It does not explicitly state that it is non-mutating, nor what happens if the entity is not found, which is a moderate gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The purpose is front-loaded in the first sentence, and the second sentence adds return details and pagination. Every word earns its place, making it highly concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description reasonably explains what the response contains (timestamps, environments, SHAs, deployment types) and mentions pagination. However, it does not describe the exact structure of the paginated response (e.g., how to get the next page, whether a next-page token is provided), nor does it mention error conditions. For a read-only list tool, this is largely adequate, but the lack of pagination mechanics is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond the schema; it only mentions the output fields, not the inputs. The parameters (tagOrId, pageSize, page, session_id, context) are already documented in the schema, so the description adds no additional value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' with the resource 'deployments' and the scope 'for a specific catalog entity'. It also lists the return fields (timestamps, environments, SHAs, deployment types) and pagination, which distinguishes it from sibling tools like searchDeploys (search across deployments) and listDeployEnvironments (environments only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many sibling tools like searchDeploys, getEntityDetails, or listDeployEnvironments, the description gives no criteria for selection, leaving the agent to infer from the name and schema alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getEntityDescriptorGetentitydescriptorAInspect

Retrieve an entity's Cortex descriptor - the x-cortex-* configuration the entity is defined by. Returns JSON by default; pass yaml=true for the YAML form. Distinct from getOpenApiDocForEntity, which returns the API the service exposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
yamlNoWhen true, returns the YAML representation of the descriptor
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the burden. It discloses the default output format (JSON), the YAML switch, and what a descriptor contains, but it does not explicitly state side effects, access requirements, or error behavior. For a simple read operation the disclosed core behavior is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler; the main action and resource are first, followed by format option and competitor distinction. Each sentence contributes unique information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Combined with the exhaustive session_id documentation in the schema, the description gives the caller enough to invoke correctly: resource, input requirements, output format, and the differentiating alternative. No output schema exists, but return format is stated; minor gaps like explicit read-only confirmation prevent a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are already fully described in the schema (100% coverage), so the baseline applies. The description adds only the default-JSON detail and reinforces the yaml=true behavior, which is mostly redundant with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Retrieve') and identifies the resource: an entity's Cortex descriptor, explicitly defined as the x-cortex-* configuration. It also contrasts itself with getOpenApiDocForEntity, making the purpose unmistakable among the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one concrete routing rule: use this for descriptors, not getOpenApiDocForEntity, which returns the service API. It doesn't enumerate all alternatives (e.g., listEntityDescriptors), but the stated context is enough to distinguish from the closest sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getEntityDetailsGetentitydetailsBInspect

Retrieve comprehensive details about a specific entity including its metadata, ownership, hierarchies, and relationships. This is the primary method for getting complete information about services, teams, or domains.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeOwnersNoInclude ownership information, default is true
hierarchyDepthNoDepth of the parent / children hierarchy nodes. Can be 'full' or a valid integerfull
includeHierarchyFieldsNoList of sub fields to include for hierarchies. Only supports 'groups'

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool returns a broad set of information including metadata, ownership, hierarchies, and relationships, which sets expectations for output. However, it doesn't discuss potential performance implications of requesting deep hierarchies, or whether includeOwners defaulting to true might cause unexpected overhead. It's not misleading but leaves room for more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is clear and front-loaded with the main purpose. It efficiently conveys the scope of the data returned. It could arguably be more concise, but it is not verbose and every phrase contributes to the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, 3 required, and no output schema or annotations, the description should be more comprehensive. It covers what information is retrieved, but it doesn't explain how the parameters affect the response (e.g., includeOwners default, hierarchyDepth behavior). Some parameters like session_id are documented in the schema, but the overall orchestration context is missing. It's borderline adequate for a primary getter tool, but a bit more detail on parameter effects would be better.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add much parameter-specific guidance beyond the schema; it doesn't elaborate on what 'full' depth really means or how to use includeHierarchyFields effectively. The session_id parameter is well-explained in the schema, but the tool description does not supplement it. So, it's adequate but doesn't enhance clarity beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Retrieve comprehensive details') and resource ('specific entity'), and specifies the kinds of information included (metadata, ownership, hierarchies, relationships). It differentiates itself as the 'primary method' for complete entity details, though it doesn't explicitly distinguish from siblings like getDefinition or getEntityDescriptor, but the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this is the go-to tool for complete entity details, but it doesn't explicitly state when to use it versus alternative tools or when not to use it. It mentions it's the 'primary method' but provides no exclusions or alternatives. The agent would need to infer that more specific tools like getTeamDetails or getScorecard exist for narrower use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getInitiativeGetinitiativeAInspect

Retrieve detailed information about a specific initiative including its goals, timeline, affected entities, scorecard targets, and current progress. Essential for understanding initiative scope and tracking achievement of objectives.

ParametersJSON Schema
NameRequiredDescriptionDefault
cidYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description itself carries the transparency burden. It clearly signals a non-mutating read operation via 'Retrieve' and discloses the categories of information returned. It does not discuss errors or response format, but for a simple read tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and resource, no filler or duplication. The second sentence provides practical context without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an unannotated tool with no output schema, the description should provide enough to call it correctly. It lists returned content but omits the meaning of the required cid and any guidance connecting this tool to listInitiatives, so an agent may fail at the first parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The required cid parameter has no schema description and the tool description never links it to the initiative identifier, so an agent cannot be certain what to pass. session_id and context are well documented in the schema, but the description adds no meaning for any parameter beyond the already-available schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete verb and object ('Retrieve detailed information about a specific initiative') and enumerates the data it returns (goals, timeline, affected entities, scorecard targets, current progress). This separates it from siblings like listInitiatives (list vs. get one) and getScorecard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers contextual guidance ('Essential for understanding initiative scope and tracking achievement of objectives') but never explicitly states when to choose this over listInitiatives or other sibling tools, nor any cases where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_more_toolsGet More ToolsA
Read-only
Inspect

Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesA description of your goal and what kind of tool would help accomplish it.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
mcp_sessionNoSession continuity and agent attribution state for this task, returned on completed responses that carry structured output. This server cannot link your calls between requests on its own, so session continuity travels here instead.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already covers the safety profile. The description adds the purpose but not additional behavioral traits like return format or side effects. It doesn't contradict annotations, but it doesn't go beyond what the annotation already conveys. A 3 is appropriate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the action and the condition for use in an efficient manner.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and usage guidance. The parameters are fully documented in the schema, and an output schema exists. The only minor gap is that it doesn't hint at what kind of tools might be returned, but that is likely handled by the output schema. Overall, it's complete for a discovery tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both 'context' and 'session_id' have detailed descriptions. The tool description adds no extra meaning about the parameters, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Check for additional tools') and the resource ('additional tools'). It also provides a clear condition for use, which distinguishes it from the many entity-specific get/list tools in the sibling list. No other sibling appears to be a meta-tool for discovery, so it stands apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use it: 'whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.' This is clear context, though it doesn't mention alternatives or when not to use it. Since no other tool serves this discovery role, the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getMyWorkspaceGetmyworkspaceAInspect

TOOL for retrieving current user's owned resources and work items across the Cortex workspace.

    FLEXIBLE REQUEST STRUCTURE:
    The request accepts an object with optional fields for each resource type:
    - myEntitiesRequest: Fetch entities (services, resources, domains) owned by the user
    - myTeamsRequest: Fetch teams the user belongs to
    - myScorecardsRequest: Fetch scorecards associated with user's entities
    - myOpenPRsRequest: Fetch user's open pull requests across all Git repositories
    - myRequestedReviewsRequest: Fetch PRs where user is requested as a reviewer
    - myWorkItemsRequest: Fetch work items (Jira, Linear, Azure DevOps) assigned to the user

    Set one or more fields to fetch multiple resource types in a single call.
    All results are combined into a single response array with mixed item types.

    RESPONSE STRUCTURE:
    Returns a single array of items where each item has an 'itemType' field indicating its type:
    - 'entity': Catalog entities (services, resources, domains)
    - 'team': Teams the user belongs to
    - 'scorecard': Scorecards for user's entities
    - 'pull_request': Open pull requests authored by the user
    - 'review_request': Pull requests where user is requested as reviewer
    - 'work_item': Work items (issues/tickets) assigned to the user

    EXAMPLES:
    1. Fetch only services:
       {"myEntitiesRequest": {"entityTypes": ["service"]}}

    2. Fetch teams and their entities:
       {"myTeamsRequest": {"includeMembers": true}, "myEntitiesRequest": {}}

    3. Get all work (PRs, reviews, Jira tickets):
       {"myOpenPRsRequest": {}, "myRequestedReviewsRequest": {}, "myWorkItemsRequest": {}}

    4. Search entities with filters:
       {"myEntitiesRequest": {"query": "payment", "ownershipSource": "DIRECT", "entityTypes": ["service", "resource"]}}
    
ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
myTeamsRequestNoRequest for teams the user belongs to
myOpenPRsRequestNoRequest for user's open pull requests across all Git repositories
myEntitiesRequestNoRequest for all entities (services, resources, domains) owned by the user
myWorkItemsRequestNoRequest for work items (Jira, Linear, Azure DevOps issues) assigned to the user
myScorecardsRequestNoRequest for scorecards associated with the user's entities
myRequestedReviewsRequestNoRequest for pull requests where the user is requested as a reviewer

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the response structure (single array with 'itemType' field), the combination behavior, and gives examples. It also implicitly indicates it's a read operation. However, it does not mention error handling, rate limits, or what happens if a sub-request fails. The example 1 omits required fields (includeArchived, ownershipSource, page, pageSize) for myEntitiesRequest, which could mislead an agent into thinking those are optional, though the schema marks them required. This is a minor transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with headers, bullet lists, and examples. It front-loads the purpose, then explains request/response structures, and ends with examples. Each section earns its place, though it could be tightened. The use of all-caps headers and clear formatting aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain return values, which it does thoroughly (itemType values and meaning). It covers all resource types and gives examples. However, it does not explicitly mention pagination behavior across the combined response or how page/pageSize apply when multiple sub-requests are made. Also, the incomplete examples could lead to failed calls. Overall, it is quite complete for the tool's complexity, but a few gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds value by explaining how the sub-request objects combine and providing usage examples. However, the examples are incomplete per the schema (e.g., example 1 omits required fields for myEntitiesRequest), which could cause incorrect calls. The description also labels the sub-request objects as 'optional fields' (meaning you can omit a sub-request), which is correct, but the internal required fields are not clarified. This does not fully compensate for the potential confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('retrieving') and resource ('current user's owned resources and work items across the Cortex workspace'). It distinguishes itself from sibling tools by aggregating multiple resource types in a single call, which is a unique capability not offered by the per-resource siblings like listAllEntities or getTeamDetails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use the tool flexibly: 'Set one or more fields to fetch multiple resource types in a single call.' It provides examples of different combinations and even shows how to fetch all work items. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions (e.g., 'use this instead of getTeamDetails when you need teams plus PRs'). The context is clear enough for an agent to infer, but explicit guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getOpenApiDocForEntityGetopenapidocforentityAInspect

Get the OpenAPI document registered against an entity - the API the service actually exposes. Distinct from the entity's Cortex descriptor, which getEntityDescriptor returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the OpenAPI spec to return. If you have multiple OpenAPI specs configured for your entity as `x-cortex-links`, use this parameter to ensure the correct spec is returned. If this parameter is not specified, we will return the first OpenAPI spec found.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It explains what the tool does but does not mention side effects, permissions, error handling, or the return format beyond the implied OpenAPI document. For a read operation, it lacks detail on what happens if no spec is found or if multiple specs exist (though the name parameter partially covers that).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero filler. The core purpose is stated first, and the differentiating sibling is mentioned second. Every sentence earns its place, and the structure is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple retrieval tool, but lacks some contextual details. There is no output schema, so the agent must infer that the result is an OpenAPI document, which is standard but not explicitly stated. The description does not cover edge cases like multiple specs or missing specs, though the name parameter hints at that. Given the simplicity and the clear sibling contrast, it is functional but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are well-documented in the schema itself. The tool description adds no additional parameter meaning beyond the schema, meeting the baseline for high coverage. The description does not clarify any parameter behavior beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get the OpenAPI document registered against an entity') and differentiates it from a sibling tool by naming getEntityDescriptor and the distinction between the exposed API and the Cortex descriptor. This is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts this tool with getEntityDescriptor, providing a clear when-to-use cue. However, it does not explicitly state when not to use this tool or mention any alternative scenarios beyond that single sibling, leaving some room for inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPluginByTagGetpluginbytagInspect

Get one plugin's full definition by tag, including its HTML source (blob). Read this before updatePlugin, which replaces the whole plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier for the plugin
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeBlobNoWhen true, returns the plugin blob. Defaults to false.
getQueryResultsGetqueryresultsInspect

Get the status of a CQL query job started with createQuery, by jobId. Once the job is done, returns the entities the query matched.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesjobId of the query to retrieve
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
getRelationshipTypeDetailsGetrelationshiptypedetailsAInspect

Get complete details of a specific relationship type including its configuration, rules, source/destination filters, and inheritance settings. Essential for understanding how entities can be connected and what validation rules apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
relationshipTypeTagYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of disclosing behavior. It states the tool 'Gets' details, implying a read-only operation, but does not explicitly confirm no side effects, mention error handling (e.g., behavior when the type doesn't exist), or note any permissions or rate limits. It adds little beyond what the name implies, and lacks the transparency expected for a tool without annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the purpose and enumerates key output contents. It contains no redundant phrases and is appropriately sized for a getter tool. Every word contributes to understanding the tool's role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the core content areas of the response (configuration, rules, filters, inheritance) and provides a rationale for use. While it does not describe the exact return format or error cases, the tool is a simple getter with no output schema, and the description adequately conveys what the agent will learn. It is nearly complete for its simplicity, though it could mention behavior on missing types or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% (context and session_id have detailed descriptions; relationshipTypeTag does not). The tool description mentions 'specific relationship type' but does not elaborate on relationshipTypeTag's format or constraints, nor does it clarify how it interacts with other parameters. Since coverage is not high and the description adds no parameter-specific value beyond the schema, it does not compensate for the undocumented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving complete details of a specific relationship type, listing included aspects (configuration, rules, filters, inheritance). It distinguishes from siblings like listRelationshipTypes (which lists all types) and more focused tools like listEntitySourcesForRelationshipType. The verb 'Get' and resource 'relationship type details' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool ('Essential for understanding how entities can be connected'), implying it's for exploring a specific relationship type's full configuration. However, it does not explicitly compare against alternatives like listEntitySourcesForRelationshipType or listEntityDestinationsForRelationshipType, nor state when not to use it. It offers context but no exclusions, so it earns a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getScaffolderGetscaffolderInspect

Get one Scaffolder template's full configuration by tag or Cortex ID. Read this before updateScaffolder, which replaces the whole template.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
getScorecardGetscorecardAInspect

Get complete details of a scorecard including its configuration, rules, levels, weights, exemption settings, and evaluation criteria. Essential for understanding how services are evaluated and what standards they must meet.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations provided, so the description carries the burden of behavioral disclosure. It does disclose the main output categories (configuration, rules, levels, weights, exemptions, evaluation criteria), but it does not mention potential side effects, permission requirements, rate limits, or error cases. The verb 'Get' implies a read operation, but the description could provide more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences long, front-loads the core purpose and key output components, and ends with a concise value statement. Every sentence earns its place, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-tag tool, the description is largely complete: it lists the major categories of returned data, the schema covers all parameters, and no output schema exists, so the enumerations serve that role. It could be slightly more complete by explicitly distinguishing itself from listScorecards or noting whether the returned configuration is versioned, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly, including the tag example, session_id semantics, and context explanation. The description adds no additional parameter-level meaning beyond referring to the scorecard tag as the target of the operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets complete details of a scorecard and enumerates the specific components returned: configuration, rules, levels, weights, exemption settings, and evaluation criteria. This makes it distinct from sibling tools like listScorecards or listScorecardScores, which cover listing or scoring rather than full scorecard details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys when this tool is appropriate by calling it essential for understanding how services are evaluated and what standards they must meet. However, it does not explicitly mention alternatives or state when not to use this tool, leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getScorecardNextStepsForEntityGetscorecardnextstepsforentityAInspect

Get actionable next steps for an entity to improve its scorecard performance. Shows which rules need to be satisfied to reach the next maturity level, helping teams prioritize improvements and track progress toward compliance goals.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately states the tool shows rules and helps prioritize improvements, which is a read-only operation by nature. However, it does not explicitly confirm read-only behavior, mention any prerequisites (e.g., that the entity must have a scorecard), or disclose any side effects. No contradiction with annotations since none exist, but the description could add more context about what the returned next steps look like or any limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose and outcome. Every clause adds value: it specifies the action (get next steps), the context (improve scorecard performance), and the output detail (rules to reach next maturity level). No redundancy or filler. It is appropriately sized and structured for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters, no output schema, and no annotations. The description explains the tool's purpose and what it returns conceptually (rules to satisfy), which is sufficient for an agent to understand when to call it. However, it does not explicitly mention that a scorecard tag and entity tag are required (though implied by the schema), nor does it describe the exact structure of the next steps output. Given the tool's moderate complexity, the description is mostly complete but could add a note about prerequisites or return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description does not add any parameter-level detail beyond what the schema provides. Baseline of 3 applies because the schema does the heavy lifting, and the description does not need to compensate for any undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves actionable next steps for an entity to improve scorecard performance, specifically listing which rules must be satisfied to reach the next maturity level. This distinguishes it from siblings like getScorecard (which returns the scorecard itself) and listScorecardScoresForEntity (which lists scores). The verb 'Get' plus the resource 'next steps for an entity' makes the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when an agent needs to guide improvement toward compliance goals, which is distinct from simply viewing scores or details. It does not explicitly name alternatives or provide when-not-to-use guidance, but the context is clear enough that an agent can infer when to call this tool versus others. Lacks explicit exclusion statements, but the purpose is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTeamDetailsGetteamdetailsAInspect

Retrieve detailed information about a specific team by its tag or ID. Returns complete team data including members, slack channels, metadata, and whether it's backed by an identity provider group.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It signals a read-only operation ('Retrieve') and describes expected output content, which is helpful. However, it does not mention error behavior, permission requirements, or any special constraints, so transparency is only moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the action, target, lookup key, and headline return fields in a compact, readable form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool, the description plus the fully documented required parameters are enough for an agent to know when to call it and what to expect back. It lacks an output schema and detailed error semantics, but the high-level return content is explicitly listed, leaving only minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the structured parameter definitions already explain tagOrId, session_id, and context. The tool description adds little beyond the schema, and its 'ID' wording is slightly looser than the schema's 'CID', but it does not introduce significant ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Retrieve'), a specific resource ('a specific team'), and the lookup mechanism ('by its tag or ID'). It also enumerates key returned content (members, Slack channels, metadata, identity provider group backing), which clearly distinguishes it from generic siblings like getEntityDetails or relationship-focused tools like getTeamHierarchyRelationships.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage context is clear: call this when you need detailed information about one known team. It does not explicitly name alternatives or when-not-to-use conditions, so it falls short of a 5, but the purpose statement is sufficient to guide correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTeamHierarchyRelationshipsGetteamhierarchyrelationshipsAInspect

List every parent-child relationship between teams, which together describe the team hierarchy. Use getTeamDetails to read any single team named in the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It discloses that the tool returns parent-child team relationships and that results name teams, but it does not mention pagination, ordering, result shape, or whether all hierarchy levels are included. Adequate for a simple list operation, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose is front-loaded, and the second sentence adds a useful cross-reference to getTeamDetails without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with fully documented parameters and no output schema, the description states what is returned and how to use the result. It lacks explicit mention of pagination or result limits, but nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the session_id parameter is thoroughly documented in the schema. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a specific resource ('every parent-child relationship between teams'), and a clear scope ('team hierarchy'). This distinguishes it from sibling tools like getTeamDetails, which reads a single team, and generic relationship listers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is the pointer to getTeamDetails for reading a single team named in the result. It does not explicitly state when to prefer this tool over listEntityRelationships or other relationship-oriented siblings, nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getWorkflowGetworkflowAInspect

Get one workflow by tag or CID, including the actions it runs and the inputs it takes. Use listWorkflows to find the tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what the returned workflow includes, but it does not state whether the operation is read-only, how errors or unrecognized IDs are handled, or any authorization/rate-limit implications. The name implies a getter, but the description adds little beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary behavior and selection info are front-loaded, and the pointer to listWorkflows is a useful, targeted addition that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple three-parameter getter with fully documented schema parameters, so the description does not need to repeat parameter semantics. It explains how to locate a tag via listWorkflows and what the workflow result contains, which is adequate given the absence of an output schema. It could mention error behavior or uniqueness of tags, but those are relatively minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 under the rubric. The tool description does not add meaning beyond the schema: 'by tag or CID' restates tagOrId's schema description, and session_id/context are already fully documented in the schema. No additional parameter nuance is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get'), the resource ('one workflow'), and the selection criteria ('by tag or CID'). It also previews what the call returns ('actions it runs and inputs it takes'), and naming listWorkflows helps differentiate it from the sibling list tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly directs users to listWorkflows when they need to find the tag, which gives useful routing for when to use the alternative. It does not spell out exclusions or broader when-not-to-use scenarios, but for a straightforward retrieval tool the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getWorkflowRunGetworkflowrunAInspect

Get one workflow run by its id, including the outcome of each action in it. Use listWorkflowRuns to find the run id. Poll while the status is NOT_INITIATED or IN_PROGRESS. The run context is left out unless includeContext=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
runIdYesThe ID of the run, from runWorkflow or listWorkflowRuns
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeContextNoWhen true, the response includes the run context. Defaults to false for MCP clients and true otherwise.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden: it discloses that the response includes per-action outcomes, and that run context is conditionally omitted unless includeContext=true. It does not cover permissions/auth or rate limits, which leaves a small gap, but the conditional output behavior and polling guidance are meaningful disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with zero filler: the core action first, then the id source, then the polling rule, then the conditional output note. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully characterizes the return ('outcome of each action', conditional context), and adds polling and id-sourcing guidance. It is close to complete for a get tool, though it stops short of describing the status field set or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented, including includeContext's default behavior and runId's source. The description only reiterates the includeContext condition already in the schema, adding no syntax or format detail beyond it, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get one workflow run by its id') and what it returns ('including the outcome of each action in it'), and explicitly names the sibling listWorkflowRuns as the source for the id, so it is distinguishable from listWorkflowRuns without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing ('Use listWorkflowRuns to find the run id') and a concrete polling condition ('Poll while the status is NOT_INITIATED or IN_PROGRESS'), telling the agent both when to call it and how to use the result over time. This is unusually actionable for a get tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

KubernetesGetK8sResourcesForEntityKubernetesgetk8SresourcesforentityAInspect

List the Kubernetes resources mapped to an entity - deployments, statefulsets, cronjobs and the like, with their current replica and pod state. Returns nothing when the tenant has no Kubernetes integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the output content (replica and pod state) and an important edge behavior ('Returns nothing when the tenant has no Kubernetes integration'). It does not explicitly state read-only semantics or pagination behavior, but 'List' implies a read operation and the schema documents paging parameters. This is solid coverage for a list-style tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The main purpose is front-loaded, examples and output details follow, and the empty-result edge case is a separate useful sentence. Every word contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description covers the core what, includes output specifics, and notes the no-integration case. It does not describe pagination behavior or result ordering, but those are already inferable from the schema's page/pageSize defaults. For a straightforward read/list tool, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning beyond the schema: tagOrId, page, pageSize, session_id, and context are all already described in the input schema. The phrase 'mapped to an entity' aligns with tagOrId, but adds no new detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('Kubernetes resources mapped to an entity') and provides concrete examples ('deployments, statefulsets, cronjobs and the like') along with the included state ('current replica and pod state'). This clearly distinguishes it from sibling tools like AWSGetAwsResources or getCustomDataForEntity, so an agent can identify what this tool does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear use case: when an entity's Kubernetes resources and their replica/pod state are needed. It does not explicitly name alternatives or state when not to use it, but the resource-specific language makes the context obvious enough for an agent to select it over siblings such as AWSGetAwsResources. The absence of exclusions keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listAllEntitiesListallentitiesInspect

List and enumerate catalog entities by structured filters (groups, types, owners, git repositories) with pagination. To find or search for entities by name, relevance, team, or domain, use searchCatalog instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
queryNoFilter based on a [search query](https://docs.cortex.io/settings/search). This will search across entity properties. If provided, results will be sorted by relevance.
typesNoFilter the response to specific types of entities. By default, this includes services, resources, and domains. Corresponds to the `x-cortex-type` field in the entity descriptor.
groupsNoFilter based on groups, which correspond to the `x-cortex-groups` field in the Catalog Descriptor. Accepts a comma-delimited list of groups
ownersNoFilter based on owner group names. Returns entities owned by the specified groups, as well as entities owned by any child/sub-teams of those groups. Group names correspond to the `x-cortex-owners` field in the Catalog Descriptor. Accepts a comma-delimited list of owner group names.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeLinksNoWhether to include links for each entity in the response
includeOwnersNoWhether to include ownership information for each entity in the response
hierarchyDepthNoDepth of the parent / children hierarchy nodes to include for each entity. Defaults to 0, which returns no hierarchy data. Pass 'full' to return the entire hierarchy, or a positive integer to limit the depth.0
gitRepositoriesNoFilter by git repositories. Supports GitHub (`github:org/repo` or `org/repo`), GitLab (`gitlab:namespace/project` or `gitlab:<project ID>`), Bitbucket (`bitbucket:workspace/repo`), and Azure DevOps (`azure-devops:project/repo`). Unprefixed values default to GitHub for backward compatibility.
includeArchivedNoWhether to include archived entities in the response
includeMetadataNoWhether to include custom data for each entity in the response
includeNestedFieldsNoList of sub fields to include for different types
includeSlackChannelsNoWhether to include Slack channels for each entity in the response
includeHierarchyFieldsNoList of sub fields to include for hierarchies. Only supports 'groups'
listAllPluginsListallpluginsInspect

List the plugins installed in Cortex, with their tags, names and contexts. Use getPluginByTag for one plugin's full definition, including its HTML source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeDraftsNo
listCatalogPagesListcatalogpagesInspect

List the catalog pages configured in Cortex (the catalogs shown in the sidebar, such as Services or Domains), with their slugs and how each one selects its entities. Use getCatalogPage for one catalog by slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
listCustomEventsForEntityListcustomeventsforentityBInspect

List custom events for an entity with optional filtering by type and time range. Supports pagination and filtering by event type, start time, and end time to retrieve historical event data.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
typeNo
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endTimeNoIf provided, events with less than or equal to timestamp will be returned (UTC, e.g. 2026-06-22T00:00:00)
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
startTimeNoIf provided, events with greater than or equal to timestamp will be returned (UTC, e.g. 2026-06-22T00:00:00)
timestampNoUse 'startTime' instead
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It conveys a read-only list operation with optional filters, pagination, and historical scope, which is adequate for the basic call, but it does not mention deprecated fields like 'timestamp' or any pagination caveats beyond what the schema already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and is only two sentences, but it redundantly repeats filtering information: 'filtering by type and time range' is restated as 'filtering by event type, start time, and end time'. This repetition costs conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, no output schema, and no annotations, the description gives only basic list-and-filter semantics. It does not describe the return shape, pagination behavior beyond the phrase 'supports pagination', or the deprecated timestamp parameter, leaving several operational gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (89%), so the schema already documents most parameters. The description adds minor value by clarifying that 'type' means event type and that startTime/endTime form a time range, but it does not compensate for the undocumented 'type' values or describe the deprecated 'timestamp' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('custom events for an entity'), and mentions filtering by type and time range. It is distinct from sibling tools like 'getCustomEventForEntityByUuid' by signaling plural listing rather than single-event retrieval, though it does not explicitly call out that distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance explains when to use this tool versus related siblings such as 'getCustomEventForEntityByUuid' or 'getCustomDataForEntity'. The phrase 'retrieve historical event data' implies a use case, but there are no alternatives, exclusions, or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listDefinitionsListdefinitionsAInspect

List the entity type definitions in this workspace - the types an entity can be, each with the JSON schema its descriptor must satisfy. Read this before interpreting or composing an entity's custom fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeBuiltInNoWhen true, returns the built-in entity types that Cortex provides, such as `rds` and `s3`. Defaults to false.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose what the operation returns (entity type definitions with their descriptor JSON schemas) and implies a read-only listing. But it does not clarify workspace scoping semantics, pagination behavior, or what happens with the built-in types by default. For a simple list tool this is adequate but not rich, warranting a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two tight sentences with zero waste. The core purpose is front-loaded in the first sentence, and the usage directive in the second earns its place. No redundancy, no filler, and it is appropriately brief for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description compensates reasonably: it states the operation, the return content (types with descriptor JSON schemas), and gives the sequencing guidance to read it before composing custom fields. All parameters are fully documented in the schema. The only gap is not clarifying the relationship to the sibling listing tools, but for a straightforward list operation this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level detail beyond what the schema already documents; it does not elaborate on any of the five parameters (page, pageSize, includeBuiltIn, session_id, context). Since the schema fully covers the parameters, the description neither helps nor hurts, keeping it at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a clear resource ('entity type definitions in this workspace') and adds what each entry contains ('the JSON schema its descriptor must satisfy'). This is clear and meaningful, and conceptually separates it from listEntityDescriptors (descriptors) and getDefinition (single entity). However, it never names any sibling or explicitly differentiates itself, so it stays at a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a genuine usage context: 'Read this before interpreting or composing an entity's custom fields.' This tells the agent when to invoke it but does not mention alternatives, when not to use it, or how it differs from similar tools like listEntityDescriptors or getDefinition. There is context but no exclusions, landing it between a 3 and a 4; the thinness of the single directive pulls it to 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listDependenciesForEntityListdependenciesforentityInspect

List all dependencies for an entity including both incoming (who depends on this service) and outgoing (what this service depends on) relationships. Essential for understanding service interactions, planning changes, and assessing blast radius.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
callerTagYes
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeArchivedNoWhether to include dependencies on archived entities in the response
includeIncomingNo
includeOutgoingNo
listDeployEnvironmentsListdeployenvironmentsAInspect

List all distinct deploy environment names for this tenant. Use before getDeploysForEntity to pass the correct environment values.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses that the tool lists distinct names scoped to the tenant, which is useful, but it does not describe return format, pagination, or any other behavioral traits. It is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The core purpose is front-loaded, and the usage guidance is placed immediately after, making it easy for an agent to parse and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has no output schema, and the description clearly states what it returns (deploy environment names) and when to use it. It could mention the exact output type or empty-list behavior, but for this low-complexity tool the description is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both session_id and context are already fully documented in the schema. The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('List') and resource ('all distinct deploy environment names for this tenant'). It also distinguishes itself by explicitly connecting to getDeploysForEntity, making its purpose unambiguous even among many sibling list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: 'Use before getDeploysForEntity to pass the correct environment values.' This tells the agent when to invoke it, though it does not enumerate exclusions or compare against other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listEntityDescriptorsListentitydescriptorsAInspect

List the Cortex descriptors of many entities, with pagination. Returns JSON by default; pass yaml=true for the YAML form. Filter with types, and set includeArchived to reach archived entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0 indexed
yamlNoWhen true, returns the YAML representation of the descriptors
typesNoFilter the response to specific types of entities. By default, this includes services, resources, and domains. Corresponds to the `x-cortex-type` field in the entity descriptor.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of entities to return per page
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeArchivedNoWhether to include archived entities in the response

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses return format (JSON default, YAML optional), pagination, and filtering/archived behavior. However, it omits details like authentication requirements, error handling, or what happens on empty results, leaving some ambiguity for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence delivers the core purpose ('List many descriptors with pagination') followed by precise details. Every clause earns its place, and there is zero redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 7 parameters and no output schema, the description covers the essential usage: pagination, filters, formats, and archived entities. The session_id parameter is left to the schema, which is acceptable since it is fully documented there. Overall, an agent can call this tool correctly based on the description and schema together.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are already documented. The description adds minimal new semantic value—it mentions 'filter with types' and 'includeArchived' but essentially paraphrases the schema. It does not reveal hidden relationships or constraints, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a precise resource ('Cortex descriptors of many entities'), and distinguishes it from the singular getEntityDescriptor sibling. It also mentions pagination, formats, and filters, making the tool's scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it lists descriptors in bulk with pagination, filters by types, and can include archived entities. While it does not explicitly name alternatives like getEntityDescriptor, the emphasis on 'many entities' and pagination strongly implies when to use this over a single-entity tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listEntityDestinationsForRelationshipTypeListentitydestinationsforrelationshiptypeBInspect

List all destinations for a certain relationship type and entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMaximum depth to traverse in the relationship hierarchy. Defaults to 1 (i.e., direct relationships only).
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeArchivedNoIf true will include relationships that traverse archived entities
relationshipTypeTagYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'list', implying read-only, but does not state safety, side effects, pagination, or any limitations. The depth behavior is mentioned in the schema, not the description, so the description itself adds minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff, front-loading the core purpose and immediately directing the agent to a prerequisite tool. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters and no output schema, this description is minimal. It does not explain what 'destinations' means in this context, how the depth parameter affects results, or what the output looks like. It points to listRelationshipTypes for the tag but leaves other operational details to the schema. An agent may struggle to use it correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83% (5 of 6 parameters described), which is high. The description adds no parameter-specific details beyond what the schema already provides; it only references relationshipTypeTag indirectly. Per the rubric, baseline 3 is appropriate since the schema covers most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all destinations') and the resource ('for a certain relationship type and entity'). It distinguishes itself from siblings like listEntitySourcesForRelationshipType by focusing on 'destinations' rather than 'sources', and from listEntityRelationships by being specific to a relationship type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a key prerequisite by telling the agent to use listRelationshipTypes to find the relationshipTypeTag. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to choose destinations over sources) or when not to use it. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listEntityRelationshipsListentityrelationshipsBInspect

List all entity relationships for a specific relationship type across the entire organization. Returns paginated results showing all source-destination pairs, useful for understanding the complete relationship graph and finding all connections of a particular type.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
relationshipTypeTagYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It mentions pagination and source-destination pairs, which is useful, but it does not state whether the operation is read-only, whether special permissions are required, how results are ordered, what happens for nonexistent relationship types, or any potential side effects. For a tool with no annotation coverage, this is insufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is efficient and front-loaded with the core action and scope. There is no filler or redundancy; every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has five required parameters, no annotations, and no output schema, the description is sparse. It fails to explain the crucial relationshipTypeTag parameter (left undescribed in the schema), does not mention output format or result structure, and omits operational details like authentication or error handling. A single sentence is not enough to adequately cover the operational context for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80% (four of five parameters have descriptions). The description adds minimal semantic value: it mentions 'specific relationship type' which hints at relationshipTypeTag, but does not clarify its meaning or format beyond the schema (which has no description for it). The other parameters (page, pageSize, session_id, context) are already well described in the schema, so the description adds little beyond baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), resource ('entity relationships'), and scope ('across the entire organization' for a 'specific relationship type'). It clearly conveys the action and what it operates on. However, it does not differentiate from sibling tools like listEntitySourcesForRelationshipType or listEntityDestinationsForRelationshipType, which also deal with relationships but from a directional perspective, so it lacks explicit sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for understanding the complete relationship graph and finding all connections of a particular type, which gives context. But it does not mention when to avoid this tool or explicitly compare with alternatives (e.g., listEntitySourcesForRelationshipType for one-directional queries, or getRelationshipTypeDetails for metadata). No exclusions or alternative routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listEntitySourcesForRelationshipTypeListentitysourcesforrelationshiptypeAInspect

List all sources for a certain relationship type and entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMaximum depth to traverse in the relationship hierarchy. Defaults to 1 (i.e., direct relationships only).
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeArchivedNoIf true will include relationships that traverse archived entities
relationshipTypeTagYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, yet it reveals nothing beyond what the tool name already implies. It does not mention traversal semantics for depth, what a 'source' consists of, how results are shaped, or any side effects. The prerequisite pointer is operational guidance, not behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the core purpose front-loaded and zero waste. The only minor flaw is the filler qualifier 'certain,' but every sentence earns its place, and the prerequisite guidance is placed exactly where it is needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema is rich and covers most parameters, but with no output schema and no annotations, the description leaves important gaps: it never defines what 'sources' are, what the return value looks like, or how this tool differs from the similar listEntityDestinationsForRelationshipType sibling. Adequate for basic invocation, but incomplete for confident selection among closely related tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 83%, so five of six parameters are already documented and the baseline is 3. The description adds value for the one undocumented parameter, relationshipTypeTag, by directing the agent to listRelationshipTypes to discover valid values — meaningful guidance the schema alone does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and a specific resource ('sources for a certain relationship type and entity'), making the core function clear. However, it does not explicitly differentiate this from the closely named sibling listEntityDestinationsForRelationshipType, so it stops short of full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides one concrete usage pointer: use listRelationshipTypes to find the relevant relationshipTypeTag, which is genuinely actionable since that parameter is undocumented in the schema. It does not, however, state when to prefer this over listEntityRelationships or listEntityDestinationsForRelationshipType, or give any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listGroupsForEntityListgroupsforentityAInspect

List the groups one entity belongs to. Groups are the free-form x-cortex-groups tags used to organize the catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It explains the semantics of groups but does not describe return format, pagination behavior beyond the schema-derived page/pageSize hints, or what happens when an entity has no groups or is invalid. The read-only nature is implied but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler. The purpose is front-loaded, and the single clarifying detail — what groups are — earns its place by disambiguating the catalog concept. Nothing extraneous is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema and no annotations, the description is lean. Pagination is only implied through the parameter descriptions, and return-value structure is left unspecified. It is adequate for a simple read operation but could explain result format and the pagination contract more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — all five parameters are individually described, so the schema carries the heavy lifting. The description adds marginal value by clarifying what counts as an 'entity' (via tagOrId context) and what 'groups' means, but it does not enrich parameter syntax or format beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('the groups one entity belongs to'), and clarifies what groups are (free-form x-cortex-groups tags). It reads distinctly from sibling tools, none of which obviously list groups. It lacks an explicit statement of what it is not, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description defines groups as x-cortex-groups tags, offering useful context that implies a catalog-organization use case, but it gives no explicit guidance on when to choose this tool over alternatives or any exclusion criteria. Among siblings there is no obvious substitute tool, so the omission is minor but still leaves usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listInitiativesListinitiativesAInspect

List all initiatives in the organization with optional filters for draft and expired initiatives. View active improvement programs, strategic projects, and their current status to understand organizational priorities and track progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeDraftsNoWhether or not to include draft Initiatives in the response
includeExpiredNoWhether or not to include expired Initiatives in the response

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does establish a read-style list operation plus filter behavior. It does not disclose default exclusion of drafts/expired, pagination behavior, or any result-shape caveats, though the schema covers some defaults. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences with the core listing behavior first and the business purpose second. The phrase 'understand organizational priorities and track progress' adds context but is slightly generic, so not a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should compensate by revealing return shape; it only says 'current status' and doesn't mention pagination results or default active-only behavior. The schema covers parameters, but the lack of richer outcome details leaves a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are already documented in detail. The description only restates the includeDrafts/includeExpired filter idea and adds no new semantics for page, pageSize, session_id, or context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation ('List all initiatives') and its scope ('in the organization'), and adds the optional draft/expired filters plus the initiative status/type context. It does not explicitly differentiate from sibling getInitiative, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear intended use case: viewing active improvement programs and strategic projects to understand priorities and track progress, and it explains optional filters. However, it never mentions when to prefer a sibling such as getInitiative, so it lacks explicit exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listIntegrationStatusesListintegrationstatusesAInspect

List every integration installed in this workspace (GitHub, Jira, PagerDuty, Slack, etc.) with the result of its most recent connection check. Use to find integrations whose credentials are failing (INVALID) or have not been checked recently (UNKNOWN). lastValidatedAt is when the connection was last checked, not when data was last synced, so do not report it as data freshness. message is null unless the caller has the Manage Integrations permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden and does substantial work: it warns that lastValidatedAt is a check timestamp, not data freshness, and that message is null unless the caller holds Manage Integrations permission — a real auth-dependent field behavior. It stops short of stating pagination or the full set of status values, and read-only nature is only implied by 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action before the usage hint and the two disambiguating caveats. No filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with no output schema, the description supplies the semantics of the key returned fields and a permission caveat, which is most of what an agent needs. Minor gaps remain around result size, pagination, and the complete status vocabulary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (session_id, context) are fully documented in the schema, so the baseline is 3. The description adds no parameter-level detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'List every integration installed in this workspace' — plus the payload it returns (most recent connection check result). No sibling covers integration status, so it is unambiguously distinguishable from the catalog, entity, and workflow tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the use case: finding integrations with failing credentials (INVALID) or stale checks (UNKNOWN). That is clear triggering context, though it offers no exclusions or named alternative when a different tool would be better suited.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listMetricDefinitionsListmetricdefinitionsAInspect

List all available engineering metric definitions.

USAGE - Call this endpoint BEFORE querying metrics (queryPointInTimeMetrics):

  1. Once at start: Call with view='basic' to discover all available metrics - cache this response

  2. Before querying: Call with view='full' and key=METRIC_KEY to get query metadata for only the metrics you need

  3. Use cached metadata to construct valid point-in-time queries

IMPORTANT: Do NOT call view='full' without a key filter. The unfiltered full view is very large.

Cache responses in your context. Only refresh if no longer in your context window or explicitly requested (ex to check if metric readiness has changed).

Query parameters:

  • view: 'basic' (default) returns minimal info, 'full' includes sources and query metadata

  • key: Filter metrics by key (supports multiple values and comma-separated lists)

Full view provides query construction metadata:

  • supportedAggregations: Valid aggregation methods for the metric

  • orderByAttribute: Attribute path for sorting by metric values

  • groupByOptions[].key: Valid groupBy keys (use exact values, do NOT guess)

  • filterOptions[].key: Valid filter keys (use exact values, do NOT guess)

Valid orderBy attributes for metric queries:

  • orderByAttribute: The metric value itself (returned in full view)

  • Source attributes: Any attribute from the metric's source (e.g., "source_name.attribute_name")

  • Dimension attributes: Any attribute from related dimensions (e.g., "source_name.dimension_name.attribute_name")

Filter operators by type (for constructing queries):

  • STRING: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, LIKE, NOT_LIKE, IN, NOT_IN, ANY

  • INTEGER/DECIMAL/DOUBLE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IN, NOT_IN, BETWEEN, ANY

  • DATETIME/DATE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, BETWEEN

  • BOOLEAN: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, IN, NOT_IN

  • ARRAY: EQUAL, CONTAINS, IN

Error responses:

  • 400: Invalid view parameter (must be 'basic' or 'full')

  • 403: Restricted Feature (contact help@cortex.io)

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
viewNobasic
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It discloses performance characteristics (unfiltered full view is very large), caching behavior, and 400/403 error responses. It also explains what metadata full view returns, though it does not explicitly state read-only semantics or auth requirements; 'List' implies read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear headings and front-loaded purpose and usage. The filter-operator and ordering sections are dense but relevant to constructing valid point-in-time queries, so they earn their place. There is no filler or tautological repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema and annotations, the description provides enough to call the tool correctly: workflow, parameter semantics, caching, error handling, and query metadata. A minor gap is that the exact shape of basic/full response envelopes is not spelled out, but the mention of 'minimal info' and key filtering makes it inferable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover only session_id and context, leaving key and view undocumented there. The description fills this gap by defining allowed view values, explaining that key supports multiple values and comma-separated lists, and describing the query metadata returned in full view. It does not restate context/session_id, but those are already well documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with 'List all available engineering metric definitions,' a specific verb and resource. It also frames the tool as the prerequisite step before queryPointInTimeMetrics, distinguishing it from generic listing siblings like listDefinitions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Includes an explicit USAGE section: call before querying metrics, once with view='basic' to discover metrics, then with view='full' and a key before querying. It also gives a clear anti-pattern: do not call view='full' without a key filter, plus caching instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listRelationshipTypesListrelationshiptypesAInspect

List all available relationship types with pagination. View relationship type configurations to understand what kinds of relationships can be created between entities like services, resources, domains, and teams.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It correctly implies a read-only listing operation and discloses pagination behavior, but it does not explicitly state that no entities are modified, nor describe result size limits, ordering, or what a returned configuration contains beyond a general 'understand what kinds...' hint. Adequate but thin for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with the core action front-loaded. The first sentence is maximally direct; the second adds value by clarifying the purpose of viewing these configurations. No filler or redundancy, though the second sentence does restate the 'relationship type' concept once more—minor overlap, not noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paginated list tool with no output schema and no annotations, the description conveys the essential scope, the return domain (relationship-type configurations), and pagination. It does not spell out the exact result shape, but the absence of an output schema is partially mitigated by the domain clarification. The four required params are handled by the schema's thorough 100% documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no parameter-level meaning beyond the schema: pagination is already fully documented in page and pageSize, and session_id/context are thoroughly covered in the schema. The description's 'with pagination' phrase merely echoes the schema rather than adding new semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List all available relationship types with pagination.' The scope ('all available') is explicit, and the second sentence clarifies the resource domain (relationship configurations between services, resources, domains, teams). This clearly distinguishes it from siblings like listEntityRelationships (relationships for an entity) and getRelationshipTypeDetails (a single type's detail).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an implied use case: 'View relationship type configurations to understand what kinds of relationships can be created.' However, it does not explicitly route the agent away from alternatives such as getRelationshipTypeDetails or the listEntitySources/DestinationsForRelationshipType siblings, nor state when NOT to use this tool. Usage context is present but no exclusions or explicit comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listScaffoldersListscaffoldersInspect

List the Scaffolder templates configured in Cortex, with their tags. Use getScaffolder for one template's full configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
listScorecardRuleExemptionsListscorecardruleexemptionsAInspect

List Scorecard rule exemptions, newest first, with their status, requester, approver and expiry. Filter by Scorecard tag, entity tag, rule identifier, status, requester or approver email, or only exemptions currently in effect; a rule identifier needs a Scorecard tag. Callers who can view Scorecard exemptions see every exemption; other callers see only the exemptions they requested.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
statusNoOnly return exemptions with this status. APPROVED excludes approvals past their end date, which are returned as EXPIRED.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
entityTagNoOnly return exemptions for the entity with this tag (`x-cortex-tag`)
onlyActiveNoOnly return exemptions that are pending, or approved and not yet expired. Default false.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
scorecardTagNoOnly return exemptions for the Scorecard with this tag
approverEmailNoOnly return exemptions approved by the user with this email
requesterEmailNoOnly return exemptions requested by the user with this email
ruleIdentifierNoOnly return exemptions for the rule with this identifier. Requires `scorecardTag`

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful behavior: default sort order, the fields returned, and—most valuably—authorization-scoped results (privileged callers see all exemptions, others see only their own requests). It omits pagination/response-shape behavior, but the schema covers page/pageSize.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight clauses: what it lists, how to filter it, and who sees what. The core purpose is front-loaded with no filler, though the middle filter-enumeration clause is a dense run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter read-only listing tool with no output schema or annotations, the description covers output ordering, fields, filtering, the parameter dependency, and access scoping. It leaves pagination semantics to the schema but is otherwise sufficient to call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented in the schema; the description largely paraphrases those filters. It does reinforce the ruleIdentifier→scorecardTag coupling, but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List Scorecard rule exemptions") and immediately adds the ordering ("newest first") and the returned fields (status, requester, approver, expiry). No sibling tool lists exemptions, so the resource is unambiguous among the provided siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It enumerates the filter axes (Scorecard tag, entity tag, rule identifier, status, requester/approver email, active-only) and states the dependency "a rule identifier needs a Scorecard tag", which is actionable usage context. It stops short of any explicit when-not or alternative-tool routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listScorecardsListscorecardsAInspect

List all scorecards in the organization with optional filtering. View scorecard configurations to understand quality standards, compliance requirements, and maturity models. Supports filtering by groups, entities, and teams to find relevant scorecards.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
teamsNoFilter based on team (either tags or CIDs). Accepts a comma-delimited list of team tag or CIDs, please use only one type of identifier
groupsNoFilter based on groups, which correspond to the `x-cortex-groups` field in the Catalog Descriptor. Accepts a comma-delimited list of groups
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entitiesNoFilter based on entity (either tags or CIDs). Accepts a comma-delimited list of entity tag or CIDs, please use only one type of identifier
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
showDraftsNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions optional filtering and lists filter dimensions (groups, entities, teams), and states the tool returns 'scorecard configurations.' However, it does not mention pagination behavior, that results are paginated via page/pageSize, or how showDrafts affects results. For a list operation without annotations, this is a moderate disclosure but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and front-loads the core purpose ('List all scorecards in the organization'). It is efficient, though the second sentence about 'viewing configurations' is slightly redundant with the purpose but adds context on why it might be used. No filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema or annotations, the description covers the main functionality (listing and filtering) but omits details like pagination, session_id handling (though the schema covers it), and the effect of showDrafts. The tool is moderately complex, and while the schema fills in most gaps, the description does not fully explain the complete behavior expected when calling the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 88%, so the input schema already documents most parameters. The description mentions filtering by groups, entities, and teams, which aligns with the schema but adds little beyond it. It does not explain page/pageSize, session_id, context, or showDrafts beyond what the schema already states. Baseline of 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all scorecards in the organization, with optional filtering. It names the resource ('scorecards') and the verb ('list'), and distinguishes itself from siblings like getScorecard (which retrieves a single scorecard) and listScorecardScores (which lists scores). The mention of 'view scorecard configurations' reinforces the specific use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying 'List all scorecards in the organization' and mentions filtering, but does not explicitly state when to use this tool versus alternatives like listScorecardScores or getScorecard. It lacks explicit 'when not to use' guidance or comparisons to sibling tools. The purpose is implied, but no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listScorecardScoresListscorecardscoresAInspect

Retrieve scores for all entities evaluated by a specific scorecard. Returns paginated results showing how each service, resource, or domain performs against the scorecard's rules, including individual rule scores and overall scorecard scores.

Prefer searchScorecardScores for filter-based questions — listScorecardScores scans page-by-page and is expensive on large scorecards.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
entityTagNoEntity tag (x-cortex-tag)
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure and does so meaningfully: it states pagination, page-by-page scanning, cost on large scorecards, and the contents of the result (individual rule scores and overall scores). It does not explicitly state read-only status, auth, or rate limits, but 'Retrieve' plus the absence of side-effect language makes the operation's nature clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences front-load the primary purpose and result, then add a targeted usage caveat. No redundant filler; the performance warning is the only extra detail and it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with no output schema and no annotations, the description covers the essential contract: scope, result content, pagination, and cost. It falls short of fully disambiguating the optional entityTag filter and the related listScorecardScoresForEntity sibling, but overall an agent can call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents tag, page, pageSize, entityTag, session_id, and context. The description adds general behavior (paginated results, all entities) but no parameter-specific semantics beyond what the schema provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb ('Retrieve'), a clear resource ('scores for all entities evaluated by a specific scorecard'), and the result contents. It contrasts naturally with the sibling listScorecardScoresForEntity by emphasizing 'all entities' and explicitly references searchScorecardScores as the filtered alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit routing: prefer searchScorecardScores for filter-based questions, and warns that this tool scans page-by-page and is expensive on large scorecards. However, the named alternative searchScorecardScores does not appear in the provided sibling-tools list, and the closely related sibling listScorecardScoresForEntity is not mentioned, leaving some routing ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listScorecardScoresForEntityListscorecardscoresforentityAInspect

List every scorecard that evaluates one entity, with that entity's score and rule outcomes on each. This is the per-entity view; use listScorecardScores to read one scorecard across many entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral disclosure. It states the output (score and rule outcomes) but does not mention whether the operation is read-only (implied by 'List'), any pagination, rate limits, or performance characteristics. For a list operation this is acceptable but not comprehensive; the description adds only surface-level behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no waste. The core purpose is front-loaded, and the alternative tool is mentioned in the second sentence without over-explaining.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for a simple list operation. It clearly states what is returned (score and rule outcomes) and distinguishes from the sibling. Given the rich schema descriptions for all parameters and the absence of an output schema, the description covers the essential context. A slight gap is the lack of mention of any result size or pagination, but it's not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are fully documented in the schema. The tool description adds no extra meaning about tagOrId, session_id, or context beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a clear resource ('every scorecard that evaluates one entity'), and the included data ('score and rule outcomes'). It explicitly contrasts with the sibling tool listScorecardScores, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It directly names the alternative tool (listScorecardScores) and the condition for using it ('to read one scorecard across many entities'), giving the agent a clear decision rule. The 'per-entity view' framing reinforces when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listTeamMemberRolesListteammemberrolesAInspect

List the team member roles defined in this workspace (for example on-call, tech-lead), each with its tag, name and description. Roles are referenced by tag wherever a team member is returned, so read this to interpret them.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
queryNoCase-insensitive filter matched against the role name and tag. Omit to return all roles.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the disclosure burden. It signals a read-only list operation, scopes results to the workspace, and adds useful context: role tags returned elsewhere need this endpoint to be interpreted. It does not discuss pagination or auth, but for a safe listing operation those are minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the action, scope, examples, and output fields; the second explains why the output matters. The most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with no output schema, the description supplies the essential output shape (tag, name, description), scope, and use context. Pagination and filtering details are fully covered by the input schema, so an agent has enough to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains page, pageSize, query, session_id, and context in detail. The description adds no parameter-level semantics, which is acceptable at this coverage level but earns only the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the team member roles defined in this workspace,' and gives concrete examples (on-call, tech-lead). It also names the returned fields (tag, name, description), which clearly distinguishes it from the many sibling get/list tools that target entities, scorecards, or deployments rather than the role catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a concrete trigger: roles are referenced by tag wherever a team member is returned, so call this tool to interpret those role tags. This is clear contextual guidance even though it does not explicitly name alternative tools or state when not to use them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listVerificationPeriodsListverificationperiodsAInspect

List verification periods, open or closed, each with a count of the entities that are still outstanding. Pass isActive=true for the periods that are open today. Call this first to find the periodCid that the verification tools need.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
isActiveNoReturn only periods that are open today (true) or only those that are not (false). Omit for all periods.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It communicates the read-only listing behavior, the output concept of an outstanding-entity count, and the filtering semantics for open vs. closed periods. It could mention ordering or pagination behavior, but the core behavior is adequately disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no filler. The core output is stated first, followed by the key parameter usage and the recommended call order. Every clause contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description gives the essential return information: periods, open/closed status, outstanding counts, and the presence of periodCid. Combined with fully documented parameters and the explicit 'call this first' guidance, this is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description reinforces the isActive parameter's intent and mentions periodCid as an output, but it adds little beyond the schema's already thorough parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists verification periods, distinguishes them as open or closed, and mentions the outstanding entity count. It also points to the periodCid that downstream verification tools need, which positions it distinctly from sibling listVerifications and retrieveVerificationPeriod tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to call this tool first to obtain periodCid for verification tools, and explains how to use isActive to select open periods. It does not enumerate exclusions or alternative tools, but the sequencing guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listVerificationsListverificationsAInspect

List verifications across the catalog, one entry per entity and verification period, including entities nobody has verified yet. Each entry names the entity, the period it belongs to, the status (PENDING, VERIFIED_CORRECT, VERIFIED_INCORRECT), and who verified it. Filter by periodCid, status, or isActive=true for periods that are open today. Use this to answer who still owes a verification, and which entities were reported incorrect.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
statusNoReturn only verifications in this state
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
isActiveNoReturn only verifications whose period is open today (true) or only those whose period is not (false). Omit for all periods.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
periodCidNoReturn only verifications belonging to this verification period
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It explains the result shape (entity, period, status, verifier), the inclusion of unverified entities, and the available filtering scopes. This is transparent for a read-oriented listing tool, though it does not mention pagination behavior or whether verifier fields are null for unverified entries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states what the tool lists, characterizes the result rows, notes the key unverified-entity behavior, summarizes filters, and gives a concrete use case. Every sentence adds value; there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema and no annotations, the description is reasonably complete: it defines the output granularity, the status values, the inclusion of unverified entities, and the main filters. It could be slightly stronger by pointing to listVerificationsForEntity for per-entity queries, but it does not leave a critical gap for selecting or invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the meaning of filters like status and isActive, and clarifies the purpose of the output, but it does not add significant parameter-level detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('verifications across the catalog'), defines the unit of output ('one entry per entity and verification period'), and calls out a distinguishing feature ('including entities nobody has verified yet'). This clearly separates it from sibling tools like listVerificationsForEntity or listVerificationPeriods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear application context: 'Use this to answer who still owes a verification, and which entities were reported incorrect.' It also explains when filters like periodCid, status, and isActive are relevant. It does not explicitly name alternatives or state when not to use this tool, but the guidance is concrete enough to route an agent appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listVerificationsForEntityListverificationsforentityAInspect

List the verifications for a single entity, one entry per verification period the entity is in scope for, including periods it has not been verified for yet. Use this to check whether one service, resource, or domain is up to date on its verifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
isActiveNoReturn only verifications whose period is open today (true) or only those whose period is not (false). Omit for all periods.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses a non-obvious behavior: results include entries for verification periods the entity has not yet been verified for, and each period gets its own row. It does not describe ordering, error behavior, or auth requirements, but it provides meaningful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no filler. The core listing behavior and use case are front-loaded, and nothing is repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The parameter schema fully covers inputs, and the description clarifies the result semantics well enough for a simple listing tool. The main gap is that there is no output schema and the description does not describe ordering or how unverified periods are represented, but this is not critical for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters and their defaults. The description adds no parameter-specific detail, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: list verifications for a single entity, and further clarifies the output shape as one entry per verification period, including periods not yet verified. It distinguishes itself from broader siblings like listVerifications by emphasizing 'single entity' and a per-period scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence gives a concrete use case: checking whether one service, resource, or domain is up to date on verifications. It clearly implies single-entity scope, though it does not explicitly name alternatives or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listWorkflowRunsListworkflowrunsAInspect

List workflow runs across the workspace, newest first. Each run names the workflow, who or what started it, its state and when it finished. Use this to answer whether a workflow fired and whether it succeeded. Filter with workflowIds, initiatedBy, entityId and startedAfter/startedBefore; only runs from the last 30 days are returned. The run context is left out unless includeContext=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 0
sizeNoNumber of runs per page
sortNoSort as `property,direction`. Defaults to `dateCreated,desc`.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityIdNoFilter by target entity tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
initiatedByNoFilter by the email of the user who initiated the run. Repeat the parameter for several users.
searchQueryNoSearch query for workflow name or description
workflowIdsNoFilter by workflow tag or CID. Repeat the parameter for several workflows.
startedAfterNoFilter runs started after this time (UTC, without an offset, e.g. 2026-06-22T00:00:00). Runs older than 30 days are never returned.
startedBeforeNoFilter runs started before this time (UTC, without an offset, e.g. 2026-06-22T00:00:00)
includeContextNoWhen true, the response includes the run context. Defaults to false for MCP clients and true otherwise.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose two real traits beyond the schema: only runs from the last 30 days are returned, and run context is omitted unless includeContext=true. It says nothing about permissions, pagination behavior across pages, or result size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and ordering, then filters, then the context caveat. The sentence enumerating returned fields (workflow, initiator, state, finish time) earns its place only because there is no output schema; otherwise it would be padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter list tool with no output schema and no annotations, the description covers purpose, default ordering, retention window, and the includeContext toggle, and sketches the returned fields. The two required infrastructure parameters (session_id, context) are left entirely to the schema, which handles them at length, so the omission is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds value by grouping the filter parameters (workflowIds, initiatedBy, entityId, startedAfter/startedBefore) into a coherent filtering story and attaching the 30-day retention caveat that constrains date filters. It does not clarify the interplay of searchQuery with the other filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List workflow runs across the workspace'), plus scope ('across the workspace') and default ordering ('newest first'). It does not explicitly contrast itself with the singular getWorkflowRun or listWorkflows siblings, so the differentiation is implied by the plural 'runs' rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a concrete use case — 'Use this to answer whether a workflow fired and whether it succeeded' — and enumerates the filters that shape the query. It stops short of naming when NOT to use it or pointing to getWorkflowRun for a single run's detail, which is the obvious alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

listWorkflowsListworkflowsAInspect

List the workflows defined in this workspace, with their tags, names and descriptions. Use this to find the workflow tag that getWorkflow, runWorkflow and listWorkflowRuns need.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
searchQueryNoWhen set, only returns workflows with the given substring in the name or description.
includeActionsNoWhen true, returns the list of actions for each workflow. Defaults to false.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the returned shape in part (tags, names, descriptions) but says nothing about pagination behavior, session continuity requirements, or whether search/includeActions alter the result set beyond what the schema states. Adequate but with clear gaps for an annotation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The purpose is front-loaded and the routing guidance follows immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description states the primary returned fields and the tool's discovery role, which is what an agent needs to place the call. Missing only secondary details like pagination/return format, which the schema partly covers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (page, pageSize, searchQuery, includeActions, session_id, context) are already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List the workflows defined in this workspace') and enumerates the returned fields (tags, names, descriptions). It also distinguishes itself from siblings by naming getWorkflow, runWorkflow and listWorkflowRuns as downstream consumers of the tag it surfaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('Use this to find the workflow tag that getWorkflow, runWorkflow and listWorkflowRuns need'), naming the exact alternatives and the condition that selects them. No inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patchPluginPatchpluginInspect

Change only the fields you send on a plugin, found by tag. Omitted fields stay as they are, and an explicit null clears a field that can be null. The response includes the HTML blob only if the blob was changed. Returns 404 if the plugin does not exist. To replace the whole plugin, use updatePlugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier for the plugin
blobNoThe raw source code of the plugin. This should be an HTML file
nameNoDisplay name of the plugin
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNoIcon tag for the plugin
isDraftNoWhether the plugin is generally available or not
versionNoThe version of the plugin
contextsNoWhich contexts the plugin should execute/show up in, e.g. `{ "type": "GLOBAL" }`
proxyTagNoThe identifier of the proxy to use for requests from this plugin
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoDescription of the plugin
minimumRoleRequiredNoThe minimum role required to view the plugin, e.g. `VIEWER`, `USER`, `MANAGER`, `OWNER`, or custom role tags.
query_docsQuery DocsCInspect

Query the Cortex knowledge base for answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe question to ask Cortex docs
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
mcp_sessionNoSession continuity and agent attribution state for this task, returned on completed responses that carry structured output. This server cannot link your calls between requests on its own, so session continuity travels here instead.

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It merely says 'query' and 'answers,' implying a read operation, but does not state side effects, required permissions, session handling, or any operational nuances. This is a significant gap for a tool with three required parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise and front-loaded, but it provides so little information that it borders on under-specification. It is not verbose, but it does not earn its place with useful details beyond the tool's name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and detailed parameter descriptions, the tool definition lacks critical context. It does not explain how this tool fits among many sibling query tools, nor does it mention the session_id and context requirements in the description (though they are in the schema). An agent might be unsure when to use this instead of alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning about parameters; it just restates the purpose. Baseline 3 is appropriate because the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb (query) and resource (Cortex knowledge base) with the goal of providing answers. It is distinct from siblings like queryPointInTimeMetrics or queryTraceEvents, though it does not explicitly name alternatives. It is not a tautology and gives enough to understand the core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus other query tools. The description does not mention any exclusions, prerequisites, or alternatives. An agent would have no clue about the appropriate context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queryPointInTimeMetricsQuerypointintimemetricsInspect

Execute point-in-time queries for one or more engineering metrics.

Returns current metric values for specified time periods, with support for batch queries. Time range (startTime/endTime) cannot exceed 6 months (180 days).

COMPARISON FIELD: If you need to compare against a different time window, use the comparison field with type='TIME_WINDOW'. The ONLY valid type is TIME_WINDOW. Do NOT use PERIOD_OVER_PERIOD or any other type. Example: {"type": "TIME_WINDOW", "startTime": "2025-01-01T00:00:00", "endTime": "2025-01-15T00:00:00"}

PREREQUISITES - Follow this workflow:

  1. Discover all available metrics ONCE: Call listMetricDefinitions (view='basic') - cache this response

  2. Get metric query metadata ONCE per metric: Call listMetricDefinitions (view='full', key=METRIC_KEY)

    • supportedAggregations: Valid aggregation methods

    • orderByAttribute: Attribute path for sorting by metric values

    • groupByOptions[].key: Valid groupBy keys (use exact values, do NOT guess)

    • filterOptions[].key: Valid filter keys (use exact values, do NOT guess) Cache the full view response for each metric. Reuse the metadata from cached responses for subsequent queries on the same metric.

  3. Construct query: Use the query metadata from the full view responses in step 2 to build valid point-in-time requests

IMPORTANT: Cache only results from listMetricDefinitions. Do NOT cache point-in-time query results - always execute fresh queries for current data. Only refresh cached listMetricDefinitions responses if no longer in your context window or explicitly requested. Do NOT guess attribute names - always use exact values from listMetricDefinitions responses.

Response includes:

  • Lightweight metadata: Column definitions optimized for programmatic use

  • Row data: Actual metric values and dimensional data

  • No heavy schemas: Source definitions excluded (get from listMetricDefinitions instead)

Error responses:

  • 400: Invalid metric names, date range, validation errors, or unsupported metric combinations

  • 403: Restricted Feature (contact help@cortex.io)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesMaximum number of results to return
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endTimeYesEnd time for the query period
filtersYesFilters to apply to the data
groupByYesFields to group results by
metricsYesList of metrics to query with their aggregation functions
orderByYesSort order for results
nextPageNoPagination token for next page of results
startTimeYesStart time for the query period
comparisonNo
daysOfWeekNoOptional day-of-week restriction (ISO: Monday=1..Sunday=7). When set, the query filters out rows whose time-attribute does not fall on one of these weekdays. Use {1,2,3,4,5} to exclude weekends. Empty set matches nothing.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
timeAttributeNoDeprecated: use timeAttributes instead. Single time attribute override as a fully-qualified path (e.g. 'pull_requests.date_closed').
timeAttributesNoTime attributes to use for queries. Each entry is a fully-qualified attribute path (e.g. 'pull_requests.date_closed'). The source is inferred from the prefix. For single-source queries, provide one entry. For multi-source, provide one per source to override.
nestedAggregationsNoNested aggregations for advanced sub-queries
queryTraceEventsQuerytraceeventsAInspect

Query raw trace events from engineering data sources.

Returns individual event records (pull requests, deployments, CI runs, etc.) with flexible filtering, ordering, and pagination. Time range (startDate/endDate) cannot exceed 6 months (180 days). Maximum 5000 results per request.

PREREQUISITES - Follow this workflow:

  1. Discover available sources and attributes: Call listMetricDefinitions (view='full') to see available data sources

  2. Use source names and attribute keys from the registry response to construct your trace query

  3. Do NOT guess attribute names - always use exact values from listMetricDefinitions responses

IMPORTANT: Use exact attribute names from the registry. Filters use the same AttributeFilter format as the metrics API.

LINKING: Most sources have a URL attribute (e.g., 'pull_requests.url', 'deployments.url'). Always include URL attributes in your query so you can hyperlink results in Slack using <URL|display text> format.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitYesMaximum number of results to return (max 500)
sourceYesData source to query (e.g., 'pull_requests', 'deployments')
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endDateYesEnd of the time range to query
filtersYesFilters to apply to the query
orderByYesOrdering specification for results
nextPageNoPagination cursor from a previous response
startDateYesStart of the time range to query
attributesYesList of attribute names to include in results. Empty returns all attributes.
daysOfWeekNoOptional day-of-week restriction (ISO: Monday=1..Sunday=7). When set, only events whose time attribute falls on one of these days are returned (e.g. [1,2,3,4,5] excludes weekends).
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
timeAttributeNoOverride the default time attribute for time-based filtering

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full transparency burden. It usefully discloses the 180-day time-range cap, the 5000-result maximum, the need for registry-exact attribute names, and the Slack linking expectation. However, the stated 'Maximum 5000 results per request' conflicts with the schema's limit description of 'max 500', making the behavioral guidance inconsistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with bolded PREREQUISITES, IMPORTANT, and LINKING sections, and it front-loads the core purpose and constraints. There is some redundancy around using exact attribute names from the registry, repeated in both step 3 and the IMPORTANT section, but overall it is scannable and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is strong on prerequisites and constraints, but there is no output schema and the description does not explain the response envelope or pagination mechanics beyond saying individual records are returned. For a 12-parameter tool with no annotations, the return structure and pagination behavior should be more explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes all 12 parameters, so the baseline is 3 even without extra description. The description adds useful context about the 6-month range, exact attribute names, and URL attributes, but its 'Maximum 5000 results per request' directly contradicts the schema's limit 'max 500', which is actively misleading for an agent selecting a limit value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Query raw trace events from engineering data sources' and says it returns individual event records such as pull requests, deployments, and CI runs. This distinguishes it from sibling tools like queryPointInTimeMetrics by contrasting raw event records with point-in-time metric data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete workflow: call listMetricDefinitions first, use exact source and attribute names from the registry, and include URL attributes for Slack hyperlinks. It does not explicitly say when to prefer this tool over queryPointInTimeMetrics or other alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

refreshScorecardScoreForEntityRefreshscorecardscoreforentityInspect

Start a re-evaluation of one entity's score on one Scorecard, identified by Scorecard tag and entity tag. Requires the Run Scorecards permission. The call only starts the evaluation and returns no score; read the result afterwards with listScorecardScoresForEntity or getScorecardNextStepsForEntity. Returns 409 if this Scorecard is already being evaluated.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
replaceCustomEventForEntityByUuidReplacecustomeventforentitybyuuidInspect

Replace a custom event, found by its UUID, with the request body. Every field is overwritten and fields you omit are cleared, so send the full event (read it first with getCustomEventForEntityByUuid). Returns 404 if the entity or event does not exist. Does not create an event.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoOptional URL associated with custom event
typeYesType of custom event
uuidYes
titleYesName for custom event
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
timestampYesTime when event occurred
customDataNoOptional property to store additional data
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoOptional description of custom event
requestScorecardRuleExemptionRequestscorecardruleexemptionInspect

Request an exemption for one entity from one Scorecard rule, identified by Scorecard tag, entity tag and ruleIdentifier (call getScorecard to get it). A reason is required. Set days for an expiring exemption; leave it out and the exemption lasts until it is revoked. The exemption is approved at once if the caller has Edit Settings or the Scorecard auto-approves exemptions; otherwise it stays PENDING. Fails if the Scorecard has exemptions disabled, or if a pending or active exemption already exists for that rule and entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
daysNoNumber of days how long rule should be exempt. If not set, rule will be exempt until exempt until revoked.
reasonYesReason for creating exemption
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
ruleIdentifierYesIdentifier of the Scorecard rule to request exemption for
retrieveCustomDataForEntityAdvancedRetrievecustomdataforentityadvancedAInspect

List an entity's custom data, taking the entity tag as a query parameter. Use this form when the tag contains characters that cannot sit in a path segment; otherwise use getCustomDataForEntity.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNoWhen set, returns the entity's value at this key. Otherwise, returns all custom data key/values for the entity.
tagYesEntity tag (x-cortex-tag), supports non-alphanumeric characters
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the query-parameter behavior but does not describe output shape, pagination, failure behavior, permissions, or whether it is strictly read-only beyond the word 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core purpose is front-loaded and the routing condition is stated immediately after, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for choosing between the main path-based variant, but it omits the key-specific sibling and gives no return-value or error context. With no output schema and no annotations, the definition is usable but leaves gaps around behavior and alternative selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well documented in the schema. The description adds only the useful detail that the tag is sent as a query parameter, which is not enough to move beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List an entity's custom data'. It also distinguishes itself from getCustomDataForEntity by noting the tag is passed as a query parameter, so an agent can tell the variants apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit condition: use this form when the tag contains characters that cannot sit in a path segment, otherwise use getCustomDataForEntity. However, it does not mention getCustomDataForEntityByKey, a sibling that may be the better choice when filtering by a single key.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retrieveVerificationPeriodRetrieveverificationperiodAInspect

Get one verification period by its CID, including its schedule, the entity filter that sets its scope, who may verify, and how many entities are outstanding. Use listVerificationPeriods to find the CID.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
periodCidYesThe CID of the verification period
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly signals a read-only fetch and describes the composed response (schedule, filter, verifiers, outstanding count). It does not mention not-found behavior, permissions, or other side effects, but for a single retrieval the core behavior is adequately disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry the full purpose, the output scope, and the prerequisite lookup step. The most important information is front-loaded and there is no redundant material.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-item retrieval with no output schema, the description explains what callers can expect in the result and how to satisfy the key parameter. It is adequate for invocation; only edge-case behavior such as missing CID is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3. The description goes beyond the schema by telling the agent how to obtain the periodCid ('Use listVerificationPeriods to find the CID'), which is material additional meaning for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get'), a resource ('one verification period'), an identifier ('by its CID'), and the key contents of that resource, making it distinct from sibling list/search tools. It also names listVerificationPeriods explicitly, which reinforces the distinction between fetching one item and listing periods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction 'Use listVerificationPeriods to find the CID' tells the agent the prerequisite and a concrete alternative for locating the identifier. It gives clear context for when to call this tool, though it does not spell out negative cases or alternatives for other types of verification queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revokeScorecardRuleExemptionRevokescorecardruleexemptionInspect

Revoke every APPROVED exemption for one rule on one entity, identified by Scorecard tag, entity tag and ruleIdentifier, with a required reason. The rule applies to the entity again, and the record is kept for audit. Admins or the original requester can revoke. Fails with 400 when no approved exemption exists. Use denyScorecardRuleExemption for a request that is still pending.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique tag for the Scorecard
reasonYesReason for revoking the exemption
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
entityTagYesThe entity tag (`x-cortex-tag`) that identifies the entity.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
ruleIdentifierYesIdentifier of the Scorecard rule
runWorkflowRunworkflowAInspect

Start a new run for a workflow. The workflow must be runnable via API and the caller must have the Run workflows permission. The scope type must match the workflow filter type. Set workflow variables with initialContext. Returns the run's initial status and run id for polling via getWorkflowRun. The run context is left out unless includeContext=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
runAsNoUser's email to run the workflow as
scopeYesScope of the workflow run (e.g., target entities)
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeContextNoWhen true, the response includes the run context. Defaults to false for MCP clients and true otherwise.
initialContextNo
notificationRecipientsNoList of email addresses to notify of workflow updates.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers real behavioral content: authorization requirement, the API-runnable constraint, the scope/filter-type matching rule, and the return shape (initial status + run id). It omits side-effect/destructiveness and idempotency details, but the auth and argument-consistency disclosures go well beyond what structured fields provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action, then prerequisites, then return/context behavior in five tight sentences with no filler. Slightly dense, but each sentence earns its place and no redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 8 parameters, nested scope objects and no output schema, the description covers preconditions, the scope-matching constraint, context handling, and the return values needed for polling. It is essentially complete for correct invocation, with only minor gaps (runAs, notificationRecipients) left to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already high (88%), so the baseline is 3, but the description adds genuine meaning: 'Set workflow variables with initialContext' clarifies the otherwise undocumented object parameter, and the includeContext sentence explains default behavior that the schema only partially states. It adds value beyond the schema for the two most ambiguous arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start a new run for a workflow'), which cleanly separates it from read-only siblings like getWorkflow, listWorkflows and listWorkflowRuns. It even names getWorkflowRun as the downstream polling tool, so an agent can place it in the lifecycle without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete preconditions for invocation (workflow must be runnable via API, caller needs the 'Run workflows' permission, scope type must match the filter type) and points to getWorkflowRun for follow-up polling. It stops short of explicit when-not-to-use or alternative-tool exclusions, so it is clear context rather than full routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchCatalogSearchcatalogAInspect

Search the catalog for entities (services, domains, teams, resources), ranked by relevance. This is the primary way to find entities. Put search text in query (plain words work; AND/OR/NOT supported). Scope with types (e.g. service, domain, team); owners to get everything a team owns, including its sub-teams; domains to get everything within a domain, including its sub-domains; or catalog (a catalog slug). Returns a lean result per entity (cid, tag, type, name, description, owner emails, owning team tags, groups, status); groups are the free-form x-cortex-groups tags used to organize the catalog. Use getEntityDetails for the full record of a single entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo0-indexed page number.
queryNoRelevance search text. Plain words work; AND/OR/NOT supported.
typesNoRestrict to entity types, e.g. service, domain, team, resource.
ownersNoOwner team tags. Returns entities owned by these teams, including their sub-teams.
catalogNoCatalog slug. Scopes the search to that catalog's entities.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
domainsNoDomain tags. Returns entities in these domains, including their sub-domains.
pageSizeNoResults per page, 1-100.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
includeArchivedNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does well: it discloses relevance ranking, a lean result shape, and explains the `groups` field semantics. It does not discuss pagination, includeArchived behavior, or empty-query behavior, though the schema provides defaults for some of these.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five dense sentences front-load purpose and move from query text to scoping to return contract. There is no filler, repetition, or irrelevant context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers selection, invocation, scoping semantics, and return shape, which is especially important given there is no output schema. Minor omissions such as pagination behavior and includeArchived are mitigated by schema defaults and do not prevent correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is around 90%, but the description still adds value by explaining scoping effects and enumerating the returned lean fields (cid, tag, type, name, description, owner emails, owning team tags, groups, status). It also clarifies `groups` beyond the schema. Some parameter guidance, like AND/OR/NOT in query, repeats the schema, but the return-contract detail lifts it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb and resource ('Search the catalog for entities'), enumerates entity kinds (services, domains, teams, resources), and states relevance ranking. 'This is the primary way to find entities' positions it among siblings, and 'Use getEntityDetails for the full record' separates it from detail retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly frames the tool as the primary entity-finding entry point and gives explicit scoping options. It names getEntityDetails as the alternative when a full record is needed, but it does not explicitly exclude other sibling search tools such as searchDeploys or say when listAllEntities would be preferable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

searchDeploysSearchdeploysAInspect

Get deployments with server-side filtering (environment, type, entity, time range). Pass entityTagOrIds=['my-tag'] to get deployments for a single entity, or omit it to search tenant-wide.

Environments are matched exactly — call listDeployEnvironments first to discover values (e.g. 'prod' vs 'prod2ndmd').

ParametersJSON Schema
NameRequiredDescriptionDefault
pageYesPage number to return, 0-indexed. Default 0.
typesNoFilter by deploy types: DEPLOY, ROLLBACK, SCALE, RESTART
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
pageSizeYesNumber of results to return per page, between 1 and 1000. Default 250.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
environmentsNoFilter by environment names (exact match, any of)
entityTagOrIdsNoFilter to these entity tags or CIDs (any of)
timestampAfterNoOnly deploys at or after this timestamp (UTC, e.g. 2026-06-22T00:00:00)
timestampBeforeNoOnly deploys at or before this timestamp (UTC, e.g. 2026-06-22T00:00:00)

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that filtering is server-side and that environment matching is exact, which is valuable. However, it does not describe pagination behavior, output format, or any limits—though the schema covers pagination parameters. This is adequate but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs with no wasted words. The core purpose and the key gotcha (exact environment matching) are front-loaded, and the usage guidance is directly actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, 4 required, and no output schema, the description covers the essential filtering behavior and the environment discovery step. It does not explain session_id/context parameters, but those are thoroughly documented in the schema. The lack of output format details is minor for a search tool and the description is sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the semantic meaning of entityTagOrIds (single entity vs. tenant-wide) and by warning about exact environment matching and the need to discover valid values via listDeployEnvironments. This goes beyond the schema's basic field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves deployments with server-side filtering by environment, type, entity, and time range. It explicitly distinguishes between single-entity (via entityTagOrIds) and tenant-wide searches, which differentiates it from sibling getDeploysForEntity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives specific guidance on when to pass entityTagOrIds versus omitting it, and instructs to call listDeployEnvironments first for exact environment matching. It does not explicitly mention alternatives like getDeploysForEntity, but the tenant-wide vs. single-entity distinction implies the correct routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unarchiveEntityUnarchiveentityInspect

Restore an archived entity by tag or CID so it shows in the catalog again. Unarchiving an entity that is not archived changes nothing. Returns the entity's full details, and 404 if the entity is not found.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
unarchiveTeamUnarchiveteamInspect

Restore an archived team by tag or ID so it is active again. Reverses archiveTeam. Unarchiving an active team does nothing new. Returns 404 if the team does not exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
updateCortexTeamMembersUpdatecortexteammembersInspect

Replace the full member list of a Cortex-managed team (type "CORTEX") with the members in the request. Each member has an email, a name, and optional roleTags from listTeamMemberRoles. Members you leave out are removed, so to add one person, read the current members with getTeamDetails and send the whole list. Fails for IdP-backed teams, whose members sync from the identity provider.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
membersYes
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
updateDefinitionUpdatedefinitionInspect

Replace an existing custom entity type's name, description and JSON schema. Fields you leave out are cleared, except iconTag, which is kept. The type slug itself cannot be changed. If active entities use the type, a schema change is rejected unless force=true, and force may make those entities fail validation. Returns 404 if the type does not exist. Read the current version with getDefinition first.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
typeYes
forceNoWhen true, schema will be updated even if it results in broken schemas for existing entities. Defaults to false.
schemaYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNo
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNo
updateDependencyUpdatedependencyInspect

Set the description and metadata of a caller-to-callee dependency (optionally scoped by method and path). Both fields are overwritten, and null clears them. If the dependency does not exist it is created, so this is an idempotent upsert. Only affects dependencies created through the API, not ones from the descriptor or integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
methodNo
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
metadataYes
calleeTagYes
callerTagYes
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionYes
updateDeployByUuidUpdatedeploybyuuidInspect

Replace a deployment record, found by its UUID, with the request body. Every field is overwritten and fields you omit are cleared, so send the full record. Returns 404 if the entity or deployment does not exist. Does not create a record.

ParametersJSON Schema
NameRequiredDescriptionDefault
shaNo
urlNo
typeYes
uuidYes
titleYes
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
deployerNo
timestampYes
customDataNo
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
environmentNo
updateInitiativeUpdateinitiativeInspect

Update an existing Initiative by its CID. The request has the same shape as createInitiative and replaces the Initiative in full; optional fields that are left out are cleared, not kept. Call getInitiative(cid) first and send the complete definition back. Returns 404 if the CID does not exist. Requires the Edit Initiative permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
cidYes
nameYesName of the Initiative
filterNoFilter that selects the entities in the catalog, for `FILTER` catalogs
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
isDraftYesWhether or not the Initiative is a draft
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
targetDateYesTarget date for the Initiative to be completed. Must be in the future
descriptionNoOptional description of the Initiative
scorecardTagYesTag of the scorecard associated with the Initiative
emphasizedRulesYesEmphasized rules for the Initiative. Either emphasized levels or rules must be provided
emphasizedLevelsYesEmphasized levels for the Initiative. Either emphasized levels or rules must be provided
notificationScheduleNoNotification schedule for the Initiative
updatePluginUpdatepluginInspect

Replace a plugin, found by tag, with the full definition in the request, including its HTML blob. Fields you omit that can be null are cleared. Returns 404 if the plugin does not exist. To change only some fields, use patchPlugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier for the plugin
blobYesThe raw source code of the plugin. This should be an HTML file
nameYesDisplay name of the plugin
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagNoIcon tag for the plugin
isDraftYesWhether the plugin is generally available or not
versionNoThe version of the plugin
contextsYesWhich contexts the plugin should execute/show up in, e.g. `{ "type": "GLOBAL" }`
proxyTagNoThe identifier of the proxy to use for requests from this plugin
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoDescription of the plugin
minimumRoleRequiredYesThe minimum role required to view the plugin, e.g. `VIEWER`, `USER`, `MANAGER`, `OWNER`, or the tag for a custom role. Learn more about each permission in our [docs](https://docs.cortex.io/docs/walkthroughs/workspace-settings/permissioning#roles-in-cortex).
updateRelationshipTypeUpdaterelationshiptypeInspect

Replace the configuration of an existing relationship type, found by its tag. The request body is the full definition, and fields you leave out are not kept. Relationship types managed by Cortex cannot be changed. Read the current configuration with getRelationshipTypeDetails first.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesUnique identifier tag for the relationship type
nameYesHuman-readable name for the relationship type
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
allowCyclesYesWhether cyclical relationships are allowed
descriptionNoOptional description explaining the relationship type
inheritancesYesInheritance configuration for Cortex parameters. Currently supports ownership inheritance via x-cortex-owners.
createCatalogYesWhether to create a catalog page for this relationship type
sourcesFilterYes
isSingleSourceYesWhether an entity can have only one source for this relationship type
sourceLabelPluralNoPlural label for sources in the relationship
definitionLocationYesDefines where a relationship can be configured in entity descriptors
destinationsFilterYes
isSingleDestinationYesWhether an entity can have only one destination for this relationship type
relationshipTypeTagYes
sourceLabelSingularNoSingular label for sources in the relationship
destinationLabelPluralNoPlural label for destinations in the relationship
destinationLabelSingularNoSingular label for destinations in the relationship
updateScaffolderUpdatescaffolderInspect

Replace an existing Scaffolder template, found by tag or Cortex ID, with the request body. Fields you omit go back to their defaults and are not merged, so read the template with getScaffolder first. Passing a new tag renames the template. Needs the Configure Scaffolder permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoStable, human-readable identifier, unique within the workspace. Lowercase letters, numbers, and dashes; may not start or end with a dash. Derived from the name when omitted on creation; an existing template keeps its tag unless a new one is provided.
nameYesDisplay name of the Scaffolder template
typeYesThe templating engine of the template
labelsYesDescriptive labels used to group templates in the UI
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
showReadmeYesWhether the template repository's README is shown before a run. Defaults to `false`
descriptionNoDescription of the Scaffolder template
repoLocatorYes
createYamlFileYesWhether a cortex.yaml is generated for the created entity. Defaults to `true`
publisherOptionsNo
strictAliasUsageYesWhether runs are restricted to the git configuration alias the template names. Defaults to `true`
requireNewServiceYesWhether running the template must create a new entity. Defaults to `true`
requirePullRequestYesWhether the template publishes via a pull request to an existing repository. Defaults to `false`
updateVerificationPeriodUpdateverificationperiodInspect

Update a verification period by its CID. This replaces the period in full, so optional fields that are left out are cleared; call retrieveVerificationPeriod first and send the complete definition. Changing the scope is destructive: widening it adds PENDING entries, and narrowing it deletes the entries for removed entities, including answers already recorded.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name
scopeYesWhich entities a verification period covers. An empty scope covers every entity. Combined conditions all have to hold.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
endDateYesThe day the period closes, inclusive
periodCidYesThe CID of the verification period
startDateYesThe day the period opens, inclusive
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoWhat owners are being asked to confirm
requiredRolesYesCortex roles a user must hold to verify. Empty means any owner of the entity may verify.
reasonRequiredNoWhether a reason is required to mark an entity incorrect. Marking an entity correct never requires one. Defaults to false.
requiredTeamRoleTagsYesTags of team roles a user must hold on a team that owns the entity in order to verify
requiredCustomRoleTagsYesTags of custom Cortex roles a user must hold to verify
uploadGoSumPackageUploadgosumpackageInspect

Upload a Go go.sum for an entity (body: raw file text). Keeps the highest version of each module and REPLACES all of the entity's Go packages.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your go.sum file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadJavaPackageUploadjavapackageInspect

Add or update a single Java package on an entity (JSON body: {name, version}, e.g. com.google.guava:guava). Upserts by name: it overwrites any existing Java package with that name, including one parsed from a pom.xml, and leaves all other packages alone. To sync a whole pom.xml, use uploadMavenPom.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPackage name, like io.cortex.scorecards
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
versionYesSemver package version
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadMavenPomUploadmavenpomInspect

Upload a Maven pom.xml for an entity (body: raw XML text). REPLACES the Java packages that came from earlier pom uploads but keeps packages added one at a time with uploadJavaPackage.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your pom.xml file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadNpmPackageJsonUploadnpmpackagejsonInspect

Upload a package.json for an entity (body: raw file text). Parses only dependencies (not devDependencies) and REPLACES all of the entity's Node packages, including those from package-lock.json, yarn.lock or pnpm-lock.yaml uploads. Prefer a lockfile tool (uploadNpmPackageLockJson, uploadYarnLock, uploadPnpmLock) for resolved versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your package.json
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadNpmPackageLockJsonUploadnpmpackagelockjsonInspect

Upload an npm package-lock.json for an entity (body: raw file text; lockfile v1-v3). REPLACES all of the entity's Node packages, including those from package.json, yarn.lock or pnpm-lock.yaml uploads, with the resolved versions. Invalid JSON returns an empty list and changes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your NPM package-lock.json
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadNugetCsprojUploadnugetcsprojInspect

Upload a .NET *.csproj for an entity (body: raw XML text). Reads <PackageReference> elements and REPLACES all of the entity's NuGet packages, including those from packages.config or packages.lock.json uploads. Fails with 400 for .NET Framework projects that use only <Reference>; use uploadNugetPackagesConfig for those.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your *.csproj file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadNugetPackagesConfigUploadnugetpackagesconfigInspect

Upload a .NET packages.config for an entity (body: raw XML text; the format older .NET Framework projects use). REPLACES all of the entity's NuGet packages, including those from csproj or packages.lock.json uploads.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your packages.config file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadNugetPackagesLockUploadnugetpackageslockInspect

Upload a NuGet packages.lock.json for an entity (body: raw JSON text). Reads the resolved versions of the first target framework and REPLACES all of the entity's NuGet packages, including those from csproj or packages.config uploads.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your nuget package.lock.json file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadPipfileLockUploadpipfilelockInspect

Upload a Python Pipfile.lock for an entity (body: raw JSON text). Reads only the default section, plus a python package from _meta.requires.python_version, and REPLACES all of the entity's Python packages, including those from a requirements.txt upload. Invalid JSON returns an empty list and changes nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your Pipfile.lock file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadPnpmLockUploadpnpmlockInspect

Upload a pnpm-lock.yaml for an entity (body: raw YAML text; lockfile version 6 or higher). REPLACES all of the entity's Node packages, including those from package.json, package-lock.json or yarn.lock uploads, with the resolved versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your pnpm-lock.yaml file; supported version 6 or higher
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadRequirementsTxtUploadrequirementstxtInspect

Upload a Python requirements.txt for an entity (body: raw file text). REPLACES all of the entity's Python packages, including those from a Pipfile.lock upload. Requirements with no version specifier are skipped.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your requirements.txt file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
uploadYarnLockUploadyarnlockInspect

Upload a yarn.lock for an entity (body: raw file text). REPLACES all of the entity's Node packages, including those from package.json, package-lock.json or pnpm-lock.yaml uploads, with the resolved versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesStringified version of your yarn.lock file
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
upsertCatalogPageUpsertcatalogpageInspect

Create a catalog page, or replace the existing one with the same slug. A replace overwrites every field. Name, slug and iconTag are required. Choose the page's entities with a filter (FILTER catalog) or a relationshipTypeTag (RELATIONSHIP_TYPE catalog). A DOMAIN catalog must set type=DOMAIN explicitly. Catalogs managed by Cortex cannot be changed (403). Requires the Edit catalogs permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the catalog
slugYesUnique identifier for the catalog
typeNoWhat the catalog is built from. Optional: inferred as `FILTER` when `filter` is set and `RELATIONSHIP_TYPE` when `relationshipTypeTag` is set. Must be set explicitly to `DOMAIN` for a domain catalog
filterNoFilter that selects the entities in the catalog, for `FILTER` catalogs
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
iconTagYesTag of the icon shown for the catalog
isDraftYesWhether the catalog is a draft
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
descriptionNoOptional description of the catalog
relationshipTypeTagNoTag of the relationship type the catalog is built from, for a `RELATIONSHIP_TYPE` catalog
validateWorkflowDescriptorValidateworkflowdescriptorInspect

Check a workflow descriptor (raw YAML or JSON) without saving anything. Returns ok plus a list of violations. Call this before createOrUpdateWorkflow to catch errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRaw text of the YAML
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.
verifyEntityForPeriodVerifyentityforperiodInspect

Record the caller's verification answer for one entity in one verification period (by entity tag or ID and periodCid). status is VERIFIED_CORRECT or VERIFIED_INCORRECT; PENDING is rejected. A reason is required for VERIFIED_INCORRECT when the period sets reasonRequired. The period must be open, and the caller must own the entity and hold any roles the period requires. Use listVerificationPeriods to find the periodCid.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoWhy the entity is incorrect. Required when the period sets reasonRequired and the status is VERIFIED_INCORRECT.
statusYesWhether the entity's data is correct. PENDING is not accepted.
contextYes Explain why you're invoking this tool now and how its output will be used. Then state how this call supports your *overall objective* and fits into your broader plan across all tool calls (e.g., why this tool vs. others, and what step it unblocks). Never share any personal details or sensitive information.
tagOrIdYesEntity identifier - can be a tag or CID
periodCidYesThe CID of the verification period
session_idYesSession continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 62 tool updates
    • AddedaddCustomDataForEntity
    • AddedaddCustomDataForEntityAdvanced
    • AddedaddDeployForEntity
    • AddedaddGroupsToEntity
    • AddedapproveScorecardRuleExemption
    • AddedarchiveEntity
    • AddedarchiveTeam
    • AddedcreateCustomEventForEntity
    • AddedcreateCustomMetricData
    • AddedcreateDefinition
    • AddedcreateDependency
    • AddedcreateInitiative
    • AddedcreateOrPatchEntity
    • AddedcreateOrUpdateEntity
    • AddedcreateOrUpdateScaffolder
    • AddedcreateOrUpdateScorecard
    • ChangedcreateOrUpdateWorkflow1 field changed
      • changedInput schema / properties / actions / items / properties / schema / anyOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "headers": {
        -            "additionalProperties": {
        -              "description": "The headers for the HTTP request",
        -              "type": "string"
        -            },
        -            "description": "The headers for the HTTP request",
        -            "type": "object"
        -          },
        -          "httpMethod": {
        -            "description": "The HTTP method for the request",
        -            "enum": [
        -              "GET",
        -              "POST",
        -              "PUT",
        -              "DELETE",
        -              "PATCH"
        -            ],
        -            "type": "string"
        -          },
        -          "integration": {
        -            "description": "The integration to use for authentication",
        -            "enum": [
        -              "AzureDevops",
        -              "Bitbucket",
        -              "GitHub",
        -              "LaunchDarkly",
        -              "ServiceNow",
        -              "GitLab",
        -              "Pagerduty",
        -              "Slack",
        -              "Cortex",
        -              "Jenkins",
        -              "Google",
        -              "Harness",
        -              "Jira",
        -              "Sonarqube",
        -              "CircleCi",
        -              "Coralogix",
        -              "Semgrep",
        -              "Apiiro",
        -              "Prometheus",
        -              "Rootly",
        -              "NewRelic",
        -              "Opsgenie",
        -              "Sentry",
        -              "Snyk",
        -              "Buildkite",
        -              "Firehydrant",
        -              "Victorops",
        -              "Rollbar",
        -              "Bugsnag",
        -              "Codecov",
        -              "SignalFX",
        -              "Instana",
        -              "Lightstep",
        -              "SumoLogic",
        -              "Mend",
        -              "BambooHR",
        -              "XMatters",
        -              "Clickup"
        -            ],
        -            "type": "string"
        -          },
        -          "integrationAlias": {
        -            "description": "The alias of the integration configuration to use",
        -            "type": "string"
        -          },
        -          "payload": {
        -            "description": "The payload for the request",
        -            "type": "string"
        -          },
        -          "targetHost": {
        -            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "description": "The URL for the request",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "headers",
        -          "httpMethod",
        -          "type",
        -          "url"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "HTTP_REQUEST",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "actionIdentifier": {
        -            "description": "The ID of the Cortex library action to run, e.g. `googleCloud.getProject`. Copy it from an existing workflow with getWorkflow.",
        -            "type": "string"
        -          },
        -          "inputs": {
        -            "additionalProperties": {
        -              "type": "object"
        -            },
        -            "description": "The values for the inputs of the library action, by input key",
        -            "type": "object"
        -          },
        -          "integrationAlias": {
        -            "description": "The alias of the integration configuration to use. Required when the integration has more than one configuration.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "actionIdentifier",
        -          "inputs",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "ADVANCED_HTTP_REQUEST",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "headers": {
        -            "additionalProperties": {
        -              "description": "The headers for the HTTP request",
        -              "type": "string"
        -            },
        -            "description": "The headers for the HTTP request",
        -            "type": "object"
        -          },
        -          "httpMethod": {
        -            "description": "The HTTP method for the request",
        -            "enum": [
        -              "GET",
        -              "POST",
        -              "PUT",
        -              "DELETE",
        -              "PATCH"
        -            ],
        -            "type": "string"
        -          },
        -          "integration": {
        -            "description": "The integration to use for authentication",
        -            "enum": [
        -              "AzureDevops",
        -              "Bitbucket",
        -              "GitHub",
        -              "LaunchDarkly",
        -              "ServiceNow",
        -              "GitLab",
        -              "Pagerduty",
        -              "Slack",
        -              "Cortex",
        -              "Jenkins",
        -              "Google",
        -              "Harness",
        -              "Jira",
        -              "Sonarqube",
        -              "CircleCi",
        -              "Coralogix",
        -              "Semgrep",
        -              "Apiiro",
        -              "Prometheus",
        -              "Rootly",
        -              "NewRelic",
        -              "Opsgenie",
        -              "Sentry",
        -              "Snyk",
        -              "Buildkite",
        -              "Firehydrant",
        -              "Victorops",
        -              "Rollbar",
        -              "Bugsnag",
        -              "Codecov",
        -              "SignalFX",
        -              "Instana",
        -              "Lightstep",
        -              "SumoLogic",
        -              "Mend",
        -              "BambooHR",
        -              "XMatters",
        -              "Clickup"
        -            ],
        -            "type": "string"
        -          },
        -          "integrationAlias": {
        -            "description": "The alias of the integration configuration to use",
        -            "type": "string"
        -          },
        -          "payload": {
        -            "description": "The payload for the request",
        -            "type": "string"
        -          },
        -          "targetHost": {
        -            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        -            "type": "string"
        -          },
        -          "timeoutInSeconds": {
        -            "description": "The timeout for the request in seconds",
        -            "format": "int32",
        -            "type": "integer"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "description": "The URL for the request",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "headers",
        -          "httpMethod",
        -          "type",
        -          "url"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "HTTP_REQUEST_ASYNC",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "createNewRepository": {
        -            "description": "Whether the Scaffolder should create a new repository. Defaults to `true`",
        -            "type": "boolean"
        -          },
        -          "createService": {
        -            "description": "Whether the cortex service should be created.",
        -            "type": "boolean"
        -          },
        -          "inputOverrides": {
        -            "description": "The input overrides for the Scaffolder",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "editable": {
        -                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        -                          "type": "boolean"
        -                        },
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "editable",
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of overrides for the action inputs",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input override",
        -                  "enum": [
        -                    "OPTION",
        -                    "VALUE"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "scaffolderTemplateId": {
        -            "description": "On input, accepts either the tag or the Cortex ID of the Scaffolder template. On output, always the template's Cortex ID, or `null` if the referenced template was deleted.",
        -            "type": "string"
        -          },
        -          "scaffolderTemplateTag": {
        -            "description": "The tag of the Scaffolder template. Preferred over `scaffolderTemplateId` when both are provided, so workflow definitions stay portable across workspaces.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "inputOverrides",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SCAFFOLDER",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "inputOverrides": {
        -            "description": "The list of overrides for the action inputs",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "editable": {
        -                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        -                          "type": "boolean"
        -                        },
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "editable",
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of overrides for the action inputs",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input override",
        -                  "enum": [
        -                    "OPTION",
        -                    "VALUE"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "inputs": {
        -            "description": "The list of inputs required for the action",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "INPUT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "TEXTAREA_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowAdditionalOptions": {
        -                          "description": "Whether additional options are allowed. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "options": {
        -                          "description": "The list of options for the input",
        -                          "items": {
        -                            "description": "The list of options for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "optionsLabels": {
        -                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                          "items": {
        -                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder value for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowAdditionalOptions",
        -                        "key",
        -                        "name",
        -                        "options",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SELECT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowAdditionalOptions": {
        -                          "description": "Whether additional options are allowed. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "options": {
        -                          "description": "The list of options for the input",
        -                          "items": {
        -                            "description": "The list of options for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "optionsLabels": {
        -                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                          "items": {
        -                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder value for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowAdditionalOptions",
        -                        "key",
        -                        "name",
        -                        "options",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "MULTISELECT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "boolean"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "TOGGLE_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "entityFilter": {
        -                          "description": "The entity filter for the input",
        -                          "properties": {
        -                            "domainIds": {
        -                              "description": "Restrict options to entities related to the provided domains",
        -                              "items": {
        -                                "description": "Restrict options to entities related to the provided domains",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "emailOwners": {
        -                              "description": "Restrict options to entities owned by the provided users",
        -                              "items": {
        -                                "description": "Restrict options to entities owned by the provided users",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "excludedGroupTags": {
        -                              "description": "Restrict options to entities not in the provided groups",
        -                              "items": {
        -                                "description": "Restrict options to entities not in the provided groups",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "groupTags": {
        -                              "description": "Restrict options to entities in the provided groups",
        -                              "items": {
        -                                "description": "Restrict options to entities in the provided groups",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "teamIds": {
        -                              "description": "Restrict options to entities owned by the provided teams",
        -                              "items": {
        -                                "description": "Restrict options to entities owned by the provided teams",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "typeFilter": {
        -                              "properties": {
        -                                "types": {
        -                                  "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        -                                  "items": {
        -                                    "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        -                                    "type": "string"
        -                                  },
        -                                  "type": "array",
        -                                  "uniqueItems": true
        -                                }
        -                              },
        -                              "required": [
        -                                "types"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          },
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "limitEntitiesToRunnerUserScope": {
        -                          "description": "Whether to limit entity options to the workflow runner's entities. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "shouldDisplayOptionsAsHierarchy": {
        -                          "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "entityFilter",
        -                        "key",
        -                        "limitEntitiesToRunnerUserScope",
        -                        "name",
        -                        "required",
        -                        "shouldDisplayOptionsAsHierarchy",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "CORTEX_ENTITY_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "properties": {
        -                              "email": {
        -                                "description": "The email of the user",
        -                                "type": "string"
        -                              },
        -                              "name": {
        -                                "description": "The name of the user",
        -                                "type": "string"
        -                              }
        -                            },
        -                            "required": [
        -                              "email",
        -                              "name"
        -                            ],
        -                            "type": "object"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "filter": {
        -                          "description": "The user filter for the input",
        -                          "properties": {
        -                            "teamCids": {
        -                              "description": "Restrict options to users on the provided teams",
        -                              "items": {
        -                                "description": "Restrict options to users on the provided teams",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "userEmails": {
        -                              "description": "Restrict options to users with the provided emails",
        -                              "items": {
        -                                "description": "Restrict options to users with the provided emails",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            }
        -                          },
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "filter",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "CORTEX_USER_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "filter": {
        -                          "description": "The filters for the input",
        -                          "properties": {
        -                            "channels": {
        -                              "description": "Restrict options to the provided channels",
        -                              "items": {
        -                                "description": "Restrict options to the provided channels",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            }
        -                          },
        -                          "required": [
        -                            "channels"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "filter",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SLACK_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SECRET_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "number"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "format": {
        -                          "description": "The number format of the input",
        -                          "enum": [
        -                            "INTEGER",
        -                            "DECIMAL"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "max": {
        -                          "description": "The maximum value of the input",
        -                          "type": "number"
        -                        },
        -                        "min": {
        -                          "description": "The minimum value of the input",
        -                          "type": "number"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "format",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "NUMBER_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "format": {
        -                          "description": "The date format of the input",
        -                          "enum": [
        -                            "DATE",
        -                            "DATETIME"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "format",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "DATE_FIELD",
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of inputs required for the action",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input",
        -                  "enum": [
        -                    "INPUT_FIELD",
        -                    "TEXTAREA_FIELD",
        -                    "SELECT_FIELD",
        -                    "MULTISELECT_FIELD",
        -                    "TOGGLE_FIELD",
        -                    "CORTEX_ENTITY_FIELD",
        -                    "CORTEX_USER_FIELD",
        -                    "SLACK_FIELD",
        -                    "SECRET_FIELD",
        -                    "NUMBER_FIELD",
        -                    "DATE_FIELD",
        -                    "NESTED_FORM_FIELD"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "jsValidatorScript": {
        -            "description": "Optional JavaScript validator script to validate the provided inputs",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "inputOverrides",
        -          "inputs",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "USER_INPUT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "expression": {
        -            "description": "The JQ expression for the action. Its input has the keys `context`, `actions` and `variables`, e.g. `.context.initiatedBy.email`.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "expression",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JQ",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "channel": {
        -            "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "The message to send",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "channel",
        -          "message",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SLACK",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "approverDescription": {
        -            "description": "A description that will be shown to approvers. Supports templates.",
        -            "type": "string"
        -          },
        -          "approvingTeamIds": {
        -            "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        -            "items": {
        -              "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "approvingTeamIdsOverride": {
        -            "description": "The path to the value that resolves the approving teams at run time, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.approvers`. The value at the path must be an array of team Cortex IDs or team tags.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "approvingTeamIds",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "MANUAL_APPROVAL",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "branches": {
        -            "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        -            "items": {
        -              "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        -              "properties": {
        -                "expression": {
        -                  "description": "The CEL expression for the branch. It can use `context`, `actions` and `variables`, e.g. `variables.count > 0`.",
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "description": "The name of the branch",
        -                  "type": "string"
        -                },
        -                "outgoingAction": {
        -                  "description": "The first action to execute in this branch path",
        -                  "type": "string"
        -                },
        -                "slug": {
        -                  "description": "The slug of the branch",
        -                  "type": "string"
        -                },
        -                "type": {
        -                  "description": "Must be `CONDITIONAL`",
        -                  "enum": [
        -                    "CONDITIONAL"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "expression",
        -                "name",
        -                "slug",
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "fallbackBranch": {
        -            "description": "The fallback branch that will be taken if no other branches evaluate to `true`",
        -            "properties": {
        -              "name": {
        -                "description": "The name of the branch",
        -                "type": "string"
        -              },
        -              "outgoingAction": {
        -                "description": "The first action to execute in this branch path",
        -                "type": "string"
        -              },
        -              "slug": {
        -                "description": "The slug of the branch",
        -                "type": "string"
        -              },
        -              "type": {
        -                "description": "Must be `FALLBACK`",
        -                "enum": [
        -                  "FALLBACK"
        -                ],
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "name",
        -              "slug",
        -              "type"
        -            ],
        -            "type": "object"
        -          },
        -          "joiningAction": {
        -            "description": "The slug of the action where the branch paths join again. Leave it out if they do not join.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "branches",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "CONDITIONAL_BRANCH",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "alias": {
        -            "description": "The alias for the github configuration to be used",
        -            "type": "string"
        -          },
        -          "author": {
        -            "description": "The details of the original author of the changes being committed (optional)",
        -            "properties": {
        -              "email": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "email",
        -              "name"
        -            ],
        -            "type": "object"
        -          },
        -          "branch": {
        -            "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)",
        -            "type": "string"
        -          },
        -          "commitMessage": {
        -            "description": "A message describing the purpose of the commit",
        -            "type": "string"
        -          },
        -          "committer": {
        -            "description": "The details of the person or system making the commit, such as name and email (optional)",
        -            "properties": {
        -              "email": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "email",
        -              "name"
        -            ],
        -            "type": "object"
        -          },
        -          "content": {
        -            "description": "The content of the file to be created or updated (not base64-encoded)",
        -            "type": "string"
        -          },
        -          "path": {
        -            "description": "The full path to the file within the repository",
        -            "type": "string"
        -          },
        -          "repositoryName": {
        -            "description": "The name of the repository where the file is being created or updated",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "alias",
        -          "commitMessage",
        -          "content",
        -          "path",
        -          "repositoryName",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "GITHUB_CREATE_OR_UPDATE_FILE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "channelId": {
        -            "description": "The channel id to send the message to",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "The message to send",
        -            "type": "string"
        -          },
        -          "teamId": {
        -            "description": "The team id to send the message to",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "channelId",
        -          "message",
        -          "teamId",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "MS_TEAMS_SEND_MESSAGE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "script": {
        -            "description": "The JavaScript script for the action. It runs as the body of `run(actions, context, variables)`, e.g. `return context.initiatedBy.email`.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "script",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JAVASCRIPT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "type": {
        -            "type": "string"
        -          },
        -          "variables": {
        -            "description": "The variables to set for the action",
        -            "items": {
        -              "description": "The variables to set for the action",
        -              "properties": {
        -                "slug": {
        -                  "description": "The slug of the workflow variable to set",
        -                  "type": "string"
        -                },
        -                "source": {
        -                  "anyOf": [
        -                    {
        -                      "allOf": [
        -                        {
        -                          "description": "How to set the variable",
        -                          "properties": {
        -                            "type": {
        -                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        -                              "enum": [
        -                                "REFERENCE",
        -                                "JAVASCRIPT"
        -                              ],
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "properties": {
        -                            "script": {
        -                              "description": "The JavaScript script that returns the value. It runs as the body of `run(actions, context, variables)`.",
        -                              "type": "string"
        -                            },
        -                            "type": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "script",
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "allOf": [
        -                        {
        -                          "description": "How to set the variable",
        -                          "properties": {
        -                            "type": {
        -                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        -                              "enum": [
        -                                "REFERENCE",
        -                                "JAVASCRIPT"
        -                              ],
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "properties": {
        -                            "path": {
        -                              "description": "The path to the value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `actions.fetch.outputs.body`.",
        -                              "type": "string"
        -                            },
        -                            "type": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "path",
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "slug",
        -                "source"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "variables"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SET_VARIABLES",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "accountId": {
        -            "description": "The AWS account ID to run the action in. Supports templates.",
        -            "type": "string"
        -          },
        -          "actionIdentifier": {
        -            "description": "The ID of the AWS action to run, e.g. `aws.ec2.describeInstances`. Copy it from an existing workflow with getWorkflow.",
        -            "type": "string"
        -          },
        -          "inputs": {
        -            "additionalProperties": {
        -              "type": "object"
        -            },
        -            "description": "The values for the inputs of the AWS action, by input key",
        -            "type": "object"
        -          },
        -          "region": {
        -            "description": "The AWS region, e.g. `us-east-1`. Supports templates.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "accountId",
        -          "actionIdentifier",
        -          "inputs",
        -          "region",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "AWS",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "body": {
        -            "description": "The body of the incident",
        -            "type": "string"
        -          },
        -          "fromEmail": {
        -            "description": "The email address of a valid user associated with the account making the request",
        -            "type": "string"
        -          },
        -          "incidentTypeName": {
        -            "description": "The incident type name",
        -            "type": "string"
        -          },
        -          "serviceId": {
        -            "description": "The ID of the service to create the incident for",
        -            "type": "string"
        -          },
        -          "title": {
        -            "description": "The title of the incident",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "urgency": {
        -            "description": "The urgency of the incident",
        -            "enum": [
        -              "HIGH",
        -              "LOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "body",
        -          "fromEmail",
        -          "serviceId",
        -          "title",
        -          "type",
        -          "urgency"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "PAGERDUTY_CREATE_INCIDENT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "alias": {
        -            "description": "The alias for the Jira configuration that will be used.",
        -            "type": "string"
        -          },
        -          "assignee": {
        -            "description": "The identifier of the assignee for the Jira issue. This field is optional.",
        -            "type": "string"
        -          },
        -          "components": {
        -            "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        -            "items": {
        -              "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "description": {
        -            "description": "A detailed description of the issue, providing more context about what needs to be addressed.",
        -            "type": "string"
        -          },
        -          "fields": {
        -            "additionalProperties": {
        -              "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        -              "type": "object"
        -            },
        -            "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        -            "type": "object"
        -          },
        -          "issueSummary": {
        -            "description": "A brief summary of the issue being created, typically representing the title of the issue.",
        -            "type": "string"
        -          },
        -          "issueType": {
        -            "description": "The type of the issue being created, such as 'Bug', 'Task', or 'Story'.",
        -            "type": "string"
        -          },
        -          "labels": {
        -            "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        -            "items": {
        -              "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "priority": {
        -            "description": "The priority of the issue, such as 'High', 'Medium', or 'Low'. This field is optional.",
        -            "type": "string"
        -          },
        -          "projectKey": {
        -            "description": "The key of the Jira project where the issue will be created. Typically a short code like 'PROJ'.",
        -            "type": "string"
        -          },
        -          "reporter": {
        -            "description": "The identifier of the reporter who is raising the Jira issue. This field is optional.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "alias",
        -          "components",
        -          "description",
        -          "fields",
        -          "issueSummary",
        -          "issueType",
        -          "labels",
        -          "projectKey",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JIRA_CREATE_ISSUE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action. It sets which other fields the action takes.",
        -            "enum": [
        -              "HTTP_REQUEST",
        -              "ADVANCED_HTTP_REQUEST",
        -              "HTTP_REQUEST_ASYNC",
        -              "SCAFFOLDER",
        -              "USER_INPUT",
        -              "JQ",
        -              "SLACK",
        -              "MANUAL_APPROVAL",
        -              "CONDITIONAL_BRANCH",
        -              "GITHUB_CREATE_OR_UPDATE_FILE",
        -              "MS_TEAMS_SEND_MESSAGE",
        -              "JAVASCRIPT",
        -              "SET_VARIABLES",
        -              "AWS",
        -              "PAGERDUTY_CREATE_INCIDENT",
        -              "JIRA_CREATE_ISSUE",
        -              "RUN_WORKFLOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "entityId": {
        -            "description": "The ID of the entity",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "workflowId": {
        -            "description": "The ID of the workflow to run",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "workflowId"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "RUN_WORKFLOW",
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "headers": {
        +            "additionalProperties": {
        +              "description": "The headers for the HTTP request",
        +              "type": "string"
        +            },
        +            "description": "The headers for the HTTP request",
        +            "type": "object"
        +          },
        +          "httpMethod": {
        +            "description": "The HTTP method for the request",
        +            "enum": [
        +              "GET",
        +              "POST",
        +              "PUT",
        +              "DELETE",
        +              "PATCH"
        +            ],
        +            "type": "string"
        +          },
        +          "integration": {
        +            "description": "The integration to use for authentication",
        +            "enum": [
        +              "AzureDevops",
        +              "Bitbucket",
        +              "GitHub",
        +              "LaunchDarkly",
        +              "ServiceNow",
        +              "GitLab",
        +              "Pagerduty",
        +              "Slack",
        +              "Cortex",
        +              "Jenkins",
        +              "Google",
        +              "Harness",
        +              "Jira",
        +              "Sonarqube",
        +              "CircleCi",
        +              "Coralogix",
        +              "Semgrep",
        +              "Apiiro",
        +              "Prometheus",
        +              "Rootly",
        +              "NewRelic",
        +              "Opsgenie",
        +              "Sentry",
        +              "Snyk",
        +              "Buildkite",
        +              "Firehydrant",
        +              "Victorops",
        +              "Rollbar",
        +              "Bugsnag",
        +              "Codecov",
        +              "SignalFX",
        +              "Instana",
        +              "Lightstep",
        +              "SumoLogic",
        +              "Mend",
        +              "BambooHR",
        +              "XMatters",
        +              "Clickup"
        +            ],
        +            "type": "string"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use",
        +            "type": "string"
        +          },
        +          "payload": {
        +            "description": "The payload for the request",
        +            "type": "string"
        +          },
        +          "targetHost": {
        +            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "The URL for the request",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "headers",
        +          "httpMethod",
        +          "type",
        +          "url"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "HTTP_REQUEST",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "actionIdentifier": {
        +            "description": "The ID of the Cortex library action to run, e.g. `googleCloud.getProject`. Copy it from an existing workflow with getWorkflow.",
        +            "type": "string"
        +          },
        +          "inputs": {
        +            "additionalProperties": {
        +              "type": "object"
        +            },
        +            "description": "The values for the inputs of the library action, by input key",
        +            "type": "object"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use. Required when the integration has more than one configuration.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "actionIdentifier",
        +          "inputs",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "ADVANCED_HTTP_REQUEST",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "headers": {
        +            "additionalProperties": {
        +              "description": "The headers for the HTTP request",
        +              "type": "string"
        +            },
        +            "description": "The headers for the HTTP request",
        +            "type": "object"
        +          },
        +          "httpMethod": {
        +            "description": "The HTTP method for the request",
        +            "enum": [
        +              "GET",
        +              "POST",
        +              "PUT",
        +              "DELETE",
        +              "PATCH"
        +            ],
        +            "type": "string"
        +          },
        +          "integration": {
        +            "description": "The integration to use for authentication",
        +            "enum": [
        +              "AzureDevops",
        +              "Bitbucket",
        +              "GitHub",
        +              "LaunchDarkly",
        +              "ServiceNow",
        +              "GitLab",
        +              "Pagerduty",
        +              "Slack",
        +              "Cortex",
        +              "Jenkins",
        +              "Google",
        +              "Harness",
        +              "Jira",
        +              "Sonarqube",
        +              "CircleCi",
        +              "Coralogix",
        +              "Semgrep",
        +              "Apiiro",
        +              "Prometheus",
        +              "Rootly",
        +              "NewRelic",
        +              "Opsgenie",
        +              "Sentry",
        +              "Snyk",
        +              "Buildkite",
        +              "Firehydrant",
        +              "Victorops",
        +              "Rollbar",
        +              "Bugsnag",
        +              "Codecov",
        +              "SignalFX",
        +              "Instana",
        +              "Lightstep",
        +              "SumoLogic",
        +              "Mend",
        +              "BambooHR",
        +              "XMatters",
        +              "Clickup"
        +            ],
        +            "type": "string"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use",
        +            "type": "string"
        +          },
        +          "payload": {
        +            "description": "The payload for the request",
        +            "type": "string"
        +          },
        +          "targetHost": {
        +            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        +            "type": "string"
        +          },
        +          "timeoutInSeconds": {
        +            "description": "The timeout for the request in seconds",
        +            "format": "int32",
        +            "type": "integer"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "The URL for the request",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "headers",
        +          "httpMethod",
        +          "type",
        +          "url"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "HTTP_REQUEST_ASYNC",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "createNewRepository": {
        +            "description": "Whether the Scaffolder should create a new repository. Defaults to `true`",
        +            "type": "boolean"
        +          },
        +          "createService": {
        +            "description": "Whether the cortex service should be created.",
        +            "type": "boolean"
        +          },
        +          "inputOverrides": {
        +            "description": "The input overrides for the Scaffolder",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "editable": {
        +                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        +                          "type": "boolean"
        +                        },
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "editable",
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of overrides for the action inputs",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input override",
        +                  "enum": [
        +                    "OPTION",
        +                    "VALUE"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "scaffolderTemplateId": {
        +            "description": "On input, accepts either the tag or the Cortex ID of the Scaffolder template. On output, always the template's Cortex ID, or `null` if the referenced template was deleted.",
        +            "type": "string"
        +          },
        +          "scaffolderTemplateTag": {
        +            "description": "The tag of the Scaffolder template. Preferred over `scaffolderTemplateId` when both are provided, so workflow definitions stay portable across workspaces.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "inputOverrides",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SCAFFOLDER",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "inputOverrides": {
        +            "description": "The list of overrides for the action inputs",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "editable": {
        +                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        +                          "type": "boolean"
        +                        },
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "editable",
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of overrides for the action inputs",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input override",
        +                  "enum": [
        +                    "OPTION",
        +                    "VALUE"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "inputs": {
        +            "description": "The list of inputs required for the action",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "INPUT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "TEXTAREA_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowAdditionalOptions": {
        +                          "description": "Whether additional options are allowed. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "options": {
        +                          "description": "The list of options for the input",
        +                          "items": {
        +                            "description": "The list of options for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "optionsLabels": {
        +                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                          "items": {
        +                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder value for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowAdditionalOptions",
        +                        "key",
        +                        "name",
        +                        "options",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SELECT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowAdditionalOptions": {
        +                          "description": "Whether additional options are allowed. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "options": {
        +                          "description": "The list of options for the input",
        +                          "items": {
        +                            "description": "The list of options for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "optionsLabels": {
        +                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                          "items": {
        +                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder value for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowAdditionalOptions",
        +                        "key",
        +                        "name",
        +                        "options",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "MULTISELECT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "boolean"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "TOGGLE_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "entityFilter": {
        +                          "description": "The entity filter for the input",
        +                          "properties": {
        +                            "domainIds": {
        +                              "description": "Restrict options to entities related to the provided domains",
        +                              "items": {
        +                                "description": "Restrict options to entities related to the provided domains",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "emailOwners": {
        +                              "description": "Restrict options to entities owned by the provided users",
        +                              "items": {
        +                                "description": "Restrict options to entities owned by the provided users",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "excludedGroupTags": {
        +                              "description": "Restrict options to entities not in the provided groups",
        +                              "items": {
        +                                "description": "Restrict options to entities not in the provided groups",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "groupTags": {
        +                              "description": "Restrict options to entities in the provided groups",
        +                              "items": {
        +                                "description": "Restrict options to entities in the provided groups",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "teamIds": {
        +                              "description": "Restrict options to entities owned by the provided teams",
        +                              "items": {
        +                                "description": "Restrict options to entities owned by the provided teams",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "typeFilter": {
        +                              "properties": {
        +                                "types": {
        +                                  "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                                  "items": {
        +                                    "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                                    "type": "string"
        +                                  },
        +                                  "type": "array",
        +                                  "uniqueItems": true
        +                                }
        +                              },
        +                              "required": [
        +                                "types"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          },
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "limitEntitiesToRunnerUserScope": {
        +                          "description": "Whether to limit entity options to the workflow runner's entities. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "shouldDisplayOptionsAsHierarchy": {
        +                          "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "entityFilter",
        +                        "key",
        +                        "limitEntitiesToRunnerUserScope",
        +                        "name",
        +                        "required",
        +                        "shouldDisplayOptionsAsHierarchy",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "CORTEX_ENTITY_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "properties": {
        +                              "email": {
        +                                "description": "The email of the user",
        +                                "type": "string"
        +                              },
        +                              "name": {
        +                                "description": "The name of the user",
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "email",
        +                              "name"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "filter": {
        +                          "description": "The user filter for the input",
        +                          "properties": {
        +                            "teamCids": {
        +                              "description": "Restrict options to users on the provided teams",
        +                              "items": {
        +                                "description": "Restrict options to users on the provided teams",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "userEmails": {
        +                              "description": "Restrict options to users with the provided emails",
        +                              "items": {
        +                                "description": "Restrict options to users with the provided emails",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            }
        +                          },
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "filter",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "CORTEX_USER_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "filter": {
        +                          "description": "The filters for the input",
        +                          "properties": {
        +                            "channels": {
        +                              "description": "Restrict options to the provided channels",
        +                              "items": {
        +                                "description": "Restrict options to the provided channels",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            }
        +                          },
        +                          "required": [
        +                            "channels"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "filter",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SLACK_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SECRET_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "number"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "format": {
        +                          "description": "The number format of the input",
        +                          "enum": [
        +                            "INTEGER",
        +                            "DECIMAL"
        +                          ],
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "max": {
        +                          "description": "The maximum value of the input",
        +                          "type": "number"
        +                        },
        +                        "min": {
        +                          "description": "The minimum value of the input",
        +                          "type": "number"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "format",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "NUMBER_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "format": {
        +                          "description": "The date format of the input",
        +                          "enum": [
        +                            "DATE",
        +                            "DATETIME"
        +                          ],
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "format",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "DATE_FIELD",
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of inputs required for the action",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input",
        +                  "enum": [
        +                    "INPUT_FIELD",
        +                    "TEXTAREA_FIELD",
        +                    "SELECT_FIELD",
        +                    "MULTISELECT_FIELD",
        +                    "TOGGLE_FIELD",
        +                    "CORTEX_ENTITY_FIELD",
        +                    "CORTEX_USER_FIELD",
        +                    "SLACK_FIELD",
        +                    "SECRET_FIELD",
        +                    "NUMBER_FIELD",
        +                    "DATE_FIELD",
        +                    "NESTED_FORM_FIELD"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "jsValidatorScript": {
        +            "description": "Optional JavaScript validator script to validate the provided inputs",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "inputOverrides",
        +          "inputs",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "USER_INPUT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "expression": {
        +            "description": "The JQ expression for the action. Its input has the keys `context`, `actions` and `variables`, e.g. `.context.initiatedBy.email`.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "expression",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JQ",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "channel": {
        +            "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "The message to send",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "channel",
        +          "message",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SLACK",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "approverDescription": {
        +            "description": "A description that will be shown to approvers. Supports templates.",
        +            "type": "string"
        +          },
        +          "approvingTeamIds": {
        +            "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        +            "items": {
        +              "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "approvingTeamIdsOverride": {
        +            "description": "The path to the value that resolves the approving teams at run time, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.approvers`. The value at the path must be an array of team Cortex IDs or team tags.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "approvingTeamIds",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "MANUAL_APPROVAL",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "branches": {
        +            "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        +            "items": {
        +              "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        +              "properties": {
        +                "expression": {
        +                  "description": "The CEL expression for the branch. It can use `context`, `actions` and `variables`, e.g. `variables.count > 0`.",
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "description": "The name of the branch",
        +                  "type": "string"
        +                },
        +                "outgoingAction": {
        +                  "description": "The first action to execute in this branch path",
        +                  "type": "string"
        +                },
        +                "slug": {
        +                  "description": "The slug of the branch",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "description": "Must be `CONDITIONAL`",
        +                  "enum": [
        +                    "CONDITIONAL"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "expression",
        +                "name",
        +                "slug",
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "fallbackBranch": {
        +            "description": "The fallback branch that will be taken if no other branches evaluate to `true`",
        +            "properties": {
        +              "name": {
        +                "description": "The name of the branch",
        +                "type": "string"
        +              },
        +              "outgoingAction": {
        +                "description": "The first action to execute in this branch path",
        +                "type": "string"
        +              },
        +              "slug": {
        +                "description": "The slug of the branch",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "Must be `FALLBACK`",
        +                "enum": [
        +                  "FALLBACK"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "name",
        +              "slug",
        +              "type"
        +            ],
        +            "type": "object"
        +          },
        +          "joiningAction": {
        +            "description": "The slug of the action where the branch paths join again. Leave it out if they do not join.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "branches",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "CONDITIONAL_BRANCH",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "alias": {
        +            "description": "The alias for the github configuration to be used",
        +            "type": "string"
        +          },
        +          "author": {
        +            "description": "The details of the original author of the changes being committed (optional)",
        +            "properties": {
        +              "email": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "email",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "branch": {
        +            "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)",
        +            "type": "string"
        +          },
        +          "commitMessage": {
        +            "description": "A message describing the purpose of the commit",
        +            "type": "string"
        +          },
        +          "committer": {
        +            "description": "The details of the person or system making the commit, such as name and email (optional)",
        +            "properties": {
        +              "email": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "email",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "content": {
        +            "description": "The content of the file to be created or updated (not base64-encoded)",
        +            "type": "string"
        +          },
        +          "path": {
        +            "description": "The full path to the file within the repository",
        +            "type": "string"
        +          },
        +          "repositoryName": {
        +            "description": "The name of the repository where the file is being created or updated",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "alias",
        +          "commitMessage",
        +          "content",
        +          "path",
        +          "repositoryName",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "GITHUB_CREATE_OR_UPDATE_FILE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "channelId": {
        +            "description": "The channel id to send the message to",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "The message to send",
        +            "type": "string"
        +          },
        +          "teamId": {
        +            "description": "The team id to send the message to",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "channelId",
        +          "message",
        +          "teamId",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "MS_TEAMS_SEND_MESSAGE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "script": {
        +            "description": "The JavaScript script for the action. It runs as the body of `run(actions, context, variables)`, e.g. `return context.initiatedBy.email`.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "script",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JAVASCRIPT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          },
        +          "variables": {
        +            "description": "The variables to set for the action",
        +            "items": {
        +              "description": "The variables to set for the action",
        +              "properties": {
        +                "slug": {
        +                  "description": "The slug of the workflow variable to set",
        +                  "type": "string"
        +                },
        +                "source": {
        +                  "anyOf": [
        +                    {
        +                      "allOf": [
        +                        {
        +                          "description": "How to set the variable",
        +                          "properties": {
        +                            "type": {
        +                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        +                              "enum": [
        +                                "REFERENCE",
        +                                "JAVASCRIPT"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "properties": {
        +                            "script": {
        +                              "description": "The JavaScript script that returns the value. It runs as the body of `run(actions, context, variables)`.",
        +                              "type": "string"
        +                            },
        +                            "type": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "script",
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "allOf": [
        +                        {
        +                          "description": "How to set the variable",
        +                          "properties": {
        +                            "type": {
        +                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        +                              "enum": [
        +                                "REFERENCE",
        +                                "JAVASCRIPT"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "properties": {
        +                            "path": {
        +                              "description": "The path to the value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `actions.fetch.outputs.body`.",
        +                              "type": "string"
        +                            },
        +                            "type": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "path",
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "slug",
        +                "source"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "variables"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SET_VARIABLES",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "accountId": {
        +            "description": "The AWS account ID to run the action in. Supports templates.",
        +            "type": "string"
        +          },
        +          "actionIdentifier": {
        +            "description": "The ID of the AWS action to run, e.g. `aws.ec2.describeInstances`. Copy it from an existing workflow with getWorkflow.",
        +            "type": "string"
        +          },
        +          "inputs": {
        +            "additionalProperties": {
        +              "type": "object"
        +            },
        +            "description": "The values for the inputs of the AWS action, by input key",
        +            "type": "object"
        +          },
        +          "region": {
        +            "description": "The AWS region, e.g. `us-east-1`. Supports templates.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "accountId",
        +          "actionIdentifier",
        +          "inputs",
        +          "region",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "AWS",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "body": {
        +            "description": "The body of the incident",
        +            "type": "string"
        +          },
        +          "fromEmail": {
        +            "description": "The email address of a valid user associated with the account making the request",
        +            "type": "string"
        +          },
        +          "incidentTypeName": {
        +            "description": "The incident type name",
        +            "type": "string"
        +          },
        +          "serviceId": {
        +            "description": "The ID of the service to create the incident for",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "The title of the incident",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "urgency": {
        +            "description": "The urgency of the incident",
        +            "enum": [
        +              "HIGH",
        +              "LOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "body",
        +          "fromEmail",
        +          "serviceId",
        +          "title",
        +          "type",
        +          "urgency"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "PAGERDUTY_CREATE_INCIDENT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "alias": {
        +            "description": "The alias for the Jira configuration that will be used.",
        +            "type": "string"
        +          },
        +          "assignee": {
        +            "description": "The identifier of the assignee for the Jira issue. This field is optional.",
        +            "type": "string"
        +          },
        +          "components": {
        +            "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        +            "items": {
        +              "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "description": {
        +            "description": "A detailed description of the issue, providing more context about what needs to be addressed.",
        +            "type": "string"
        +          },
        +          "fields": {
        +            "additionalProperties": {
        +              "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        +              "type": "object"
        +            },
        +            "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        +            "type": "object"
        +          },
        +          "issueSummary": {
        +            "description": "A brief summary of the issue being created, typically representing the title of the issue.",
        +            "type": "string"
        +          },
        +          "issueType": {
        +            "description": "The type of the issue being created, such as 'Bug', 'Task', or 'Story'.",
        +            "type": "string"
        +          },
        +          "labels": {
        +            "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        +            "items": {
        +              "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "priority": {
        +            "description": "The priority of the issue, such as 'High', 'Medium', or 'Low'. This field is optional.",
        +            "type": "string"
        +          },
        +          "projectKey": {
        +            "description": "The key of the Jira project where the issue will be created. Typically a short code like 'PROJ'.",
        +            "type": "string"
        +          },
        +          "reporter": {
        +            "description": "The identifier of the reporter who is raising the Jira issue. This field is optional.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "alias",
        +          "components",
        +          "description",
        +          "fields",
        +          "issueSummary",
        +          "issueType",
        +          "labels",
        +          "projectKey",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JIRA_CREATE_ISSUE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "entityId": {
        +            "description": "The ID of the entity",
        +            "type": "string"
        +          },
        +          "timeoutInSeconds": {
        +            "description": "How long to wait for the workflow run to finish, in seconds. When it expires, the run is cancelled. Only used with waitForCompletion.",
        +            "format": "int32",
        +            "type": "integer"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "waitForCompletion": {
        +            "description": "Whether to wait for the workflow run to finish. When it finishes, its status, run response, and variables become outputs of this block. The block fails if the run does not complete.",
        +            "type": "boolean"
        +          },
        +          "workflowId": {
        +            "description": "The ID of the workflow to run",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "waitForCompletion",
        +          "workflowId"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "RUN_WORKFLOW",
        +    "type": "object"
        +  }
        +]
    • AddedcreatePlugin
    • AddedcreateQuery
    • AddedcreateRelationshipType
    • AddedcreateTeamMemberRole
    • AddedcreateVerificationPeriod
    • AddeddenyScorecardRuleExemption
    • AddedgetPluginByTag
    • AddedgetQueryResults
    • AddedgetScaffolder
    • ChangedlistAllEntities1 field changed
      • changedInput schema / properties / gitRepositories / description
        Previous value: -"Filter by git repositories. Supports GitHub (`github:org/repo` or `org/repo`), GitLab (`gitlab:namespace/project`), Bitbucket (`bitbucket:workspace/repo`), and Azure DevOps (`azure-devops:project/repo`). Unprefixed values default to GitHub for backward compatibility."New value: +"Filter by git repositories. Supports GitHub (`github:org/repo` or `org/repo`), GitLab (`gitlab:namespace/project` or `gitlab:<project ID>`), Bitbucket (`bitbucket:workspace/repo`), and Azure DevOps (`azure-devops:project/repo`). Unprefixed values default to GitHub for backward compatibility."
    • AddedlistAllPlugins
    • ChangedlistDependenciesForEntity1 field changed
      • addedInput schema / properties / includeArchived
        Added value: +{
        +  "default": false,
        +  "description": "Whether to include dependencies on archived entities in the response",
        +  "type": "boolean"
        +}
    • AddedlistScaffolders
    • AddedpatchPlugin
    • ChangedqueryPointInTimeMetrics2 fields changed
      • changedInput schema / properties / metrics / items / properties / aggregation / enum
        Previous value: -[
        -  "SUM",
        -  "AVG",
        -  "COUNT",
        -  "RATIO",
        -  "MIN",
        -  "MAX",
        -  "P50",
        -  "P95",
        -  "RANKING",
        -  "COLLECT",
        -  "COLLECT_UNIQUE",
        -  "COUNT_UNIQUE"
        -]New value: +[
        +  "SUM",
        +  "AVG",
        +  "COUNT",
        +  "RATIO",
        +  "MIN",
        +  "MAX",
        +  "P50",
        +  "P95",
        +  "RANKING",
        +  "COLLECT",
        +  "COLLECT_UNIQUE",
        +  "COUNT_UNIQUE",
        +  "LATEST"
        +]
      • changedInput schema / properties / nestedAggregations / items / properties / aggregations / items / properties / aggregation / enum
        Previous value: -[
        -  "SUM",
        -  "AVG",
        -  "COUNT",
        -  "RATIO",
        -  "MIN",
        -  "MAX",
        -  "P50",
        -  "P95",
        -  "RANKING",
        -  "COLLECT",
        -  "COLLECT_UNIQUE",
        -  "COUNT_UNIQUE"
        -]New value: +[
        +  "SUM",
        +  "AVG",
        +  "COUNT",
        +  "RATIO",
        +  "MIN",
        +  "MAX",
        +  "P50",
        +  "P95",
        +  "RANKING",
        +  "COLLECT",
        +  "COLLECT_UNIQUE",
        +  "COUNT_UNIQUE",
        +  "LATEST"
        +]
    • AddedrefreshScorecardScoreForEntity
    • AddedreplaceCustomEventForEntityByUuid
    • AddedrequestScorecardRuleExemption
    • AddedrevokeScorecardRuleExemption
    • AddedunarchiveEntity
    • AddedunarchiveTeam
    • AddedupdateCortexTeamMembers
    • AddedupdateDefinition
    • AddedupdateDependency
    • AddedupdateDeployByUuid
    • AddedupdateInitiative
    • AddedupdatePlugin
    • AddedupdateRelationshipType
    • AddedupdateScaffolder
    • AddedupdateVerificationPeriod
    • AddeduploadGoSumPackage
    • AddeduploadJavaPackage
    • AddeduploadMavenPom
    • AddeduploadNpmPackageJson
    • AddeduploadNpmPackageLockJson
    • AddeduploadNugetCsproj
    • AddeduploadNugetPackagesConfig
    • AddeduploadNugetPackagesLock
    • AddeduploadPipfileLock
    • AddeduploadPnpmLock
    • AddeduploadRequirementsTxt
    • AddeduploadYarnLock
    • AddedupsertCatalogPage
    • AddedvalidateWorkflowDescriptor
    • AddedverifyEntityForPeriod
  2. 8 tool updates
    • ChangedcreateOrUpdateWorkflow13 fields changed
      • changedInput schema / properties / actions / description
        Previous value: -"List of actions in the workflow"New value: +"List of actions in the workflow. Actions read run data with three top-level keys: `context` (`workflowRunId`, `initiatedBy`, and `entity` for a run on an entity), `actions` (earlier actions by slug) and `variables` (workflow variables by slug). Every action writes its result to `actions.<slug>.outputs`. The keys depend on the action type, e.g. `result` for JQ and JavaScript, or `status`, `headers` and `body` for HTTP. JQ reads `.variables.x`, CEL, JavaScript and dot paths read `variables.x`, and action text fields take `{{variables.x}}` templates. Quote a slug with a hyphen: `actions[\"my-slug\"]`, with a leading dot in JQ."
      • changedInput schema / properties / actions / items / description
        Previous value: -"List of actions in the workflow"New value: +"List of actions in the workflow. Actions read run data with three top-level keys: `context` (`workflowRunId`, `initiatedBy`, and `entity` for a run on an entity), `actions` (earlier actions by slug) and `variables` (workflow variables by slug). Every action writes its result to `actions.<slug>.outputs`. The keys depend on the action type, e.g. `result` for JQ and JavaScript, or `status`, `headers` and `body` for HTTP. JQ reads `.variables.x`, CEL, JavaScript and dot paths read `variables.x`, and action text fields take `{{variables.x}}` templates. Quote a slug with a hyphen: `actions[\"my-slug\"]`, with a leading dot in JQ."
      • changedInput schema / properties / actions / items / properties / outgoingActions / description
        Previous value: -"The actions that will be executed after this action"New value: +"The slugs of the actions that run after this action. For a CONDITIONAL_BRANCH action, list the `outgoingAction` of every branch and of the fallback branch."
      • changedInput schema / properties / actions / items / properties / outgoingActions / items / description
        Previous value: -"The actions that will be executed after this action"New value: +"The slugs of the actions that run after this action. For a CONDITIONAL_BRANCH action, list the `outgoingAction` of every branch and of the fallback branch."
      • changedInput schema / properties / actions / items / properties / schema / anyOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "headers": {
        -            "additionalProperties": {
        -              "description": "The headers for the HTTP request",
        -              "type": "string"
        -            },
        -            "description": "The headers for the HTTP request",
        -            "type": "object"
        -          },
        -          "httpMethod": {
        -            "description": "The HTTP method for the request",
        -            "enum": [
        -              "GET",
        -              "POST",
        -              "PUT",
        -              "DELETE",
        -              "PATCH"
        -            ],
        -            "type": "string"
        -          },
        -          "integration": {
        -            "description": "The integration to use for authentication",
        -            "enum": [
        -              "AzureDevops",
        -              "Bitbucket",
        -              "GitHub",
        -              "LaunchDarkly",
        -              "ServiceNow",
        -              "GitLab",
        -              "Pagerduty",
        -              "Slack",
        -              "Cortex",
        -              "Jenkins",
        -              "Google",
        -              "Harness",
        -              "Jira"
        -            ],
        -            "type": "string"
        -          },
        -          "integrationAlias": {
        -            "description": "The alias of the integration configuration to use",
        -            "type": "string"
        -          },
        -          "payload": {
        -            "description": "The payload for the request",
        -            "type": "string"
        -          },
        -          "targetHost": {
        -            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "description": "The URL for the request",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "headers",
        -          "httpMethod",
        -          "type",
        -          "url"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "HTTP_REQUEST",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "actionIdentifier": {
        -            "type": "string"
        -          },
        -          "inputs": {
        -            "additionalProperties": {
        -              "type": "object"
        -            },
        -            "type": "object"
        -          },
        -          "integrationAlias": {
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "actionIdentifier",
        -          "inputs",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "ADVANCED_HTTP_REQUEST",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "headers": {
        -            "additionalProperties": {
        -              "description": "The headers for the HTTP request",
        -              "type": "string"
        -            },
        -            "description": "The headers for the HTTP request",
        -            "type": "object"
        -          },
        -          "httpMethod": {
        -            "description": "The HTTP method for the request",
        -            "enum": [
        -              "GET",
        -              "POST",
        -              "PUT",
        -              "DELETE",
        -              "PATCH"
        -            ],
        -            "type": "string"
        -          },
        -          "integration": {
        -            "description": "The integration to use for authentication",
        -            "enum": [
        -              "AzureDevops",
        -              "Bitbucket",
        -              "GitHub",
        -              "LaunchDarkly",
        -              "ServiceNow",
        -              "GitLab",
        -              "Pagerduty",
        -              "Slack",
        -              "Cortex",
        -              "Jenkins",
        -              "Google",
        -              "Harness",
        -              "Jira"
        -            ],
        -            "type": "string"
        -          },
        -          "integrationAlias": {
        -            "description": "The alias of the integration configuration to use",
        -            "type": "string"
        -          },
        -          "payload": {
        -            "description": "The payload for the request",
        -            "type": "string"
        -          },
        -          "targetHost": {
        -            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        -            "type": "string"
        -          },
        -          "timeoutInSeconds": {
        -            "description": "The timeout for the request in seconds",
        -            "format": "int32",
        -            "type": "integer"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "url": {
        -            "description": "The URL for the request",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "headers",
        -          "httpMethod",
        -          "type",
        -          "url"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "HTTP_REQUEST_ASYNC",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "createNewRepository": {
        -            "description": "Whether the Scaffolder should create a new repository. Defaults to `true`",
        -            "type": "boolean"
        -          },
        -          "createService": {
        -            "description": "Whether the cortex service should be created.",
        -            "type": "boolean"
        -          },
        -          "inputOverrides": {
        -            "description": "The input overrides for the Scaffolder",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value in the workflow context",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "editable": {
        -                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        -                          "type": "boolean"
        -                        },
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value in the workflow context",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "editable",
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of overrides for the action inputs",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input override",
        -                  "enum": [
        -                    "OPTION",
        -                    "VALUE"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "scaffolderTemplateId": {
        -            "description": "On input, accepts either the tag or the Cortex ID of the Scaffolder template. On output, always the template's Cortex ID, or `null` if the referenced template was deleted.",
        -            "type": "string"
        -          },
        -          "scaffolderTemplateTag": {
        -            "description": "The tag of the Scaffolder template. Preferred over `scaffolderTemplateId` when both are provided, so workflow definitions stay portable across workspaces.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "inputOverrides",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SCAFFOLDER",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "inputOverrides": {
        -            "description": "The list of overrides for the action inputs",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value in the workflow context",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of overrides for the action inputs",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input override",
        -                          "enum": [
        -                            "OPTION",
        -                            "VALUE"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "editable": {
        -                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        -                          "type": "boolean"
        -                        },
        -                        "inputKey": {
        -                          "description": "The input key to override",
        -                          "type": "string"
        -                        },
        -                        "outputVariable": {
        -                          "description": "The path to the override value in the workflow context",
        -                          "type": "string"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "editable",
        -                        "inputKey",
        -                        "outputVariable",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of overrides for the action inputs",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input override",
        -                  "enum": [
        -                    "OPTION",
        -                    "VALUE"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "inputs": {
        -            "description": "The list of inputs required for the action",
        -            "items": {
        -              "anyOf": [
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "INPUT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "TEXTAREA_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowAdditionalOptions": {
        -                          "description": "Whether additional options are allowed. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "options": {
        -                          "description": "The list of options for the input",
        -                          "items": {
        -                            "description": "The list of options for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "optionsLabels": {
        -                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                          "items": {
        -                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder value for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowAdditionalOptions",
        -                        "key",
        -                        "name",
        -                        "options",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SELECT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowAdditionalOptions": {
        -                          "description": "Whether additional options are allowed. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "options": {
        -                          "description": "The list of options for the input",
        -                          "items": {
        -                            "description": "The list of options for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "optionsLabels": {
        -                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                          "items": {
        -                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder value for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowAdditionalOptions",
        -                        "key",
        -                        "name",
        -                        "options",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "MULTISELECT_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "boolean"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "TOGGLE_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "entityFilter": {
        -                          "description": "The entity filter for the input",
        -                          "properties": {
        -                            "domainIds": {
        -                              "description": "Restrict options to entities related to the provided domains",
        -                              "items": {
        -                                "description": "Restrict options to entities related to the provided domains",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "emailOwners": {
        -                              "description": "Restrict options to entities owned by the provided users",
        -                              "items": {
        -                                "description": "Restrict options to entities owned by the provided users",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "excludedGroupTags": {
        -                              "description": "Restrict options to entities in the provided groups",
        -                              "items": {
        -                                "description": "Restrict options to entities in the provided groups",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "groupTags": {
        -                              "description": "Restrict options to entities not in the provided groups",
        -                              "items": {
        -                                "description": "Restrict options to entities not in the provided groups",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "teamIds": {
        -                              "description": "Restrict options to entities owned by the provided teams",
        -                              "items": {
        -                                "description": "Restrict options to entities owned by the provided teams",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "typeFilter": {
        -                              "properties": {
        -                                "types": {
        -                                  "description": "The entity types to include. Can be found on https://app.getcortexapp.com/admin/entities",
        -                                  "items": {
        -                                    "description": "The entity types to include. Can be found on https://app.getcortexapp.com/admin/entities",
        -                                    "type": "string"
        -                                  },
        -                                  "type": "array",
        -                                  "uniqueItems": true
        -                                }
        -                              },
        -                              "required": [
        -                                "types"
        -                              ],
        -                              "type": "object"
        -                            }
        -                          },
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "limitEntitiesToRunnerUserScope": {
        -                          "description": "Whether to limit entity options to the workflow runner's entities. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "shouldDisplayOptionsAsHierarchy": {
        -                          "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "entityFilter",
        -                        "key",
        -                        "limitEntitiesToRunnerUserScope",
        -                        "name",
        -                        "required",
        -                        "shouldDisplayOptionsAsHierarchy",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "CORTEX_ENTITY_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "properties": {
        -                              "email": {
        -                                "description": "The email of the user",
        -                                "type": "string"
        -                              },
        -                              "name": {
        -                                "description": "The name of the user",
        -                                "type": "string"
        -                              }
        -                            },
        -                            "required": [
        -                              "email",
        -                              "name"
        -                            ],
        -                            "type": "object"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "filter": {
        -                          "description": "The user filter for the input",
        -                          "properties": {
        -                            "teamCids": {
        -                              "description": "Restrict options to users on the provided teams",
        -                              "items": {
        -                                "description": "Restrict options to users on the provided teams",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            },
        -                            "userEmails": {
        -                              "description": "Restrict options to users with the provided emails",
        -                              "items": {
        -                                "description": "Restrict options to users with the provided emails",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            }
        -                          },
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "filter",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "CORTEX_USER_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "allowMultiple": {
        -                          "description": "Whether the input allows multiple values. Defaults to `false`",
        -                          "type": "boolean"
        -                        },
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "items": {
        -                            "description": "The default value for the input",
        -                            "type": "string"
        -                          },
        -                          "type": "array"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "filter": {
        -                          "description": "The filters for the input",
        -                          "properties": {
        -                            "channels": {
        -                              "description": "Restrict options to the provided channels",
        -                              "items": {
        -                                "description": "Restrict options to the provided channels",
        -                                "type": "string"
        -                              },
        -                              "type": "array"
        -                            }
        -                          },
        -                          "required": [
        -                            "channels"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "allowMultiple",
        -                        "filter",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SLACK_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        },
        -                        "validationRegex": {
        -                          "description": "The validation regex for the input",
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "SECRET_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "number"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "format": {
        -                          "description": "The number format of the input",
        -                          "enum": [
        -                            "INTEGER",
        -                            "DECIMAL"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "max": {
        -                          "description": "The maximum value of the input",
        -                          "type": "number"
        -                        },
        -                        "min": {
        -                          "description": "The minimum value of the input",
        -                          "type": "number"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "format",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "NUMBER_FIELD",
        -                  "type": "object"
        -                },
        -                {
        -                  "allOf": [
        -                    {
        -                      "description": "The list of inputs required for the action",
        -                      "properties": {
        -                        "type": {
        -                          "description": "The type of the input",
        -                          "enum": [
        -                            "INPUT_FIELD",
        -                            "TEXTAREA_FIELD",
        -                            "SELECT_FIELD",
        -                            "MULTISELECT_FIELD",
        -                            "TOGGLE_FIELD",
        -                            "CORTEX_ENTITY_FIELD",
        -                            "CORTEX_USER_FIELD",
        -                            "SLACK_FIELD",
        -                            "SECRET_FIELD",
        -                            "NUMBER_FIELD",
        -                            "DATE_FIELD",
        -                            "NESTED_FORM_FIELD"
        -                          ],
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "properties": {
        -                        "defaultValue": {
        -                          "description": "The default value for the input",
        -                          "type": "string"
        -                        },
        -                        "description": {
        -                          "description": "The description of the input",
        -                          "type": "string"
        -                        },
        -                        "disabled": {
        -                          "description": "Whether the input should be disabled",
        -                          "type": "boolean"
        -                        },
        -                        "format": {
        -                          "description": "The date format of the input",
        -                          "enum": [
        -                            "DATE",
        -                            "DATETIME"
        -                          ],
        -                          "type": "string"
        -                        },
        -                        "key": {
        -                          "description": "The key of the input",
        -                          "type": "string"
        -                        },
        -                        "name": {
        -                          "description": "The name of the input",
        -                          "type": "string"
        -                        },
        -                        "placeholder": {
        -                          "description": "The placeholder for the input",
        -                          "type": "string"
        -                        },
        -                        "required": {
        -                          "description": "Whether the input is required",
        -                          "type": "boolean"
        -                        },
        -                        "type": {
        -                          "type": "string"
        -                        }
        -                      },
        -                      "required": [
        -                        "disabled",
        -                        "format",
        -                        "key",
        -                        "name",
        -                        "required",
        -                        "type"
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ],
        -                  "required": [
        -                    "type"
        -                  ],
        -                  "title": "DATE_FIELD",
        -                  "type": "object"
        -                }
        -              ],
        -              "description": "The list of inputs required for the action",
        -              "properties": {
        -                "type": {
        -                  "description": "The type of the input",
        -                  "enum": [
        -                    "INPUT_FIELD",
        -                    "TEXTAREA_FIELD",
        -                    "SELECT_FIELD",
        -                    "MULTISELECT_FIELD",
        -                    "TOGGLE_FIELD",
        -                    "CORTEX_ENTITY_FIELD",
        -                    "CORTEX_USER_FIELD",
        -                    "SLACK_FIELD",
        -                    "SECRET_FIELD",
        -                    "NUMBER_FIELD",
        -                    "DATE_FIELD",
        -                    "NESTED_FORM_FIELD"
        -                  ],
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "type"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "jsValidatorScript": {
        -            "description": "Optional JavaScript validator script to validate the provided inputs",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "inputOverrides",
        -          "inputs",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "USER_INPUT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "expression": {
        -            "description": "The JQ expression for the action",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "expression",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JQ",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "channel": {
        -            "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "The message to send",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "channel",
        -          "message",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SLACK",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "approverDescription": {
        -            "description": "A description that will be shown to approvers",
        -            "type": "string"
        -          },
        -          "approvingTeamIds": {
        -            "description": "The IDs of the teams whose members can approve the action",
        -            "items": {
        -              "description": "The IDs of the teams whose members can approve the action",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "approvingTeamIdsOverride": {
        -            "description": "The path to the override value in the workflow context that resolves the approving teams at run time. The value at the path must be an array of team Cortex IDs or team tags.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "approvingTeamIds",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "MANUAL_APPROVAL",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "branches": {
        -            "description": "The list of conditional branches that will be evaluated in order",
        -            "items": {
        -              "description": "The list of conditional branches that will be evaluated in order",
        -              "properties": {
        -                "expression": {
        -                  "description": "The conditional expression for the branch",
        -                  "type": "string"
        -                },
        -                "name": {
        -                  "description": "The name of the branch",
        -                  "type": "string"
        -                },
        -                "outgoingAction": {
        -                  "description": "The first action to execute in this branch path",
        -                  "type": "string"
        -                },
        -                "slug": {
        -                  "description": "The slug of the branch",
        -                  "type": "string"
        -                }
        -              },
        -              "required": [
        -                "expression",
        -                "name",
        -                "slug"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          "fallbackBranch": {
        -            "description": "The fallback branch that will be taken if no other branches evaluate to `true`",
        -            "properties": {
        -              "name": {
        -                "description": "The name of the branch",
        -                "type": "string"
        -              },
        -              "outgoingAction": {
        -                "description": "The first action to execute in this branch path",
        -                "type": "string"
        -              },
        -              "slug": {
        -                "description": "The slug of the branch",
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "name",
        -              "slug"
        -            ],
        -            "type": "object"
        -          },
        -          "joiningAction": {
        -            "description": "The joining action that will run after all branches",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "branches",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "CONDITIONAL_BRANCH",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "alias": {
        -            "description": "The alias for the github configuration to be used",
        -            "type": "string"
        -          },
        -          "author": {
        -            "description": "The details of the original author of the changes being committed (optional)",
        -            "properties": {
        -              "email": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "email",
        -              "name"
        -            ],
        -            "type": "object"
        -          },
        -          "branch": {
        -            "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)",
        -            "type": "string"
        -          },
        -          "commitMessage": {
        -            "description": "A message describing the purpose of the commit",
        -            "type": "string"
        -          },
        -          "committer": {
        -            "description": "The details of the person or system making the commit, such as name and email (optional)",
        -            "properties": {
        -              "email": {
        -                "type": "string"
        -              },
        -              "name": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "email",
        -              "name"
        -            ],
        -            "type": "object"
        -          },
        -          "content": {
        -            "description": "The content of the file to be created or updated (not base64-encoded)",
        -            "type": "string"
        -          },
        -          "path": {
        -            "description": "The full path to the file within the repository",
        -            "type": "string"
        -          },
        -          "repositoryName": {
        -            "description": "The name of the repository where the file is being created or updated",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "alias",
        -          "commitMessage",
        -          "content",
        -          "path",
        -          "repositoryName",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "GITHUB_CREATE_OR_UPDATE_FILE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "channelId": {
        -            "description": "The channel id to send the message to",
        -            "type": "string"
        -          },
        -          "message": {
        -            "description": "The message to send",
        -            "type": "string"
        -          },
        -          "teamId": {
        -            "description": "The team id to send the message to",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "channelId",
        -          "message",
        -          "teamId",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "MS_TEAMS_SEND_MESSAGE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "script": {
        -            "description": "The JavaScript script for the action",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "script",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JAVASCRIPT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "type": {
        -            "type": "string"
        -          },
        -          "variables": {
        -            "description": "The variables to set for the action",
        -            "items": {
        -              "description": "The variables to set for the action",
        -              "properties": {
        -                "slug": {
        -                  "description": "The type of the variable",
        -                  "type": "string"
        -                },
        -                "source": {
        -                  "anyOf": [
        -                    {
        -                      "allOf": [
        -                        {
        -                          "description": "How to set the variable",
        -                          "properties": {
        -                            "type": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "properties": {
        -                            "script": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "script"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ],
        -                      "type": "object"
        -                    },
        -                    {
        -                      "allOf": [
        -                        {
        -                          "description": "How to set the variable",
        -                          "properties": {
        -                            "type": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "type"
        -                          ],
        -                          "type": "object"
        -                        },
        -                        {
        -                          "properties": {
        -                            "path": {
        -                              "type": "string"
        -                            }
        -                          },
        -                          "required": [
        -                            "path"
        -                          ],
        -                          "type": "object"
        -                        }
        -                      ],
        -                      "type": "object"
        -                    }
        -                  ]
        -                }
        -              },
        -              "required": [
        -                "slug",
        -                "source"
        -              ],
        -              "type": "object"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "variables"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "SET_VARIABLES",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "accountId": {
        -            "type": "string"
        -          },
        -          "actionIdentifier": {
        -            "type": "string"
        -          },
        -          "inputs": {
        -            "additionalProperties": {
        -              "type": "object"
        -            },
        -            "type": "object"
        -          },
        -          "region": {
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "accountId",
        -          "actionIdentifier",
        -          "inputs",
        -          "region",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "AWS",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "body": {
        -            "description": "The body of the incident",
        -            "type": "string"
        -          },
        -          "fromEmail": {
        -            "description": "The email address of a valid user associated with the account making the request",
        -            "type": "string"
        -          },
        -          "incidentTypeName": {
        -            "description": "The incident type name",
        -            "type": "string"
        -          },
        -          "serviceId": {
        -            "description": "The ID of the service to create the incident for",
        -            "type": "string"
        -          },
        -          "title": {
        -            "description": "The title of the incident",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "urgency": {
        -            "description": "The urgency of the incident",
        -            "enum": [
        -              "HIGH",
        -              "LOW"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "body",
        -          "fromEmail",
        -          "serviceId",
        -          "title",
        -          "type",
        -          "urgency"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "PAGERDUTY_CREATE_INCIDENT",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "alias": {
        -            "description": "The alias for the Jira configuration that will be used.",
        -            "type": "string"
        -          },
        -          "assignee": {
        -            "description": "The identifier of the assignee for the Jira issue. This field is optional.",
        -            "type": "string"
        -          },
        -          "components": {
        -            "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        -            "items": {
        -              "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "description": {
        -            "description": "A detailed description of the issue, providing more context about what needs to be addressed.",
        -            "type": "string"
        -          },
        -          "fields": {
        -            "additionalProperties": {
        -              "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        -              "type": "object"
        -            },
        -            "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        -            "type": "object"
        -          },
        -          "issueSummary": {
        -            "description": "A brief summary of the issue being created, typically representing the title of the issue.",
        -            "type": "string"
        -          },
        -          "issueType": {
        -            "description": "The type of the issue being created, such as 'Bug', 'Task', or 'Story'.",
        -            "type": "string"
        -          },
        -          "labels": {
        -            "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        -            "items": {
        -              "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          },
        -          "priority": {
        -            "description": "The priority of the issue, such as 'High', 'Medium', or 'Low'. This field is optional.",
        -            "type": "string"
        -          },
        -          "projectKey": {
        -            "description": "The key of the Jira project where the issue will be created. Typically a short code like 'PROJ'.",
        -            "type": "string"
        -          },
        -          "reporter": {
        -            "description": "The identifier of the reporter who is raising the Jira issue. This field is optional.",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "alias",
        -          "components",
        -          "description",
        -          "fields",
        -          "issueSummary",
        -          "issueType",
        -          "labels",
        -          "projectKey",
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "JIRA_CREATE_ISSUE",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "The definition of the action",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the action",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "entityId": {
        -            "description": "The ID of the entity",
        -            "type": "string"
        -          },
        -          "type": {
        -            "type": "string"
        -          },
        -          "workflowId": {
        -            "description": "The ID of the workflow to run",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "workflowId"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "RUN_WORKFLOW",
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "headers": {
        +            "additionalProperties": {
        +              "description": "The headers for the HTTP request",
        +              "type": "string"
        +            },
        +            "description": "The headers for the HTTP request",
        +            "type": "object"
        +          },
        +          "httpMethod": {
        +            "description": "The HTTP method for the request",
        +            "enum": [
        +              "GET",
        +              "POST",
        +              "PUT",
        +              "DELETE",
        +              "PATCH"
        +            ],
        +            "type": "string"
        +          },
        +          "integration": {
        +            "description": "The integration to use for authentication",
        +            "enum": [
        +              "AzureDevops",
        +              "Bitbucket",
        +              "GitHub",
        +              "LaunchDarkly",
        +              "ServiceNow",
        +              "GitLab",
        +              "Pagerduty",
        +              "Slack",
        +              "Cortex",
        +              "Jenkins",
        +              "Google",
        +              "Harness",
        +              "Jira",
        +              "Sonarqube",
        +              "CircleCi",
        +              "Coralogix",
        +              "Semgrep",
        +              "Apiiro",
        +              "Prometheus",
        +              "Rootly",
        +              "NewRelic",
        +              "Opsgenie",
        +              "Sentry",
        +              "Snyk",
        +              "Buildkite",
        +              "Firehydrant",
        +              "Victorops",
        +              "Rollbar",
        +              "Bugsnag",
        +              "Codecov",
        +              "SignalFX",
        +              "Instana",
        +              "Lightstep",
        +              "SumoLogic",
        +              "Mend",
        +              "BambooHR",
        +              "XMatters",
        +              "Clickup"
        +            ],
        +            "type": "string"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use",
        +            "type": "string"
        +          },
        +          "payload": {
        +            "description": "The payload for the request",
        +            "type": "string"
        +          },
        +          "targetHost": {
        +            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "The URL for the request",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "headers",
        +          "httpMethod",
        +          "type",
        +          "url"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "HTTP_REQUEST",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "actionIdentifier": {
        +            "description": "The ID of the Cortex library action to run, e.g. `googleCloud.getProject`. Copy it from an existing workflow with getWorkflow.",
        +            "type": "string"
        +          },
        +          "inputs": {
        +            "additionalProperties": {
        +              "type": "object"
        +            },
        +            "description": "The values for the inputs of the library action, by input key",
        +            "type": "object"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use. Required when the integration has more than one configuration.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "actionIdentifier",
        +          "inputs",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "ADVANCED_HTTP_REQUEST",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "headers": {
        +            "additionalProperties": {
        +              "description": "The headers for the HTTP request",
        +              "type": "string"
        +            },
        +            "description": "The headers for the HTTP request",
        +            "type": "object"
        +          },
        +          "httpMethod": {
        +            "description": "The HTTP method for the request",
        +            "enum": [
        +              "GET",
        +              "POST",
        +              "PUT",
        +              "DELETE",
        +              "PATCH"
        +            ],
        +            "type": "string"
        +          },
        +          "integration": {
        +            "description": "The integration to use for authentication",
        +            "enum": [
        +              "AzureDevops",
        +              "Bitbucket",
        +              "GitHub",
        +              "LaunchDarkly",
        +              "ServiceNow",
        +              "GitLab",
        +              "Pagerduty",
        +              "Slack",
        +              "Cortex",
        +              "Jenkins",
        +              "Google",
        +              "Harness",
        +              "Jira",
        +              "Sonarqube",
        +              "CircleCi",
        +              "Coralogix",
        +              "Semgrep",
        +              "Apiiro",
        +              "Prometheus",
        +              "Rootly",
        +              "NewRelic",
        +              "Opsgenie",
        +              "Sentry",
        +              "Snyk",
        +              "Buildkite",
        +              "Firehydrant",
        +              "Victorops",
        +              "Rollbar",
        +              "Bugsnag",
        +              "Codecov",
        +              "SignalFX",
        +              "Instana",
        +              "Lightstep",
        +              "SumoLogic",
        +              "Mend",
        +              "BambooHR",
        +              "XMatters",
        +              "Clickup"
        +            ],
        +            "type": "string"
        +          },
        +          "integrationAlias": {
        +            "description": "The alias of the integration configuration to use",
        +            "type": "string"
        +          },
        +          "payload": {
        +            "description": "The payload for the request",
        +            "type": "string"
        +          },
        +          "targetHost": {
        +            "description": "The *.googleapis.com host to target when using the Google Cloud integration. Setting this with any other integration is rejected as invalid. Defaults to cloudresourcemanager.googleapis.com when unset.",
        +            "type": "string"
        +          },
        +          "timeoutInSeconds": {
        +            "description": "The timeout for the request in seconds",
        +            "format": "int32",
        +            "type": "integer"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "The URL for the request",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "headers",
        +          "httpMethod",
        +          "type",
        +          "url"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "HTTP_REQUEST_ASYNC",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "createNewRepository": {
        +            "description": "Whether the Scaffolder should create a new repository. Defaults to `true`",
        +            "type": "boolean"
        +          },
        +          "createService": {
        +            "description": "Whether the cortex service should be created.",
        +            "type": "boolean"
        +          },
        +          "inputOverrides": {
        +            "description": "The input overrides for the Scaffolder",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "editable": {
        +                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        +                          "type": "boolean"
        +                        },
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "editable",
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of overrides for the action inputs",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input override",
        +                  "enum": [
        +                    "OPTION",
        +                    "VALUE"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "scaffolderTemplateId": {
        +            "description": "On input, accepts either the tag or the Cortex ID of the Scaffolder template. On output, always the template's Cortex ID, or `null` if the referenced template was deleted.",
        +            "type": "string"
        +          },
        +          "scaffolderTemplateTag": {
        +            "description": "The tag of the Scaffolder template. Preferred over `scaffolderTemplateId` when both are provided, so workflow definitions stay portable across workspaces.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "inputOverrides",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SCAFFOLDER",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "inputOverrides": {
        +            "description": "The list of overrides for the action inputs",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of overrides for the action inputs",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input override",
        +                          "enum": [
        +                            "OPTION",
        +                            "VALUE"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "editable": {
        +                          "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it'll pause the execution of the workflow and wait for the user to provide the value",
        +                          "type": "boolean"
        +                        },
        +                        "inputKey": {
        +                          "description": "The input key to override",
        +                          "type": "string"
        +                        },
        +                        "outputVariable": {
        +                          "description": "The path to the override value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.team-tags`.",
        +                          "type": "string"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "editable",
        +                        "inputKey",
        +                        "outputVariable",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of overrides for the action inputs",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input override",
        +                  "enum": [
        +                    "OPTION",
        +                    "VALUE"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "inputs": {
        +            "description": "The list of inputs required for the action",
        +            "items": {
        +              "anyOf": [
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "INPUT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "TEXTAREA_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowAdditionalOptions": {
        +                          "description": "Whether additional options are allowed. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "options": {
        +                          "description": "The list of options for the input",
        +                          "items": {
        +                            "description": "The list of options for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "optionsLabels": {
        +                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                          "items": {
        +                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder value for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowAdditionalOptions",
        +                        "key",
        +                        "name",
        +                        "options",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SELECT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowAdditionalOptions": {
        +                          "description": "Whether additional options are allowed. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "options": {
        +                          "description": "The list of options for the input",
        +                          "items": {
        +                            "description": "The list of options for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "optionsLabels": {
        +                          "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                          "items": {
        +                            "description": "The list of labels for the options. If not provided, the options will be used as labels",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder value for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowAdditionalOptions",
        +                        "key",
        +                        "name",
        +                        "options",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "MULTISELECT_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "boolean"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "TOGGLE_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "entityFilter": {
        +                          "description": "The entity filter for the input",
        +                          "properties": {
        +                            "domainIds": {
        +                              "description": "Restrict options to entities related to the provided domains",
        +                              "items": {
        +                                "description": "Restrict options to entities related to the provided domains",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "emailOwners": {
        +                              "description": "Restrict options to entities owned by the provided users",
        +                              "items": {
        +                                "description": "Restrict options to entities owned by the provided users",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "excludedGroupTags": {
        +                              "description": "Restrict options to entities not in the provided groups",
        +                              "items": {
        +                                "description": "Restrict options to entities not in the provided groups",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "groupTags": {
        +                              "description": "Restrict options to entities in the provided groups",
        +                              "items": {
        +                                "description": "Restrict options to entities in the provided groups",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "teamIds": {
        +                              "description": "Restrict options to entities owned by the provided teams",
        +                              "items": {
        +                                "description": "Restrict options to entities owned by the provided teams",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "typeFilter": {
        +                              "properties": {
        +                                "types": {
        +                                  "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                                  "items": {
        +                                    "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                                    "type": "string"
        +                                  },
        +                                  "type": "array",
        +                                  "uniqueItems": true
        +                                }
        +                              },
        +                              "required": [
        +                                "types"
        +                              ],
        +                              "type": "object"
        +                            }
        +                          },
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "limitEntitiesToRunnerUserScope": {
        +                          "description": "Whether to limit entity options to the workflow runner's entities. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "shouldDisplayOptionsAsHierarchy": {
        +                          "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "entityFilter",
        +                        "key",
        +                        "limitEntitiesToRunnerUserScope",
        +                        "name",
        +                        "required",
        +                        "shouldDisplayOptionsAsHierarchy",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "CORTEX_ENTITY_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "properties": {
        +                              "email": {
        +                                "description": "The email of the user",
        +                                "type": "string"
        +                              },
        +                              "name": {
        +                                "description": "The name of the user",
        +                                "type": "string"
        +                              }
        +                            },
        +                            "required": [
        +                              "email",
        +                              "name"
        +                            ],
        +                            "type": "object"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "filter": {
        +                          "description": "The user filter for the input",
        +                          "properties": {
        +                            "teamCids": {
        +                              "description": "Restrict options to users on the provided teams",
        +                              "items": {
        +                                "description": "Restrict options to users on the provided teams",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            },
        +                            "userEmails": {
        +                              "description": "Restrict options to users with the provided emails",
        +                              "items": {
        +                                "description": "Restrict options to users with the provided emails",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            }
        +                          },
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "filter",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "CORTEX_USER_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "allowMultiple": {
        +                          "description": "Whether the input allows multiple values. Defaults to `false`",
        +                          "type": "boolean"
        +                        },
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "items": {
        +                            "description": "The default value for the input",
        +                            "type": "string"
        +                          },
        +                          "type": "array"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "filter": {
        +                          "description": "The filters for the input",
        +                          "properties": {
        +                            "channels": {
        +                              "description": "Restrict options to the provided channels",
        +                              "items": {
        +                                "description": "Restrict options to the provided channels",
        +                                "type": "string"
        +                              },
        +                              "type": "array"
        +                            }
        +                          },
        +                          "required": [
        +                            "channels"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "allowMultiple",
        +                        "filter",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SLACK_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        },
        +                        "validationRegex": {
        +                          "description": "The validation regex for the input",
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "SECRET_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "number"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "format": {
        +                          "description": "The number format of the input",
        +                          "enum": [
        +                            "INTEGER",
        +                            "DECIMAL"
        +                          ],
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "max": {
        +                          "description": "The maximum value of the input",
        +                          "type": "number"
        +                        },
        +                        "min": {
        +                          "description": "The minimum value of the input",
        +                          "type": "number"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "format",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "NUMBER_FIELD",
        +                  "type": "object"
        +                },
        +                {
        +                  "allOf": [
        +                    {
        +                      "description": "The list of inputs required for the action",
        +                      "properties": {
        +                        "type": {
        +                          "description": "The type of the input",
        +                          "enum": [
        +                            "INPUT_FIELD",
        +                            "TEXTAREA_FIELD",
        +                            "SELECT_FIELD",
        +                            "MULTISELECT_FIELD",
        +                            "TOGGLE_FIELD",
        +                            "CORTEX_ENTITY_FIELD",
        +                            "CORTEX_USER_FIELD",
        +                            "SLACK_FIELD",
        +                            "SECRET_FIELD",
        +                            "NUMBER_FIELD",
        +                            "DATE_FIELD",
        +                            "NESTED_FORM_FIELD"
        +                          ],
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "properties": {
        +                        "defaultValue": {
        +                          "description": "The default value for the input",
        +                          "type": "string"
        +                        },
        +                        "description": {
        +                          "description": "The description of the input",
        +                          "type": "string"
        +                        },
        +                        "disabled": {
        +                          "description": "Whether the input should be disabled",
        +                          "type": "boolean"
        +                        },
        +                        "format": {
        +                          "description": "The date format of the input",
        +                          "enum": [
        +                            "DATE",
        +                            "DATETIME"
        +                          ],
        +                          "type": "string"
        +                        },
        +                        "key": {
        +                          "description": "The key of the input",
        +                          "type": "string"
        +                        },
        +                        "name": {
        +                          "description": "The name of the input",
        +                          "type": "string"
        +                        },
        +                        "placeholder": {
        +                          "description": "The placeholder for the input",
        +                          "type": "string"
        +                        },
        +                        "required": {
        +                          "description": "Whether the input is required",
        +                          "type": "boolean"
        +                        },
        +                        "type": {
        +                          "type": "string"
        +                        }
        +                      },
        +                      "required": [
        +                        "disabled",
        +                        "format",
        +                        "key",
        +                        "name",
        +                        "required",
        +                        "type"
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ],
        +                  "required": [
        +                    "type"
        +                  ],
        +                  "title": "DATE_FIELD",
        +                  "type": "object"
        +                }
        +              ],
        +              "description": "The list of inputs required for the action",
        +              "properties": {
        +                "type": {
        +                  "description": "The type of the input",
        +                  "enum": [
        +                    "INPUT_FIELD",
        +                    "TEXTAREA_FIELD",
        +                    "SELECT_FIELD",
        +                    "MULTISELECT_FIELD",
        +                    "TOGGLE_FIELD",
        +                    "CORTEX_ENTITY_FIELD",
        +                    "CORTEX_USER_FIELD",
        +                    "SLACK_FIELD",
        +                    "SECRET_FIELD",
        +                    "NUMBER_FIELD",
        +                    "DATE_FIELD",
        +                    "NESTED_FORM_FIELD"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "jsValidatorScript": {
        +            "description": "Optional JavaScript validator script to validate the provided inputs",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "inputOverrides",
        +          "inputs",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "USER_INPUT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "expression": {
        +            "description": "The JQ expression for the action. Its input has the keys `context`, `actions` and `variables`, e.g. `.context.initiatedBy.email`.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "expression",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JQ",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "channel": {
        +            "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "The message to send",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "channel",
        +          "message",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SLACK",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "approverDescription": {
        +            "description": "A description that will be shown to approvers. Supports templates.",
        +            "type": "string"
        +          },
        +          "approvingTeamIds": {
        +            "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        +            "items": {
        +              "description": "The CIDs of the teams whose members can approve the action, not team tags. Can be empty when `approvingTeamIdsOverride` is set.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "approvingTeamIdsOverride": {
        +            "description": "The path to the value that resolves the approving teams at run time, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `variables.approvers`. The value at the path must be an array of team Cortex IDs or team tags.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "approvingTeamIds",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "MANUAL_APPROVAL",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "branches": {
        +            "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        +            "items": {
        +              "description": "The list of conditional branches that will be evaluated in order. Each result is at `actions.<slug>.outputs.conditions.<branchSlug>.result`.",
        +              "properties": {
        +                "expression": {
        +                  "description": "The CEL expression for the branch. It can use `context`, `actions` and `variables`, e.g. `variables.count > 0`.",
        +                  "type": "string"
        +                },
        +                "name": {
        +                  "description": "The name of the branch",
        +                  "type": "string"
        +                },
        +                "outgoingAction": {
        +                  "description": "The first action to execute in this branch path",
        +                  "type": "string"
        +                },
        +                "slug": {
        +                  "description": "The slug of the branch",
        +                  "type": "string"
        +                },
        +                "type": {
        +                  "description": "Must be `CONDITIONAL`",
        +                  "enum": [
        +                    "CONDITIONAL"
        +                  ],
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "expression",
        +                "name",
        +                "slug",
        +                "type"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "fallbackBranch": {
        +            "description": "The fallback branch that will be taken if no other branches evaluate to `true`",
        +            "properties": {
        +              "name": {
        +                "description": "The name of the branch",
        +                "type": "string"
        +              },
        +              "outgoingAction": {
        +                "description": "The first action to execute in this branch path",
        +                "type": "string"
        +              },
        +              "slug": {
        +                "description": "The slug of the branch",
        +                "type": "string"
        +              },
        +              "type": {
        +                "description": "Must be `FALLBACK`",
        +                "enum": [
        +                  "FALLBACK"
        +                ],
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "name",
        +              "slug",
        +              "type"
        +            ],
        +            "type": "object"
        +          },
        +          "joiningAction": {
        +            "description": "The slug of the action where the branch paths join again. Leave it out if they do not join.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "branches",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "CONDITIONAL_BRANCH",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "alias": {
        +            "description": "The alias for the github configuration to be used",
        +            "type": "string"
        +          },
        +          "author": {
        +            "description": "The details of the original author of the changes being committed (optional)",
        +            "properties": {
        +              "email": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "email",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "branch": {
        +            "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)",
        +            "type": "string"
        +          },
        +          "commitMessage": {
        +            "description": "A message describing the purpose of the commit",
        +            "type": "string"
        +          },
        +          "committer": {
        +            "description": "The details of the person or system making the commit, such as name and email (optional)",
        +            "properties": {
        +              "email": {
        +                "type": "string"
        +              },
        +              "name": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "email",
        +              "name"
        +            ],
        +            "type": "object"
        +          },
        +          "content": {
        +            "description": "The content of the file to be created or updated (not base64-encoded)",
        +            "type": "string"
        +          },
        +          "path": {
        +            "description": "The full path to the file within the repository",
        +            "type": "string"
        +          },
        +          "repositoryName": {
        +            "description": "The name of the repository where the file is being created or updated",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "alias",
        +          "commitMessage",
        +          "content",
        +          "path",
        +          "repositoryName",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "GITHUB_CREATE_OR_UPDATE_FILE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "channelId": {
        +            "description": "The channel id to send the message to",
        +            "type": "string"
        +          },
        +          "message": {
        +            "description": "The message to send",
        +            "type": "string"
        +          },
        +          "teamId": {
        +            "description": "The team id to send the message to",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "channelId",
        +          "message",
        +          "teamId",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "MS_TEAMS_SEND_MESSAGE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "script": {
        +            "description": "The JavaScript script for the action. It runs as the body of `run(actions, context, variables)`, e.g. `return context.initiatedBy.email`.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "script",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JAVASCRIPT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          },
        +          "variables": {
        +            "description": "The variables to set for the action",
        +            "items": {
        +              "description": "The variables to set for the action",
        +              "properties": {
        +                "slug": {
        +                  "description": "The slug of the workflow variable to set",
        +                  "type": "string"
        +                },
        +                "source": {
        +                  "anyOf": [
        +                    {
        +                      "allOf": [
        +                        {
        +                          "description": "How to set the variable",
        +                          "properties": {
        +                            "type": {
        +                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        +                              "enum": [
        +                                "REFERENCE",
        +                                "JAVASCRIPT"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "properties": {
        +                            "script": {
        +                              "description": "The JavaScript script that returns the value. It runs as the body of `run(actions, context, variables)`.",
        +                              "type": "string"
        +                            },
        +                            "type": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "script",
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ],
        +                      "type": "object"
        +                    },
        +                    {
        +                      "allOf": [
        +                        {
        +                          "description": "How to set the variable",
        +                          "properties": {
        +                            "type": {
        +                              "description": "How the value is found: `REFERENCE` reads a path, `JAVASCRIPT` runs a script",
        +                              "enum": [
        +                                "REFERENCE",
        +                                "JAVASCRIPT"
        +                              ],
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        },
        +                        {
        +                          "properties": {
        +                            "path": {
        +                              "description": "The path to the value, as a dot path into the run data that starts with `context`, `actions` or `variables`, e.g. `actions.fetch.outputs.body`.",
        +                              "type": "string"
        +                            },
        +                            "type": {
        +                              "type": "string"
        +                            }
        +                          },
        +                          "required": [
        +                            "path",
        +                            "type"
        +                          ],
        +                          "type": "object"
        +                        }
        +                      ],
        +                      "type": "object"
        +                    }
        +                  ]
        +                }
        +              },
        +              "required": [
        +                "slug",
        +                "source"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "variables"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "SET_VARIABLES",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "accountId": {
        +            "description": "The AWS account ID to run the action in. Supports templates.",
        +            "type": "string"
        +          },
        +          "actionIdentifier": {
        +            "description": "The ID of the AWS action to run, e.g. `aws.ec2.describeInstances`. Copy it from an existing workflow with getWorkflow.",
        +            "type": "string"
        +          },
        +          "inputs": {
        +            "additionalProperties": {
        +              "type": "object"
        +            },
        +            "description": "The values for the inputs of the AWS action, by input key",
        +            "type": "object"
        +          },
        +          "region": {
        +            "description": "The AWS region, e.g. `us-east-1`. Supports templates.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "accountId",
        +          "actionIdentifier",
        +          "inputs",
        +          "region",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "AWS",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "body": {
        +            "description": "The body of the incident",
        +            "type": "string"
        +          },
        +          "fromEmail": {
        +            "description": "The email address of a valid user associated with the account making the request",
        +            "type": "string"
        +          },
        +          "incidentTypeName": {
        +            "description": "The incident type name",
        +            "type": "string"
        +          },
        +          "serviceId": {
        +            "description": "The ID of the service to create the incident for",
        +            "type": "string"
        +          },
        +          "title": {
        +            "description": "The title of the incident",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "urgency": {
        +            "description": "The urgency of the incident",
        +            "enum": [
        +              "HIGH",
        +              "LOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "body",
        +          "fromEmail",
        +          "serviceId",
        +          "title",
        +          "type",
        +          "urgency"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "PAGERDUTY_CREATE_INCIDENT",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "alias": {
        +            "description": "The alias for the Jira configuration that will be used.",
        +            "type": "string"
        +          },
        +          "assignee": {
        +            "description": "The identifier of the assignee for the Jira issue. This field is optional.",
        +            "type": "string"
        +          },
        +          "components": {
        +            "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        +            "items": {
        +              "description": "A list of components within the Jira project to which the issue belongs. This field is optional.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "description": {
        +            "description": "A detailed description of the issue, providing more context about what needs to be addressed.",
        +            "type": "string"
        +          },
        +          "fields": {
        +            "additionalProperties": {
        +              "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        +              "type": "object"
        +            },
        +            "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional.",
        +            "type": "object"
        +          },
        +          "issueSummary": {
        +            "description": "A brief summary of the issue being created, typically representing the title of the issue.",
        +            "type": "string"
        +          },
        +          "issueType": {
        +            "description": "The type of the issue being created, such as 'Bug', 'Task', or 'Story'.",
        +            "type": "string"
        +          },
        +          "labels": {
        +            "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        +            "items": {
        +              "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "priority": {
        +            "description": "The priority of the issue, such as 'High', 'Medium', or 'Low'. This field is optional.",
        +            "type": "string"
        +          },
        +          "projectKey": {
        +            "description": "The key of the Jira project where the issue will be created. Typically a short code like 'PROJ'.",
        +            "type": "string"
        +          },
        +          "reporter": {
        +            "description": "The identifier of the reporter who is raising the Jira issue. This field is optional.",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "alias",
        +          "components",
        +          "description",
        +          "fields",
        +          "issueSummary",
        +          "issueType",
        +          "labels",
        +          "projectKey",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "JIRA_CREATE_ISSUE",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "The definition of the action",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the action. It sets which other fields the action takes.",
        +            "enum": [
        +              "HTTP_REQUEST",
        +              "ADVANCED_HTTP_REQUEST",
        +              "HTTP_REQUEST_ASYNC",
        +              "SCAFFOLDER",
        +              "USER_INPUT",
        +              "JQ",
        +              "SLACK",
        +              "MANUAL_APPROVAL",
        +              "CONDITIONAL_BRANCH",
        +              "GITHUB_CREATE_OR_UPDATE_FILE",
        +              "MS_TEAMS_SEND_MESSAGE",
        +              "JAVASCRIPT",
        +              "SET_VARIABLES",
        +              "AWS",
        +              "PAGERDUTY_CREATE_INCIDENT",
        +              "JIRA_CREATE_ISSUE",
        +              "RUN_WORKFLOW"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "entityId": {
        +            "description": "The ID of the entity",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "workflowId": {
        +            "description": "The ID of the workflow to run",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "workflowId"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "RUN_WORKFLOW",
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / actions / items / properties / schema / properties / type / description
        Previous value: -"The type of the action"New value: +"The type of the action. It sets which other fields the action takes."
      • addedInput schema / properties / actions / items / properties / schema / properties / type / enum
        Added value: +[
        +  "HTTP_REQUEST",
        +  "ADVANCED_HTTP_REQUEST",
        +  "HTTP_REQUEST_ASYNC",
        +  "SCAFFOLDER",
        +  "USER_INPUT",
        +  "JQ",
        +  "SLACK",
        +  "MANUAL_APPROVAL",
        +  "CONDITIONAL_BRANCH",
        +  "GITHUB_CREATE_OR_UPDATE_FILE",
        +  "MS_TEAMS_SEND_MESSAGE",
        +  "JAVASCRIPT",
        +  "SET_VARIABLES",
        +  "AWS",
        +  "PAGERDUTY_CREATE_INCIDENT",
        +  "JIRA_CREATE_ISSUE",
        +  "RUN_WORKFLOW"
        +]
      • changedInput schema / properties / actions / items / properties / slug / description
        Previous value: -"The slug of the action"New value: +"The slug of the action. Use lowercase letters, digits and hyphens, 2 to 255 characters, not starting or ending with a hyphen."
      • changedInput schema / properties / filter / anyOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "description": "Filter to determine in what entity contexts the workflow can run",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the workflow filter",
        -            "enum": [
        -              "GLOBAL",
        -              "ENTITY"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "GLOBAL",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "Filter to determine in what entity contexts the workflow can run",
        -        "properties": {
        -          "type": {
        -            "description": "The type of the workflow filter",
        -            "enum": [
        -              "GLOBAL",
        -              "ENTITY"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "entityFilter": {
        -            "description": "The entity filter for the workflow",
        -            "properties": {
        -              "entityGroupFilter": {
        -                "description": "The entity group filter for the entity",
        -                "properties": {
        -                  "entityGroups": {
        -                    "description": "The entity groups to include",
        -                    "items": {
        -                      "description": "The entity groups to include",
        -                      "type": "string"
        -                    },
        -                    "type": "array",
        -                    "uniqueItems": true
        -                  },
        -                  "excludedEntityGroups": {
        -                    "description": "The entity groups to exclude",
        -                    "items": {
        -                      "description": "The entity groups to exclude",
        -                      "type": "string"
        -                    },
        -                    "type": "array",
        -                    "uniqueItems": true
        -                  }
        -                },
        -                "required": [
        -                  "entityGroups",
        -                  "excludedEntityGroups"
        -                ],
        -                "type": "object"
        -              },
        -              "typeFilter": {
        -                "properties": {
        -                  "types": {
        -                    "description": "The entity types to include. Can be found on https://app.getcortexapp.com/admin/entities",
        -                    "items": {
        -                      "description": "The entity types to include. Can be found on https://app.getcortexapp.com/admin/entities",
        -                      "type": "string"
        -                    },
        -                    "type": "array",
        -                    "uniqueItems": true
        -                  }
        -                },
        -                "required": [
        -                  "types"
        -                ],
        -                "type": "object"
        -              }
        -            },
        -            "type": "object"
        -          },
        -          "ownershipScope": {
        -            "description": "The ownership scope for the workflow",
        -            "enum": [
        -              "ALL",
        -              "OWNER",
        -              "EDITOR"
        -            ],
        -            "type": "string"
        -          },
        -          "requiredTeamRoles": {
        -            "description": "Tags of the team roles required to run the workflow. When non-empty, the runner must hold at least one of them on a team that owns the entity, in addition to what `ownershipScope` already requires. Only valid alongside an `ownershipScope` other than `ALL`.",
        -            "items": {
        -              "description": "Tags of the team roles required to run the workflow. When non-empty, the runner must hold at least one of them on a team that owns the entity, in addition to what `ownershipScope` already requires. Only valid alongside an `ownershipScope` other than `ALL`.",
        -              "type": "string"
        -            },
        -            "type": "array"
        -          }
        -        },
        -        "required": [
        -          "ownershipScope",
        -          "requiredTeamRoles"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "ENTITY",
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "description": "Filter to determine in what entity contexts the workflow can run",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the workflow filter",
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "type": {
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "GLOBAL",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "Filter to determine in what entity contexts the workflow can run",
        +        "properties": {
        +          "type": {
        +            "description": "The type of the workflow filter",
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "entityFilter": {
        +            "description": "The entity filter for the workflow",
        +            "properties": {
        +              "entityGroupFilter": {
        +                "description": "The entity group filter for the entity",
        +                "properties": {
        +                  "entityGroups": {
        +                    "description": "The entity groups to include",
        +                    "items": {
        +                      "description": "The entity groups to include",
        +                      "type": "string"
        +                    },
        +                    "type": "array",
        +                    "uniqueItems": true
        +                  },
        +                  "excludedEntityGroups": {
        +                    "description": "The entity groups to exclude",
        +                    "items": {
        +                      "description": "The entity groups to exclude",
        +                      "type": "string"
        +                    },
        +                    "type": "array",
        +                    "uniqueItems": true
        +                  }
        +                },
        +                "required": [
        +                  "entityGroups",
        +                  "excludedEntityGroups"
        +                ],
        +                "type": "object"
        +              },
        +              "typeFilter": {
        +                "properties": {
        +                  "types": {
        +                    "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                    "items": {
        +                      "description": "The entity types to include, by type tag, e.g. `service`, `domain` or `team`",
        +                      "type": "string"
        +                    },
        +                    "type": "array",
        +                    "uniqueItems": true
        +                  }
        +                },
        +                "required": [
        +                  "types"
        +                ],
        +                "type": "object"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "ownershipScope": {
        +            "description": "The ownership scope for the workflow",
        +            "enum": [
        +              "ALL",
        +              "OWNER",
        +              "EDITOR"
        +            ],
        +            "type": "string"
        +          },
        +          "requiredTeamRoles": {
        +            "description": "Tags of the team roles required to run the workflow. When non-empty, the runner must hold at least one of them on a team that owns the entity, in addition to what `ownershipScope` already requires. Only valid alongside an `ownershipScope` other than `ALL`.",
        +            "items": {
        +              "description": "Tags of the team roles required to run the workflow. When non-empty, the runner must hold at least one of them on a team that owns the entity, in addition to what `ownershipScope` already requires. Only valid alongside an `ownershipScope` other than `ALL`.",
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "type": {
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "ownershipScope",
        +          "requiredTeamRoles",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "ENTITY",
        +    "type": "object"
        +  }
        +]
      • changedInput schema / properties / tag / description
        Previous value: -"Tag of the workflow"New value: +"Tag of the workflow. Use lowercase letters, digits and hyphens, 2 to 255 characters, not starting or ending with a hyphen."
      • changedInput schema / properties / variables / description
        Previous value: -"List of variable definitions for the workflow"New value: +"List of variable definitions for the workflow. Set run values with `initialContext`."
      • changedInput schema / properties / variables / items / description
        Previous value: -"List of variable definitions for the workflow"New value: +"List of variable definitions for the workflow. Set run values with `initialContext`."
      • changedInput schema / properties / variables / items / properties / slug / description
        Previous value: -"The slug of the variable"New value: +"The slug of the variable. Use lowercase letters, digits and hyphens, 2 to 255 characters, not starting or ending with a hyphen."
    • AddedgetCatalogPage
    • ChangedgetWorkflowRun1 field changed
      • addedInput schema / properties / runId / description
        Added value: +"The ID of the run, from runWorkflow or listWorkflowRuns"
    • AddedlistCatalogPages
    • AddedlistIntegrationStatuses
    • AddedlistScorecardRuleExemptions
    • ChangedqueryPointInTimeMetrics2 fields changed
      • removedInput schema / properties / metrics / items / properties / aggregation / description
        Removed value: -"Type of aggregation function applied to the attribute"
      • removedInput schema / properties / nestedAggregations / items / properties / aggregations / items / properties / aggregation / description
        Removed value: -"Type of aggregation function applied to the attribute"
    • ChangedrunWorkflow3 fields changed
      • changedInput schema / properties / scope / anyOf
        Previous value: -[
        -  {
        -    "allOf": [
        -      {
        -        "description": "Scope of the workflow run (e.g., target entities)",
        -        "properties": {
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "GLOBAL",
        -    "type": "object"
        -  },
        -  {
        -    "allOf": [
        -      {
        -        "description": "Scope of the workflow run (e.g., target entities)",
        -        "properties": {
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "entityId": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "entityId"
        -        ],
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "type"
        -    ],
        -    "title": "ENTITY",
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "allOf": [
        +      {
        +        "description": "Scope of the workflow run (e.g., target entities)",
        +        "properties": {
        +          "type": {
        +            "description": "Must match the workflow filter type: `GLOBAL` for a GLOBAL filter, `ENTITY` for an ENTITY filter",
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "GLOBAL",
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "Scope of the workflow run (e.g., target entities)",
        +        "properties": {
        +          "type": {
        +            "description": "Must match the workflow filter type: `GLOBAL` for a GLOBAL filter, `ENTITY` for an ENTITY filter",
        +            "enum": [
        +              "GLOBAL",
        +              "ENTITY"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "entityId": {
        +            "description": "The tag or CID of the entity to run the workflow on",
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "entityId",
        +          "type"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "required": [
        +      "type"
        +    ],
        +    "title": "ENTITY",
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / scope / properties / type / description
        Added value: +"Must match the workflow filter type: `GLOBAL` for a GLOBAL filter, `ENTITY` for an ENTITY filter"
      • addedInput schema / properties / scope / properties / type / enum
        Added value: +[
        +  "GLOBAL",
        +  "ENTITY"
        +]
  3. 4 tool updates
    • AddedcreateOrUpdateWorkflow
    • AddedgetWorkflowRun
    • AddedlistWorkflowRuns
    • AddedrunWorkflow
  4. 50 tool updates
    • AddedAWSGetAwsResources
    • Changedget_more_tools5 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "context"
        -]New value: +[
        +  "context",
        +  "session_id"
        +]
      • addedOutput schema / properties / mcp_session
        Added value: +{
        +  "description": "Session continuity and agent attribution state for this task, returned on completed responses that carry structured output. This server cannot link your calls between requests on its own, so session continuity travels here instead.",
        +  "properties": {
        +    "session_id": {
        +      "description": "Opaque correlation ID for this task, issued by this server. Use this as the session_id argument of every later call, and hand it to any subagents working the same task. Absent when status is unrecognized; no replacement is issued in that response — recovery is described under status.",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "issued: first call of a task; the session_id above was just created. active: the session_id you sent was accepted; keep sending it. unrecognized: the value sent was not issued by this server — re-send the one issued earlier for this task; if none was issued yet, send start to be issued a new one.",
        +      "enum": [
        +        "issued",
        +        "active",
        +        "unrecognized"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / result / title
        Removed value: -"Result"
      • removedOutput schema / title
        Removed value: -"_WrappedResult"
    • ChangedgetCurrentOncallForEntity2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetCustomDataForEntity2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetCustomDataForEntityByKey2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "key",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "key",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetCustomEventForEntityByUuid2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "uuid",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "uuid",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetCustomMetricData4 fields changed
      • changedInput schema / properties / endDate / description
        Previous value: -"End date for the filter (inclusive)"New value: +"End date for the filter, inclusive (UTC, e.g. 2026-06-22T00:00:00)"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / properties / startDate / description
        Previous value: -"Start date for the filter (inclusive). Default: 6 months"New value: +"Start date for the filter, inclusive (UTC, e.g. 2026-06-22T00:00:00). Default: 6 months ago"
      • changedInput schema / required
        Previous value: -[
        -  "customMetricKey",
        -  "tagOrId",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "customMetricKey",
        +  "tagOrId",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • AddedgetDefinition
    • ChangedgetDependency2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "callerTag",
        -  "calleeTag",
        -  "context"
        -]New value: +[
        +  "callerTag",
        +  "calleeTag",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetDeploysForEntity2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetEntityDescriptor2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetEntityDetails3 fields changed
      • addedInput schema / properties / includeHierarchyFields / example
        Added value: +"groups"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetInitiative2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "cid",
        -  "context"
        -]New value: +[
        +  "cid",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetMyWorkspace2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "context"
        -]New value: +[
        +  "session_id",
        +  "context"
        +]
    • AddedgetOpenApiDocForEntity
    • ChangedgetRelationshipTypeDetails2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "relationshipTypeTag",
        -  "context"
        -]New value: +[
        +  "relationshipTypeTag",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetScorecard3 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tag / example
        Added value: +"my-production-readiness-checklist"
      • changedInput schema / required
        Previous value: -[
        -  "tag",
        -  "context"
        -]New value: +[
        +  "tag",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetScorecardNextStepsForEntity3 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tag / example
        Added value: +"my-production-readiness-checklist"
      • changedInput schema / required
        Previous value: -[
        -  "tag",
        -  "entityTag",
        -  "context"
        -]New value: +[
        +  "tag",
        +  "entityTag",
        +  "session_id",
        +  "context"
        +]
    • ChangedgetTeamDetails2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "session_id",
        +  "context"
        +]
    • AddedgetTeamHierarchyRelationships
    • AddedgetWorkflow
    • AddedKubernetesGetK8sResourcesForEntity
    • ChangedlistAllEntities10 fields changed
      • changedInput schema / properties / gitRepositories / description
        Previous value: -"Supports only GitHub repositories in the `org/repo` format"New value: +"Filter by git repositories. Supports GitHub (`github:org/repo` or `org/repo`), GitLab (`gitlab:namespace/project`), Bitbucket (`bitbucket:workspace/repo`), and Azure DevOps (`azure-devops:project/repo`). Unprefixed values default to GitHub for backward compatibility."
      • addedInput schema / properties / gitRepositories / example
        Added value: +"cortexapps%2Fbackend,gitlab:my-group%2Fmy-project"
      • changedInput schema / properties / hierarchyDepth / default
        Previous value: -"full"New value: +"0"
      • changedInput schema / properties / hierarchyDepth / description
        Previous value: -"Depth of the parent / children hierarchy nodes. Can be 'full' or a valid integer"New value: +"Depth of the parent / children hierarchy nodes to include for each entity. Defaults to 0, which returns no hierarchy data. Pass 'full' to return the entire hierarchy, or a positive integer to limit the depth."
      • addedInput schema / properties / includeHierarchyFields / example
        Added value: +"groups"
      • addedInput schema / properties / includeNestedFields / example
        Added value: +"team:members"
      • changedInput schema / properties / owners / description
        Previous value: -"Filter based on owner group names, which correspond to the `x-cortex-owners` field in the Catalog Descriptor. Accepts a comma-delimited list of owner group names"New value: +"Filter based on owner group names. Returns entities owned by the specified groups, as well as entities owned by any child/sub-teams of those groups. Group names correspond to the `x-cortex-owners` field in the Catalog Descriptor. Accepts a comma-delimited list of owner group names."
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • addedInput schema / properties / types / example
        Added value: +"service,rds,s3,domain"
      • changedInput schema / required
        Previous value: -[
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistCustomEventsForEntity4 fields changed
      • changedInput schema / properties / endTime / description
        Previous value: -"If provided, events with less than or equal to timestamp will be returned (a date-time without a time-zone in the ISO-8601 calendar system)"New value: +"If provided, events with less than or equal to timestamp will be returned (UTC, e.g. 2026-06-22T00:00:00)"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / properties / startTime / description
        Previous value: -"If provided, events with greater than or equal to timestamp will be returned (a date-time without a time-zone in the ISO-8601 calendar system)"New value: +"If provided, events with greater than or equal to timestamp will be returned (UTC, e.g. 2026-06-22T00:00:00)"
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • AddedlistDefinitions
    • ChangedlistDependenciesForEntity2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "callerTag",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "callerTag",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • AddedlistDeployEnvironments
    • ChangedlistEntityDescriptors4 fields changed
      • addedInput schema / properties / includeArchived
        Added value: +{
        +  "description": "Whether to include archived entities in the response",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • addedInput schema / properties / types / example
        Added value: +"service,rds,s3,domain"
      • changedInput schema / required
        Previous value: -[
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistEntityDestinationsForRelationshipType4 fields changed
      • addedInput schema / properties / depth / example
        Added value: +2
      • addedInput schema / properties / includeArchived / example
        Added value: +false
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "relationshipTypeTag",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "relationshipTypeTag",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistEntityRelationships2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "relationshipTypeTag",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "relationshipTypeTag",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistEntitySourcesForRelationshipType4 fields changed
      • addedInput schema / properties / depth / example
        Added value: +2
      • addedInput schema / properties / includeArchived / example
        Added value: +false
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "tagOrId",
        -  "relationshipTypeTag",
        -  "context"
        -]New value: +[
        +  "tagOrId",
        +  "relationshipTypeTag",
        +  "session_id",
        +  "context"
        +]
    • AddedlistGroupsForEntity
    • ChangedlistInitiatives2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistMetricDefinitions2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "context"
        -]New value: +[
        +  "session_id",
        +  "context"
        +]
    • ChangedlistRelationshipTypes2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistScorecards2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "page",
        -  "pageSize",
        -  "context"
        -]New value: +[
        +  "page",
        +  "pageSize",
        +  "session_id",
        +  "context"
        +]
    • ChangedlistScorecardScores3 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • addedInput schema / properties / tag / example
        Added value: +"my-production-readiness-checklist"
      • changedInput schema / required
        Previous value: -[
        -  "tag",
        -  "pageSize",
        -  "page",
        -  "context"
        -]New value: +[
        +  "tag",
        +  "pageSize",
        +  "page",
        +  "session_id",
        +  "context"
        +]
    • AddedlistScorecardScoresForEntity
    • AddedlistTeamMemberRoles
    • AddedlistVerificationPeriods
    • AddedlistVerifications
    • AddedlistVerificationsForEntity
    • AddedlistWorkflows
    • Changedquery_docs5 fields changed
      • addedInput schema / properties / query / description
        Added value: +"The question to ask Cortex docs"
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "query",
        -  "context"
        -]New value: +[
        +  "query",
        +  "session_id",
        +  "context"
        +]
      • addedOutput schema / properties
        Added value: +{
        +  "mcp_session": {
        +    "description": "Session continuity and agent attribution state for this task, returned on completed responses that carry structured output. This server cannot link your calls between requests on its own, so session continuity travels here instead.",
        +    "properties": {
        +      "session_id": {
        +        "description": "Opaque correlation ID for this task, issued by this server. Use this as the session_id argument of every later call, and hand it to any subagents working the same task. Absent when status is unrecognized; no replacement is issued in that response — recovery is described under status.",
        +        "type": "string"
        +      },
        +      "status": {
        +        "description": "issued: first call of a task; the session_id above was just created. active: the session_id you sent was accepted; keep sending it. unrecognized: the value sent was not issued by this server — re-send the one issued earlier for this task; if none was issued yet, send start to be issued a new one.",
        +        "enum": [
        +          "issued",
        +          "active",
        +          "unrecognized"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "type": "object"
        +  }
        +}
    • ChangedqueryPointInTimeMetrics20 fields changed
      • addedInput schema / properties / comparison / anyOf
        Added value: +[
        +  {
        +    "allOf": [
        +      {
        +        "description": "Optional comparison to previous time period",
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "peerFilters": {
        +            "items": {
        +              "description": "Filters to apply to the query",
        +              "properties": {
        +                "attribute": {
        +                  "type": "string"
        +                },
        +                "operator": {
        +                  "enum": [
        +                    "ANY",
        +                    "BETWEEN",
        +                    "CONTAINS",
        +                    "EQUAL",
        +                    "GREATER_THAN",
        +                    "GREATER_THAN_OR_EQUAL",
        +                    "IN",
        +                    "IS_NOT_NULL",
        +                    "IS_NULL",
        +                    "LESS_THAN",
        +                    "LESS_THAN_OR_EQUAL",
        +                    "LIKE",
        +                    "NOT_EQUAL",
        +                    "NOT_IN",
        +                    "NOT_LIKE"
        +                  ],
        +                  "type": "string"
        +                },
        +                "predicate": {
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "attribute",
        +                "operator",
        +                "predicate"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "peerFilters"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "allOf": [
        +      {
        +        "description": "Optional comparison to previous time period",
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "properties": {
        +          "decimalPlaces": {
        +            "format": "int32",
        +            "type": "integer"
        +          },
        +          "endTime": {
        +            "format": "date-time",
        +            "type": "string"
        +          },
        +          "startTime": {
        +            "format": "date-time",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "decimalPlaces",
        +          "endTime",
        +          "startTime"
        +        ],
        +        "type": "object"
        +      }
        +    ],
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / comparison / oneOf
        Removed value: -[
        -  {
        -    "allOf": [
        -      {
        -        "description": "List of column definitions describing each field in the result rows",
        -        "discriminator": {
        -          "propertyName": "type"
        -        },
        -        "properties": {
        -          "alias": {
        -            "type": "string"
        -          },
        -          "category": {
        -            "type": "string"
        -          },
        -          "description": {
        -            "type": "string"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "ordinal": {
        -            "format": "int32",
        -            "type": "integer"
        -          },
        -          "type": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "alias",
        -          "name",
        -          "ordinal",
        -          "type"
        -        ],
        -        "type": "object"
        -      },
        -      {
        -        "properties": {
        -          "ordinal": {
        -            "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values",
        -            "format": "int32",
        -            "type": "integer"
        -          },
        -          "windowSize": {
        -            "description": "Duration of the time window represented by this column",
        -            "properties": {
        -              "nano": {
        -                "format": "int32",
        -                "type": "integer"
        -              },
        -              "negative": {
        -                "type": "boolean"
        -              },
        -              "positive": {
        -                "type": "boolean"
        -              },
        -              "seconds": {
        -                "format": "int64",
        -                "type": "integer"
        -              },
        -              "units": {
        -                "items": {
        -                  "properties": {
        -                    "dateBased": {
        -                      "type": "boolean"
        -                    },
        -                    "duration": {
        -                      "properties": {
        -                        "nano": {
        -                          "format": "int32",
        -                          "type": "integer"
        -                        },
        -                        "negative": {
        -                          "type": "boolean"
        -                        },
        -                        "positive": {
        -                          "type": "boolean"
        -                        },
        -                        "seconds": {
        -                          "format": "int64",
        -                          "type": "integer"
        -                        },
        -                        "zero": {
        -                          "type": "boolean"
        -                        }
        -                      },
        -                      "type": "object"
        -                    },
        -                    "durationEstimated": {
        -                      "type": "boolean"
        -                    },
        -                    "timeBased": {
        -                      "type": "boolean"
        -                    }
        -                  },
        -                  "type": "object"
        -                },
        -                "type": "array"
        -              },
        -              "zero": {
        -                "type": "boolean"
        -              }
        -            },
        -            "type": "object"
        -          }
        -        },
        -        "type": "object"
        -      }
        -    ],
        -    "required": [
        -      "alias",
        -      "name",
        -      "ordinal",
        -      "windowSize"
        -    ],
        -    "type": "object"
        -  }
        -]
      • addedInput schema / properties / daysOfWeek
        Added value: +{
        +  "description": "Optional day-of-week restriction (ISO: Monday=1..Sunday=7). When set, the query filters out rows whose time-attribute does not fall on one of these weekdays. Use {1,2,3,4,5} to exclude weekends. Empty set matches nothing.",
        +  "items": {
        +    "description": "Optional day-of-week restriction (ISO: Monday=1..Sunday=7). When set, the query filters out rows whose time-attribute does not fall on one of these weekdays. Use {1,2,3,4,5} to exclude weekends. Empty set matches nothing.",
        +    "format": "int32",
        +    "type": "integer"
        +  },
        +  "type": "array",
        +  "uniqueItems": true
        +}
      • changedInput schema / properties / filters / items / description
        Previous value: -"Filters to apply to the data"New value: +"Filters to apply to the query"
      • removedInput schema / properties / metrics / items / description
        Removed value: -"Optional nested metrics for advanced queries"
      • addedInput schema / properties / metrics / items / properties / aggregation / description
        Added value: +"Type of aggregation function applied to the attribute"
      • changedInput schema / properties / metrics / items / properties / aggregation / enum
        Previous value: -[
        -  "SUM",
        -  "AVG",
        -  "COUNT",
        -  "RATIO",
        -  "MIN",
        -  "MAX",
        -  "P50",
        -  "P95",
        -  "RANKING"
        -]New value: +[
        +  "SUM",
        +  "AVG",
        +  "COUNT",
        +  "RATIO",
        +  "MIN",
        +  "MAX",
        +  "P50",
        +  "P95",
        +  "RANKING",
        +  "COLLECT",
        +  "COLLECT_UNIQUE",
        +  "COUNT_UNIQUE"
        +]
      • addedInput schema / properties / metrics / items / properties / density
        Added value: +{
        +  "enum": [
        +    "REQUIRED",
        +    "OPTIONAL"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / metrics / items / properties / endTime
        Added value: +{
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedInput schema / properties / metrics / items / properties / filters
        Added value: +{
        +  "items": {
        +    "description": "Filters to apply to the query",
        +    "properties": {
        +      "attribute": {
        +        "type": "string"
        +      },
        +      "operator": {
        +        "enum": [
        +          "ANY",
        +          "BETWEEN",
        +          "CONTAINS",
        +          "EQUAL",
        +          "GREATER_THAN",
        +          "GREATER_THAN_OR_EQUAL",
        +          "IN",
        +          "IS_NOT_NULL",
        +          "IS_NULL",
        +          "LESS_THAN",
        +          "LESS_THAN_OR_EQUAL",
        +          "LIKE",
        +          "NOT_EQUAL",
        +          "NOT_IN",
        +          "NOT_LIKE"
        +        ],
        +        "type": "string"
        +      },
        +      "predicate": {
        +        "type": "object"
        +      }
        +    },
        +    "required": [
        +      "attribute",
        +      "operator",
        +      "predicate"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / metrics / items / properties / startTime
        Added value: +{
        +  "format": "date-time",
        +  "type": "string"
        +}
      • addedInput schema / properties / nestedAggregations
        Added value: +{
        +  "description": "Nested aggregations for advanced sub-queries",
        +  "items": {
        +    "description": "Nested aggregations for advanced sub-queries",
        +    "properties": {
        +      "aggregations": {
        +        "items": {
        +          "properties": {
        +            "aggregation": {
        +              "description": "Type of aggregation function applied to the attribute",
        +              "enum": [
        +                "SUM",
        +                "AVG",
        +                "COUNT",
        +                "RATIO",
        +                "MIN",
        +                "MAX",
        +                "P50",
        +                "P95",
        +                "RANKING",
        +                "COLLECT",
        +                "COLLECT_UNIQUE",
        +                "COUNT_UNIQUE"
        +              ],
        +              "type": "string"
        +            },
        +            "density": {
        +              "enum": [
        +                "REQUIRED",
        +                "OPTIONAL"
        +              ],
        +              "type": "string"
        +            },
        +            "endTime": {
        +              "format": "date-time",
        +              "type": "string"
        +            },
        +            "filters": {
        +              "items": {
        +                "description": "Filters to apply to the query",
        +                "properties": {
        +                  "attribute": {
        +                    "type": "string"
        +                  },
        +                  "operator": {
        +                    "enum": [
        +                      "ANY",
        +                      "BETWEEN",
        +                      "CONTAINS",
        +                      "EQUAL",
        +                      "GREATER_THAN",
        +                      "GREATER_THAN_OR_EQUAL",
        +                      "IN",
        +                      "IS_NOT_NULL",
        +                      "IS_NULL",
        +                      "LESS_THAN",
        +                      "LESS_THAN_OR_EQUAL",
        +                      "LIKE",
        +                      "NOT_EQUAL",
        +                      "NOT_IN",
        +                      "NOT_LIKE"
        +                    ],
        +                    "type": "string"
        +                  },
        +                  "predicate": {
        +                    "type": "object"
        +                  }
        +                },
        +                "required": [
        +                  "attribute",
        +                  "operator",
        +                  "predicate"
        +                ],
        +                "type": "object"
        +              },
        +              "type": "array"
        +            },
        +            "metric": {
        +              "type": "string"
        +            },
        +            "startTime": {
        +              "format": "date-time",
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "aggregation",
        +            "metric"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "filters": {
        +        "items": {
        +          "description": "Filters to apply to the query",
        +          "properties": {
        +            "attribute": {
        +              "type": "string"
        +            },
        +            "operator": {
        +              "enum": [
        +                "ANY",
        +                "BETWEEN",
        +                "CONTAINS",
        +                "EQUAL",
        +                "GREATER_THAN",
        +                "GREATER_THAN_OR_EQUAL",
        +                "IN",
        +                "IS_NOT_NULL",
        +                "IS_NULL",
        +                "LESS_THAN",
        +                "LESS_THAN_OR_EQUAL",
        +                "LIKE",
        +                "NOT_EQUAL",
        +                "NOT_IN",
        +                "NOT_LIKE"
        +              ],
        +              "type": "string"
        +            },
        +            "predicate": {
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "attribute",
        +            "operator",
        +            "predicate"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "groupBy": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "timeAttribute": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "aggregations",
        +      "groupBy"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedInput schema / properties / nestedGroupBy
        Removed value: -{
        -  "description": "Fields to group nested results by",
        -  "items": {
        -    "description": "Fields to group nested results by",
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / nestedMetrics
        Removed value: -{
        -  "description": "Optional nested metrics for advanced queries",
        -  "items": {
        -    "description": "Optional nested metrics for advanced queries",
        -    "properties": {
        -      "aggregation": {
        -        "enum": [
        -          "SUM",
        -          "AVG",
        -          "COUNT",
        -          "RATIO",
        -          "MIN",
        -          "MAX",
        -          "P50",
        -          "P95",
        -          "RANKING"
        -        ],
        -        "type": "string"
        -      },
        -      "metric": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "aggregation",
        -      "metric"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / nestedTimeAttribute
        Removed value: -{
        -  "description": "Time attribute for nested queries",
        -  "type": "string"
        -}
      • changedInput schema / properties / orderBy / items / description
        Previous value: -"Sort order for results"New value: +"Ordering specification for results"
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / properties / timeAttribute / description
        Previous value: -"Time attribute to use for queries"New value: +"Deprecated: use timeAttributes instead. Single time attribute override as a fully-qualified path (e.g. 'pull_requests.date_closed')."
      • addedInput schema / properties / timeAttributes
        Added value: +{
        +  "description": "Time attributes to use for queries. Each entry is a fully-qualified attribute path (e.g. 'pull_requests.date_closed'). The source is inferred from the prefix. For single-source queries, provide one entry. For multi-source, provide one per source to override.",
        +  "items": {
        +    "description": "Time attributes to use for queries. Each entry is a fully-qualified attribute path (e.g. 'pull_requests.date_closed'). The source is inferred from the prefix. For single-source queries, provide one entry. For multi-source, provide one per source to override.",
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "endTime",
        -  "filters",
        -  "groupBy",
        -  "limit",
        -  "metrics",
        -  "orderBy",
        -  "startTime",
        -  "context"
        -]New value: +[
        +  "endTime",
        +  "filters",
        +  "groupBy",
        +  "limit",
        +  "metrics",
        +  "orderBy",
        +  "startTime",
        +  "session_id",
        +  "context"
        +]
    • AddedqueryTraceEvents
    • AddedretrieveCustomDataForEntityAdvanced
    • AddedretrieveVerificationPeriod
    • ChangedsearchCatalog2 fields changed
      • addedInput schema / properties / session_id
        Added value: +{
        +  "description": "Session continuity handle, one of two values: the ses_ ID issued for the task underway, or start. This server cannot link your calls between requests on its own, so session continuity travels in this parameter instead. If you were handed a session_id for this task — for example by the agent that spawned you — send that exact value from your first call. Otherwise send start on your first call; the server will issue an opaque correlation ID in the mcp_session field of the result, or in a text block at the start of the result beginning [session_id issued. Then send that exact ses_ value on every later call and hand it to any subagents working the same task. start always begins a new, unrelated task — never send it mid-task. If you send a value this server does not recognize, the result reports it: mcp_session.status of unrecognized, or a text block beginning [session_id unrecognized; re-send the ID issued for this task, or start if none was issued yet. Never invent a ses_ value.",
        +  "pattern": "^(start|ses_[0-9A-Za-z]{27})$",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "context"
        -]New value: +[
        +  "session_id",
        +  "context"
        +]
    • AddedsearchDeploys
  5. 1 tool update
    • AddedsearchCatalog
  6. 1 tool update
    • RemovedsearchCatalog
  7. 1 tool update
    • AddedsearchCatalog
  8. 1 tool update
    • RemovedsearchCatalog
  9. 1 tool update
    • AddedsearchCatalog
  10. 1 tool update
    • RemovedsearchCatalog
  11. 1 tool update
    • AddedsearchCatalog
  12. 1 tool update
    • RemovedsearchCatalog
  13. 1 tool update
    • AddedsearchCatalog
  14. 1 tool update
    • RemovedsearchCatalog
  15. 1 tool update
    • AddedsearchCatalog
  16. 1 tool update
    • RemovedsearchCatalog
  17. 1 tool update
    • AddedsearchCatalog

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that aggregates documentation and code context across GitHub repositories, auto-generates a system map from Backstage catalog files, and provides search capabilities for docs, code, issues, and API schemas to AI agents.
    12 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that provides coding agents with structured repository context, including graph-based navigation, dependency analysis, runtime flow tracing, and configuration surface across supported stacks.
    97 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A centralized remote MCP server that gives AI coding assistants real-time microservices architecture intelligence, including service search, database schema lookup, API discovery, and change blast-radius analysis.
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources