Run active and on-demand Make scenarios, view and modify Make scenarios and their related entities (e.g., connections, webhooks, and data stores), and view and modify teams and organizations - all from within Claude.
Protocol
MCP 2025-11-25
Server version
0.0.0
Supports
Tools
Resources
Prompts
Overall score
B
Overall quality score: 80 out of 10080/100
Server metadata
4 of 8 fields40/1003.2 / 8 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
App resources, metadata, and rendering requirements.
Tool invocation metadata present
4 tool(s) missing openai/toolInvocation metadata
How to fix: For tools that render a UI resource, add openai/toolInvocation with string fields invoking and invoked (present-tense labels shown while the tool runs and after it finishes, e.g. "Searching…" / "Searched").
How to fix: Use a ui:// URI and text/html;profile=mcp-app. For mcp-use v1, use widgetMetadata.metadata.widgetDescription; for v2, use the bound tool's view.description. The current description check reads _meta.ui.widgetDescription or _meta["openai/widgetDescription"] on resource contents or linked tools, not resource.description. Consequently, v2 view.description alone may leave this warning: report the checker compatibility gap instead of adding unsupported v1 fields or claiming the warning is fixed.
How to fix: For ChatGPT submission, set one exact HTTPS origin such as "https://app.example.com" on every view via _meta.ui.domain (or openai/widgetDomain). Paths are not valid and all views in one app must share the origin.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Lists the Make zone, organizations, and teams reachable through this connection, including private spaces. Most Make resources belong to a team; other tools require the organizationId and teamId returned here. Call this first when you need ids. A private space id is valid wherever a teamId is accepted.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"type": "object",
"required": [
"zone",
"organizations"
],
"properties": {
"zone": {
"type": "string",
"description": "Domain of the Make zone (regional instance) this connection operates on. All listed organizations are hosted here."
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"teams"
],
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "\"standard\" for a regular team, \"private\" for a private space."
}
}
}
}
}
}
}
}
}
Original tool metadata
{
"name": "environment_get",
"title": "Get environment",
"description": "Lists the Make zone, organizations, and teams reachable through this connection, including private spaces. Most Make resources belong to a team; other tools require the organizationId and teamId returned here. Call this first when you need ids. A private space id is valid wherever a teamId is accepted.",
"inputSchema": {
"type": "object",
"properties": {}
},
"outputSchema": {
"type": "object",
"required": [
"zone",
"organizations"
],
"properties": {
"zone": {
"type": "string",
"description": "Domain of the Make zone (regional instance) this connection operates on. All listed organizations are hosted here."
},
"organizations": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"teams"
],
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"teams": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"description": "\"standard\" for a regular team, \"private\" for a private space."
}
}
}
}
}
}
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
List scenarios (scenarios): List all scenarios for a team. Results can be narrowed to one folder (optionally including its subfolders) and/or to scenarios carrying at least one of the given scenario labels. Returned scenarios include their assigned labels.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID to filter scenarios by
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
folderId
Only return scenarios placed in this folder
Clear enough to supply this argument.
includeSubfolders
When filtering by folderId, also include scenarios placed in its subfolders
Clear enough to supply this argument.
labelIds
Only return scenarios carrying at least one of these scenario label IDs. Use scenario-labels_list to discover label IDs.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_list",
"title": "List scenarios",
"description": "List scenarios (scenarios): List all scenarios for a team. Results can be narrowed to one folder (optionally including its subfolders) and/or to scenarios carrying at least one of the given scenario labels. Returned scenarios include their assigned labels.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to filter scenarios by"
},
"folderId": {
"type": "number",
"description": "Only return scenarios placed in this folder"
},
"labelIds": {
"type": "array",
"items": {
"type": "number"
},
"description": "Only return scenarios carrying at least one of these scenario label IDs. Use scenario-labels_list to discover label IDs."
},
"includeSubfolders": {
"type": "boolean",
"description": "When filtering by folderId, also include scenarios placed in its subfolders"
}
}
},
"annotations": {
"title": "List scenarios",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Create scenario (scenarios): Create a new scenario from a blueprint. Verify every module name in the blueprint via app-modules_list before creating — never invent module identifiers. The created scenario starts INACTIVE: call scenarios_activate before scenarios_run can execute it.
The description explains the capability, when to use it, and what to expect.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
ID of the team where the scenario will be created
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folderId
ID of the folder where the scenario will be placed
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › type
Type of scheduling. 'indefinitely' runs on an interval; 'on-demand' only runs when triggered manually or via scenarios_run.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › interval
Interval in seconds when type is 'indefinitely' (minimum 60)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › date
Date and time to run the scenario when type is 'once' (ISO 8601)
Clear enough to supply this argument.
scheduling › days
Days of the week to run the scenario when type is 'weekly' (0-6, where 0 is Sunday); days of the month when type is 'monthly' or 'yearly' (1-31)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › months
Months of the year to run the scenario when type is 'yearly' (1-12)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › time
Time of day to run the scenario when type is 'daily', 'weekly', 'monthly', or 'yearly' (e.g. '09:00')
Clear enough to supply this argument.
scheduling › between
Date and time range the scenario may run in, for all types (ISO 8601)
Clear enough to supply this argument.
scheduling › restrict
Restrictions for scheduling (days/months/time windows)
Explain the meaning of this value, not just its name.
blueprint › name
Name of the scenario
Clear enough to supply this argument.
blueprint › flow › items › id
Unique numeric identifier of the module within the blueprint
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
blueprint › flow › items › module
Module identifier in `app:ModuleName` format (e.g. 'http:ActionSendData'). Must exist — verify via app-modules_list / app-module_get; never guess
Clear enough to supply this argument.
blueprint › flow › items › version
Version of the module
Clear enough to supply this argument.
blueprint › flow › items › parameters
Static module parameters
Explain the meaning of this value, not just its name.
blueprint › flow › items › mapper
Mappable module parameters
Explain the meaning of this value, not just its name.
blueprint › flow › items › metadata
Module metadata
Explain the meaning of this value, not just its name.
blueprint › flow › items › routes
Routes to other nodes, each `{"flow": [...]}` — only for router modules
Clear enough to supply this argument.
blueprint › flow › items › onerror
Error handling modules
Clear enough to supply this argument.
blueprint › flow › items › filter
Filter applied before this module runs: `{"name": "...", "conditions": [[{"a": "...", "o": "text:equal", "b": "..."}]]}`
Clear enough to supply this argument.
blueprint › metadata
Metadata for the blueprint — required by the API; use `{"version": 1}` if unsure
Clear enough to supply this argument.
basedon
ID of an existing template to base this one on
Clear enough to supply this argument.
confirmed
Confirmation in case the scenario uses apps that are not yet installed
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_create",
"title": "Create scenario",
"description": "Create scenario (scenarios): Create a new scenario from a blueprint. Verify every module name in the blueprint via app-modules_list before creating — never invent module identifiers. The created scenario starts INACTIVE: call scenarios_activate before scenarios_run can execute it.",
"inputSchema": {
"type": "object",
"required": [
"teamId",
"scheduling",
"blueprint"
],
"properties": {
"teamId": {
"type": "number",
"description": "ID of the team where the scenario will be created"
},
"basedon": {
"type": "string",
"description": "ID of an existing template to base this one on"
},
"folderId": {
"type": "number",
"description": "ID of the folder where the scenario will be placed"
},
"blueprint": {
"type": "object",
"required": [
"name",
"flow",
"metadata"
],
"properties": {
"flow": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"module",
"version"
],
"properties": {
"id": {
"type": "number",
"description": "Unique numeric identifier of the module within the blueprint"
},
"filter": {
"type": "object",
"description": "Filter applied before this module runs: `{\"name\": \"...\", \"conditions\": [[{\"a\": \"...\", \"o\": \"text:equal\", \"b\": \"...\"}]]}`"
},
"mapper": {
"type": "object",
"description": "Mappable module parameters"
},
"module": {
"type": "string",
"description": "Module identifier in `app:ModuleName` format (e.g. 'http:ActionSendData'). Must exist — verify via app-modules_list / app-module_get; never guess"
},
"routes": {
"type": "array",
"items": {
"type": "object"
},
"description": "Routes to other nodes, each `{\"flow\": [...]}` — only for router modules"
},
"onerror": {
"type": "array",
"items": {
"type": "object"
},
"description": "Error handling modules"
},
"version": {
"type": "number",
"description": "Version of the module"
},
"metadata": {
"type": "object",
"description": "Module metadata"
},
"parameters": {
"type": "object",
"description": "Static module parameters"
}
},
"additionalProperties": {}
},
"description": "Modules of the scenario in execution order. A module's filter lives in its `filter` property; there is no `epoch` property anywhere in a blueprint."
},
"name": {
"type": "string",
"description": "Name of the scenario"
},
"metadata": {
"type": "object",
"description": "Metadata for the blueprint — required by the API; use `{\"version\": 1}` if unsure"
}
},
"description": "Blueprint containing the scenario configuration. Every `module` value must be an existing module identifier verified via app-modules_list — never invent module names.",
"additionalProperties": {}
},
"confirmed": {
"type": "boolean",
"description": "Confirmation in case the scenario uses apps that are not yet installed"
},
"scheduling": {
"type": "object",
"required": [
"type"
],
"properties": {
"date": {
"type": "string",
"description": "Date and time to run the scenario when type is 'once' (ISO 8601)"
},
"days": {
"type": "array",
"items": {
"type": "number"
},
"description": "Days of the week to run the scenario when type is 'weekly' (0-6, where 0 is Sunday); days of the month when type is 'monthly' or 'yearly' (1-31)"
},
"time": {
"type": "string",
"description": "Time of day to run the scenario when type is 'daily', 'weekly', 'monthly', or 'yearly' (e.g. '09:00')"
},
"type": {
"enum": [
"immediately",
"indefinitely",
"once",
"daily",
"weekly",
"monthly",
"yearly",
"on-demand"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "immediately"
},
{
"type": "string",
"const": "indefinitely"
},
{
"type": "string",
"const": "once"
},
{
"type": "string",
"const": "daily"
},
{
"type": "string",
"const": "weekly"
},
{
"type": "string",
"const": "monthly"
},
{
"type": "string",
"const": "yearly"
},
{
"type": "string",
"const": "on-demand"
}
],
"description": "Type of scheduling. 'indefinitely' runs on an interval; 'on-demand' only runs when triggered manually or via scenarios_run."
},
"months": {
"type": "array",
"items": {
"type": "number"
},
"description": "Months of the year to run the scenario when type is 'yearly' (1-12)"
},
"between": {
"type": "array",
"items": {
"type": "string"
},
"description": "Date and time range the scenario may run in, for all types (ISO 8601)"
},
"interval": {
"type": "number",
"minimum": 60,
"description": "Interval in seconds when type is 'indefinitely' (minimum 60)"
},
"restrict": {
"type": "array",
"items": {
"type": "object"
},
"description": "Restrictions for scheduling (days/months/time windows)"
}
},
"description": "Scheduling configuration. Only the listed properties exist — there is no 'cron', 'hour' or similar property.",
"additionalProperties": false
}
}
},
"annotations": {
"title": "Create scenario",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Update scenario (scenarios): Update a scenario. The `blueprint` parameter wholesale-REPLACES the existing blueprint (no merging): always fetch the current blueprint with scenarios_get first, edit that JSON, and send the complete result. Tool scenarios (created via tools_create) cannot be blueprint-edited with this tool — use tools_update.
The description explains the capability, when to use it, and what to expect.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenarioId
The scenario ID to update
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
New name for the scenario
Clear enough to supply this argument.
description
New description for the scenario (maximum 240 characters)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folderId
New folder ID for the scenario. Use null to move the scenario out of its folder (Uncategorized); omit to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › type
Type of scheduling. 'indefinitely' runs on an interval; 'on-demand' only runs when triggered manually or via scenarios_run.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › interval
Interval in seconds when type is 'indefinitely' (minimum 60)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scheduling › date
Date and time to run the scenario when type is 'once' (ISO 8601)
Clear enough to supply this argument.
scheduling › days
Days of the week to run the scenario when type is 'weekly' (0-6, where 0 is Sunday); days of the month when type is 'monthly' or 'yearly' (1-31)
Clear enough to supply this argument.
scheduling › months
Months of the year to run the scenario when type is 'yearly' (1-12)
Clear enough to supply this argument.
scheduling › time
Time of day to run the scenario when type is 'daily', 'weekly', 'monthly', or 'yearly' (e.g. '09:00')
Clear enough to supply this argument.
scheduling › between
Date and time range the scenario may run in, for all types (ISO 8601)
Clear enough to supply this argument.
scheduling › restrict
Restrictions for scheduling (days/months/time windows)
Explain the meaning of this value, not just its name.
blueprint › name
Name of the scenario
Clear enough to supply this argument.
blueprint › flow › items › id
Unique numeric identifier of the module within the blueprint
Clear enough to supply this argument.
blueprint › flow › items › module
Module identifier in `app:ModuleName` format (e.g. 'http:ActionSendData'). Must exist — verify via app-modules_list / app-module_get; never guess
Clear enough to supply this argument.
blueprint › flow › items › version
Version of the module
Clear enough to supply this argument.
blueprint › flow › items › parameters
Static module parameters
Explain the meaning of this value, not just its name.
blueprint › flow › items › mapper
Mappable module parameters
Explain the meaning of this value, not just its name.
blueprint › flow › items › metadata
Module metadata
Explain the meaning of this value, not just its name.
blueprint › flow › items › routes
Routes to other nodes, each `{"flow": [...]}` — only for router modules
Explain the meaning of this value, not just its name.
blueprint › flow › items › onerror
Error handling modules
Clear enough to supply this argument.
blueprint › flow › items › filter
Filter applied before this module runs: `{"name": "...", "conditions": [[{"a": "...", "o": "text:equal", "b": "..."}]]}`
Clear enough to supply this argument.
blueprint › metadata
Metadata for the blueprint — required by the API; use `{"version": 1}` if unsure
Clear enough to supply this argument.
confirmed
Confirmation in case the scenario uses apps that are not yet installed
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_update",
"title": "Update scenario",
"description": "Update scenario (scenarios): Update a scenario. The `blueprint` parameter wholesale-REPLACES the existing blueprint (no merging): always fetch the current blueprint with scenarios_get first, edit that JSON, and send the complete result. Tool scenarios (created via tools_create) cannot be blueprint-edited with this tool — use tools_update.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"name": {
"type": "string",
"description": "New name for the scenario"
},
"folderId": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"oneOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "New folder ID for the scenario. Use null to move the scenario out of its folder (Uncategorized); omit to leave unchanged."
},
"blueprint": {
"type": "object",
"required": [
"name",
"flow",
"metadata"
],
"properties": {
"flow": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"module",
"version"
],
"properties": {
"id": {
"type": "number",
"description": "Unique numeric identifier of the module within the blueprint"
},
"filter": {
"type": "object",
"description": "Filter applied before this module runs: `{\"name\": \"...\", \"conditions\": [[{\"a\": \"...\", \"o\": \"text:equal\", \"b\": \"...\"}]]}`"
},
"mapper": {
"type": "object",
"description": "Mappable module parameters"
},
"module": {
"type": "string",
"description": "Module identifier in `app:ModuleName` format (e.g. 'http:ActionSendData'). Must exist — verify via app-modules_list / app-module_get; never guess"
},
"routes": {
"type": "array",
"items": {
"type": "object"
},
"description": "Routes to other nodes, each `{\"flow\": [...]}` — only for router modules"
},
"onerror": {
"type": "array",
"items": {
"type": "object"
},
"description": "Error handling modules"
},
"version": {
"type": "number",
"description": "Version of the module"
},
"metadata": {
"type": "object",
"description": "Module metadata"
},
"parameters": {
"type": "object",
"description": "Static module parameters"
}
},
"additionalProperties": {}
},
"description": "Modules of the scenario in execution order. A module's filter lives in its `filter` property; there is no `epoch` property anywhere in a blueprint."
},
"name": {
"type": "string",
"description": "Name of the scenario"
},
"metadata": {
"type": "object",
"description": "Metadata for the blueprint — required by the API; use `{\"version\": 1}` if unsure"
}
},
"description": "Blueprint containing the scenario configuration. Every `module` value must be an existing module identifier verified via app-modules_list — never invent module names.",
"additionalProperties": {}
},
"confirmed": {
"type": "boolean",
"description": "Confirmation in case the scenario uses apps that are not yet installed"
},
"scenarioId": {
"type": "number",
"description": "The scenario ID to update"
},
"scheduling": {
"type": "object",
"required": [
"type"
],
"properties": {
"date": {
"type": "string",
"description": "Date and time to run the scenario when type is 'once' (ISO 8601)"
},
"days": {
"type": "array",
"items": {
"type": "number"
},
"description": "Days of the week to run the scenario when type is 'weekly' (0-6, where 0 is Sunday); days of the month when type is 'monthly' or 'yearly' (1-31)"
},
"time": {
"type": "string",
"description": "Time of day to run the scenario when type is 'daily', 'weekly', 'monthly', or 'yearly' (e.g. '09:00')"
},
"type": {
"enum": [
"immediately",
"indefinitely",
"once",
"daily",
"weekly",
"monthly",
"yearly",
"on-demand"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "immediately"
},
{
"type": "string",
"const": "indefinitely"
},
{
"type": "string",
"const": "once"
},
{
"type": "string",
"const": "daily"
},
{
"type": "string",
"const": "weekly"
},
{
"type": "string",
"const": "monthly"
},
{
"type": "string",
"const": "yearly"
},
{
"type": "string",
"const": "on-demand"
}
],
"description": "Type of scheduling. 'indefinitely' runs on an interval; 'on-demand' only runs when triggered manually or via scenarios_run."
},
"months": {
"type": "array",
"items": {
"type": "number"
},
"description": "Months of the year to run the scenario when type is 'yearly' (1-12)"
},
"between": {
"type": "array",
"items": {
"type": "string"
},
"description": "Date and time range the scenario may run in, for all types (ISO 8601)"
},
"interval": {
"type": "number",
"minimum": 60,
"description": "Interval in seconds when type is 'indefinitely' (minimum 60)"
},
"restrict": {
"type": "array",
"items": {
"type": "object"
},
"description": "Restrictions for scheduling (days/months/time windows)"
}
},
"description": "Scheduling configuration. Only the listed properties exist — there is no 'cron', 'hour' or similar property.",
"additionalProperties": false
},
"description": {
"type": "string",
"maxLength": 240,
"description": "New description for the scenario (maximum 240 characters)"
}
}
},
"annotations": {
"title": "Update scenario",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Activate scenario (scenarios): Activate a scenario. Required before scenarios_run can execute it. If this fails with 'Scenario is already running', the scenario is already active — treat that as success and do not retry.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID to activate
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_activate",
"title": "Activate scenario",
"description": "Activate scenario (scenarios): Activate a scenario. Required before scenarios_run can execute it. If this fails with 'Scenario is already running', the scenario is already active — treat that as success and do not retry.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID to activate"
}
}
},
"annotations": {
"title": "Activate scenario",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Deactivate scenario (scenarios): Deactivate a scenario. If this fails with 'Scenario is not running', the scenario is already inactive — treat that as success and do not retry.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID to deactivate
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_deactivate",
"title": "Deactivate scenario",
"description": "Deactivate scenario (scenarios): Deactivate a scenario. If this fails with 'Scenario is not running', the scenario is already inactive — treat that as success and do not retry.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID to deactivate"
}
}
},
"annotations": {
"title": "Deactivate scenario",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Run scenario (scenarios): Execute a scenario with optional input data. The scenario must be ACTIVE — a run of an inactive scenario fails with 'Scenario is not activated', so call scenarios_activate first (newly created scenarios start inactive). Returns an executionId: after a failed or suspicious run, inspect it with executions_get-detail BEFORE retrying or editing the scenario. A scenario cannot run twice concurrently — on 'Scenario is already being executed', wait for the running execution instead of retrying.
The description explains the capability, when to use it, and what to expect.
Inputs69/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID to run
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
data
Optional input data for the scenario. Keys must match the scenario's input interface — check it with scenarios_interface
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
responsive
When true, waits for the execution to finish and returns its outputs; when false, the run is only queued and the executionId is returned immediately
Clear enough to supply this argument.
callbackUrl
URL to call once the scenario execution finishes
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_run",
"title": "Run scenario",
"description": "Run scenario (scenarios): Execute a scenario with optional input data. The scenario must be ACTIVE — a run of an inactive scenario fails with 'Scenario is not activated', so call scenarios_activate first (newly created scenarios start inactive). Returns an executionId: after a failed or suspicious run, inspect it with executions_get-detail BEFORE retrying or editing the scenario. A scenario cannot run twice concurrently — on 'Scenario is already being executed', wait for the running execution instead of retrying.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"data": {
"type": "object",
"description": "Optional input data for the scenario. Keys must match the scenario's input interface — check it with scenarios_interface"
},
"responsive": {
"type": "boolean",
"description": "When true, waits for the execution to finish and returns its outputs; when false, the run is only queued and the executionId is returned immediately"
},
"scenarioId": {
"type": "number",
"description": "The scenario ID to run"
},
"callbackUrl": {
"type": "string",
"description": "URL to call once the scenario execution finishes"
}
}
},
"annotations": {
"title": "Run scenario",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Replay scenario execution (scenarios): Replay a past execution of a scenario, re-running it with the trigger data the original execution received. Get candidate execution IDs from executions_list. Only executions whose input data is still stored can be replayed — 'Execution is not replayable' means that execution's data has expired or was never stored, so try a MORE RECENT execution instead of retrying the same one. Only the first ID in executionIds is replayed. The scenario must be ACTIVE. A replay starts a real execution and consumes operations exactly like scenarios_run; it returns the executionId of the NEW execution, which you can inspect with executions_get-detail.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenarioId
The ID of the scenario the execution belongs to
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
executionIds
Execution IDs to replay, as returned by executions_list. Currently only the first one is replayed.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenarios_replay",
"title": "Replay scenario execution",
"description": "Replay scenario execution (scenarios): Replay a past execution of a scenario, re-running it with the trigger data the original execution received. Get candidate execution IDs from executions_list. Only executions whose input data is still stored can be replayed — 'Execution is not replayable' means that execution's data has expired or was never stored, so try a MORE RECENT execution instead of retrying the same one. Only the first ID in executionIds is replayed. The scenario must be ACTIVE. A replay starts a real execution and consumes operations exactly like scenarios_run; it returns the executionId of the NEW execution, which you can inspect with executions_get-detail.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"executionIds"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The ID of the scenario the execution belongs to"
},
"executionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Execution IDs to replay, as returned by executions_list. Currently only the first one is replayed."
}
}
},
"annotations": {
"title": "Replay scenario execution",
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Get execution detail (executions): Get the full per-module detail of an execution: the inputs and outputs of each module, the failing module and its error. ALWAYS call this after a failed or suspicious run BEFORE retrying or editing the scenario. For lightweight status/duration metadata only, use executions_get instead.
The description explains the capability, when to use it, and what to expect.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID the execution belongs to
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
executionId
The execution ID to retrieve — a 32-character lowercase hex string as returned by scenarios_run or executions_list (e.g. 'a07e16f2ad134bf49cf83a00aa95c0a5')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "executions_get-detail",
"title": "Get execution detail",
"description": "Get execution detail (executions): Get the full per-module detail of an execution: the inputs and outputs of each module, the failing module and its error. ALWAYS call this after a failed or suspicious run BEFORE retrying or editing the scenario. For lightweight status/duration metadata only, use executions_get instead.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"executionId"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID the execution belongs to"
},
"executionId": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "The execution ID to retrieve — a 32-character lowercase hex string as returned by scenarios_run or executions_list (e.g. 'a07e16f2ad134bf49cf83a00aa95c0a5')"
}
}
},
"annotations": {
"title": "Get execution detail",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Get execution (executions): Get execution metadata only: status, duration, operations consumed and error class — NOT per-module inputs/outputs. To see what each module did or why a run failed, use executions_get-detail instead.
The description explains the capability, when to use it, and what to expect.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID the execution belongs to
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
executionId
The execution ID to retrieve — a 32-character lowercase hex string as returned by scenarios_run or executions_list (e.g. 'a07e16f2ad134bf49cf83a00aa95c0a5')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "executions_get",
"title": "Get execution",
"description": "Get execution (executions): Get execution metadata only: status, duration, operations consumed and error class — NOT per-module inputs/outputs. To see what each module did or why a run failed, use executions_get-detail instead.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"executionId"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID the execution belongs to"
},
"executionId": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "The execution ID to retrieve — a 32-character lowercase hex string as returned by scenarios_run or executions_list (e.g. 'a07e16f2ad134bf49cf83a00aa95c0a5')"
}
}
},
"annotations": {
"title": "Get execution",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
List folders (folders): List scenario folders for a team. If you do not know the teamId, find it via organizations_list (each organization lists its teams) or teams_list, or ask the user — never guess IDs.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID to list folders for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
parentId
The parent folder whose direct children should be returned. Omit to return top-level folders.
Clear enough to supply this argument.
childrenDepth
Set to 'all' to return all descendants under children. By default, children includes only one direct child level.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "folders_list",
"title": "List folders",
"description": "List folders (folders): List scenario folders for a team. If you do not know the teamId, find it via organizations_list (each organization lists its teams) or teams_list, or ask the user — never guess IDs.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to list folders for"
},
"parentId": {
"type": "number",
"description": "The parent folder whose direct children should be returned. Omit to return top-level folders."
},
"childrenDepth": {
"enum": [
"all"
],
"type": "string",
"const": "all",
"description": "Set to 'all' to return all descendants under children. By default, children includes only one direct child level."
}
}
},
"annotations": {
"title": "List folders",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
List scenario labels (scenario-labels): List a team's scenario label catalog, including how many scenarios carry each label. Scenario labels are team-scoped tags that can be assigned to scenarios, independent of folders. If you do not know the teamId, find it via organizations_list (each organization lists its teams) or teams_list, or ask the user — never guess IDs.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID to list scenario labels for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-labels_list",
"title": "List scenario labels",
"description": "List scenario labels (scenario-labels): List a team's scenario label catalog, including how many scenarios carry each label. Scenario labels are team-scoped tags that can be assigned to scenarios, independent of folders. If you do not know the teamId, find it via organizations_list (each organization lists its teams) or teams_list, or ask the user — never guess IDs.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to list scenario labels for"
}
}
},
"annotations": {
"title": "List scenario labels",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Create scenario label (scenario-labels): Create a new scenario label in a team. Labels are team-scoped tags that can be assigned to scenarios. If you do not know the teamId, call users_me to learn it.
Describe the returned information so the agent knows whether it will answer the request.
Inputs69/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID where the label will be created
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
Name of the label (1-30 characters)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
colour
Colour of the label, one of the fixed palette values
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
Optional description of the label (max 500 characters)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Update scenario label (scenario-labels): Update the name, colour, or description of an existing scenario label. Provide at least one property to change; omitted properties are left unchanged. Changes are reflected on every scenario carrying the label.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs69/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
labelId
The label ID to update
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
New name for the label (1-30 characters)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
colour
New colour for the label, one of the fixed palette values
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
New description for the label (max 500 characters). Use null to clear it; omit to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Delete scenario label (scenario-labels): Delete a scenario label. The label is removed from the team catalog and unassigned from every scenario carrying it. This cannot be undone.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
labelId
The label ID to delete
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-labels_delete",
"title": "Delete scenario label",
"description": "Delete scenario label (scenario-labels): Delete a scenario label. The label is removed from the team catalog and unassigned from every scenario carrying it. This cannot be undone.",
"inputSchema": {
"type": "object",
"required": [
"labelId"
],
"properties": {
"labelId": {
"type": "number",
"description": "The label ID to delete"
}
}
},
"annotations": {
"title": "Delete scenario label",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Assign scenario label (scenario-labels): Assign a scenario label to a scenario. The label and the scenario must belong to the same team. Assigning an already-assigned label succeeds without changes. To label many scenarios, call this tool once per scenario.
The description explains the capability, when to use it, and what to expect.
Inputs69/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
labelId
The label ID to assign
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-labels_assign",
"title": "Assign scenario label",
"description": "Assign scenario label (scenario-labels): Assign a scenario label to a scenario. The label and the scenario must belong to the same team. Assigning an already-assigned label succeeds without changes. To label many scenarios, call this tool once per scenario.",
"inputSchema": {
"type": "object",
"required": [
"labelId",
"scenarioId"
],
"properties": {
"labelId": {
"type": "number",
"description": "The label ID to assign"
},
"scenarioId": {
"type": "number",
"description": "The scenario ID to assign the label to"
}
}
},
"annotations": {
"title": "Assign scenario label",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Unassign scenario label (scenario-labels): Remove a scenario label from a scenario. Removing an already-absent assignment succeeds without changes. The label itself stays in the team catalog.
The description explains the capability, when to use it, and what to expect.
Inputs73/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
labelId
The label ID to remove
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description52/100
Create webhook/mailhook (hooks): Create a new webhook/mailhook.
Describe the concrete operation and its scope instead of restating the tool name.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID where the hook will be created
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
name
The name of the webhook
Explain the meaning of this value, not just its name.
typeName
The hook type to create. Use 'gateway-webhook' for a generic custom webhook (receives HTTP requests) or 'gateway-mailhook' for a generic mailhook (receives emails). For app-specific hooks, use the hook type name of that app (find it via the app's modules).
Clear enough to supply this argument.
data
Additional parameters specific to the hook type. Required parameters that have defaults in the hook type's manifest are filled automatically when omitted (e.g. for 'gateway-webhook' the booleans 'method', 'headers' and 'stringify' default to false). Parameters without defaults must be provided here (e.g. app-specific hooks often require their own fields).
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "hooks_create",
"title": "Create webhook/mailhook",
"description": "Create webhook/mailhook (hooks): Create a new webhook/mailhook.",
"inputSchema": {
"type": "object",
"required": [
"teamId",
"name",
"typeName"
],
"properties": {
"data": {
"type": "object",
"description": "Additional parameters specific to the hook type. Required parameters that have defaults in the hook type's manifest are filled automatically when omitted (e.g. for 'gateway-webhook' the booleans 'method', 'headers' and 'stringify' default to false). Parameters without defaults must be provided here (e.g. app-specific hooks often require their own fields)."
},
"name": {
"type": "string",
"description": "The name of the webhook"
},
"teamId": {
"type": "number",
"description": "The team ID where the hook will be created"
},
"typeName": {
"type": "string",
"description": "The hook type to create. Use 'gateway-webhook' for a generic custom webhook (receives HTTP requests) or 'gateway-mailhook' for a generic mailhook (receives emails). For app-specific hooks, use the hook type name of that app (find it via the app's modules)."
}
}
},
"annotations": {
"title": "Create webhook/mailhook",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
List webhook queue items (hook-incomings): List items currently waiting in a webhook's processing queue — payloads the webhook received but hasn't handed off to a scenario yet (e.g. because the scenario isn't active).
Describe the returned information so the agent knows whether it will answer the request.
Inputs79/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
hookId
The hook ID to list queued items for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
from
Only include items queued at or after this Unix timestamp (ms)
Clear enough to supply this argument.
to
Only include items queued at or before this Unix timestamp (ms)
Clear enough to supply this argument.
pg › sortBy
Sort queue items by their creation time
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
pg › sortDir
Sort direction
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
pg › offset
Number of items to skip
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
pg › limit
Maximum number of items to return (up to 10,000)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Get webhook queue item detail (hook-incomings): Get the full detail of a single queued item, including its payload when available. Confidential hooks omit payload data.
The description explains the capability, when to use it, and what to expect.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
hookId
The hook ID the queue item belongs to
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
incomingId
The 32-character lowercase hexadecimal ID of the queue item to retrieve
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Delete webhook queue items (hook-incomings): Delete items from a webhook's processing queue. Specify `ids` to delete specific items, or `all: true` (with `confirmed: true`) to clear the entire queue. An item currently being processed cannot be deleted.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
hookId
The hook ID to delete queue items for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
ids
IDs of the queue items to delete
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
exceptIds
When used with `all`, IDs of queue items to keep instead of deleting
Clear enough to supply this argument.
all
Delete every item in the queue
Clear enough to supply this argument.
confirmed
Required (and must be `true`) when `all` is used, to confirm the bulk deletion
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-structures_list",
"title": "List data structures",
"description": "List data structures (data-structures): List data structures for a team.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to list data structures for"
}
}
},
"annotations": {
"title": "List data structures",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-structures_get",
"title": "Get data structure",
"description": "Get data structure (data-structures): Get details of a specific data structure.",
"inputSchema": {
"type": "object",
"required": [
"dataStructureId"
],
"properties": {
"dataStructureId": {
"type": "number",
"description": "The data structure ID to retrieve"
}
}
},
"annotations": {
"title": "Get data structure",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-structures_create",
"title": "Create data structure",
"description": "Create data structure (data-structures): Create a new data structure.",
"inputSchema": {
"type": "object",
"required": [
"teamId",
"name",
"strict",
"spec"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the data structure. The maximum length of the name is 128 characters"
},
"spec": {
"type": "array",
"items": {
"type": "object"
},
"description": "Sets the data structure specification. Each item follows the Make Parameters Syntax."
},
"strict": {
"type": "boolean",
"description": "Set to true to enforce strict validation of the data put in the data structure"
},
"teamId": {
"type": "number",
"description": "The unique ID of the team in which the data structure will be created"
}
}
},
"annotations": {
"title": "Create data structure",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-structures_update",
"title": "Update data structure",
"description": "Update data structure (data-structures): Update an existing data structure.",
"inputSchema": {
"type": "object",
"required": [
"dataStructureId"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the data structure. The maximum length of the name is 128 characters"
},
"spec": {
"type": "array",
"items": {
"type": "object"
},
"description": "Sets the data structure specification. Each item follows the Make Parameters Syntax."
},
"strict": {
"type": "boolean",
"description": "Set to true to enforce strict validation of the data put in the data structure"
},
"dataStructureId": {
"type": "number",
"description": "The data structure ID to update"
}
}
},
"annotations": {
"title": "Update data structure",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "connections_list",
"title": "List connections",
"description": "List connections (connections): List connections for a team.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"type": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by connection type"
},
"scopes": {
"type": "object",
"description": "Scopes that are required on the requested connection types. Each connection type is a key in this object with an array of scopes as the value.",
"additionalProperties": true
},
"teamId": {
"type": "number",
"description": "The team ID to list connections for"
}
}
},
"annotations": {
"title": "List connections",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
List credential requests (credential-requests): Retrieve a list of credential requests. Each request can contain multiple credentials (connections and API keys). Filter by team, user, provider, status, or name to find specific requests.
Describe the returned information so the agent knows whether it will answer the request.
Inputs53/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
Filter by team ID
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
userId
Filter by user ID
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
makeProviderId
Filter by Make provider ID
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
status
Filter by status
Explain the meaning of this value, not just its name.
name
Filter by name
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Get credential request details (credential-requests): Retrieve detailed information about a specific credential request by its ID. Returns all associated credentials with their authorization status, provider configuration, user details, and authorization URLs for pending credentials. Use this to check the state of credentials within a request.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
requestId
The credential request ID to get details for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_get",
"title": "Get credential request details",
"description": "Get credential request details (credential-requests): Retrieve detailed information about a specific credential request by its ID. Returns all associated credentials with their authorization status, provider configuration, user details, and authorization URLs for pending credentials. Use this to check the state of credentials within a request.",
"inputSchema": {
"type": "object",
"required": [
"requestId"
],
"properties": {
"requestId": {
"type": "string",
"description": "The credential request ID to get details for"
}
}
},
"annotations": {
"title": "Get credential request details",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Delete credential request (credential-requests): Permanently delete a credential request and all associated credentials (connections and API keys) by ID. Any scenarios using connections from this request will lose access to the corresponding services. This action cannot be undone.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
Input documentation gives an agent enough context to populate the arguments.
requestId
The credential request ID to delete — the string ID returned by credential-requests_create or credential-requests_list. NOT a numeric connectionId; to delete a connection use connections_delete.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_delete",
"title": "Delete credential request",
"description": "Delete credential request (credential-requests): Permanently delete a credential request and all associated credentials (connections and API keys) by ID. Any scenarios using connections from this request will lose access to the corresponding services. This action cannot be undone.",
"inputSchema": {
"type": "object",
"required": [
"requestId"
],
"properties": {
"requestId": {
"type": "string",
"description": "The credential request ID to delete — the string ID returned by credential-requests_create or credential-requests_list. NOT a numeric connectionId; to delete a connection use connections_delete."
}
}
},
"annotations": {
"title": "Delete credential request",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Decline credential (credential-requests): Decline a credential authorization request by ID, setting its status to "declined" and preventing it from being authorized. An optional reason can be provided to explain the decision. This operation is idempotent - declining an already-declined credential has no additional effect.
Describe the returned information so the agent knows whether it will answer the request.
Inputs72/100
Explain what happens when this optional value is omitted.
credentialId
The credential ID to decline
Clear enough to supply this argument.
reason
Optional reason for declining
Explain what happens when this optional value is omitted.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_credential-decline",
"title": "Decline credential",
"description": "Decline credential (credential-requests): Decline a credential authorization request by ID, setting its status to \"declined\" and preventing it from being authorized. An optional reason can be provided to explain the decision. This operation is idempotent - declining an already-declined credential has no additional effect.",
"inputSchema": {
"type": "object",
"required": [
"credentialId"
],
"properties": {
"reason": {
"type": "string",
"description": "Optional reason for declining"
},
"credentialId": {
"type": "string",
"description": "The credential ID to decline"
}
}
},
"annotations": {
"title": "Decline credential",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Delete credential (credential-requests): Delete a credential (e.g., revoke OAuth tokens or remove stored API keys) and reset its state to pending. Use this when a credential needs re-authorization with updated permissions, tokens have become stale, or you want to force re-authentication. After deletion, the credential can be authorized again through the normal flow.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
credentialId
The credential ID to delete
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_credential-delete",
"title": "Delete credential",
"description": "Delete credential (credential-requests): Delete a credential (e.g., revoke OAuth tokens or remove stored API keys) and reset its state to pending. Use this when a credential needs re-authorization with updated permissions, tokens have become stale, or you want to force re-authentication. After deletion, the credential can be authorized again through the normal flow.",
"inputSchema": {
"type": "object",
"required": [
"credentialId"
],
"properties": {
"credentialId": {
"type": "string",
"description": "The credential ID to delete"
}
}
},
"annotations": {
"title": "Delete credential",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Create credential request (credential-requests): Create a credential request for the currently authenticated user to set up connections and keys. This will return a URL where the user can authorize the credentials, so that they can be used in scenarios.
Describe the returned information so the agent knows whether it will answer the request.
Inputs77/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
Name of the Request which will be displayed to the End Users who open it.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
Description of the Request which will be displayed to the End Users who open it.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
Team ID
Explain the meaning of this value, not just its name.
credentials › items › appName
Name of the application to request credentials for.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
credentials › items › appModules
Array of module IDs to request from the user, for example: ["WatchDirectMessages", "WatchFiles"]. Use ["*"] to select all modules for the given application. At least one of appModules or appEndpoints must be specified (both may be provided together).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
credentials › items › appEndpoints
Array of Endpoint Names that the credential will be used to access, for example: ["GetUser", "ListFiles"]. Use ["*"] to select all endpoints for the given application. At least one of appModules or appEndpoints must be specified (both may be provided together).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
credentials › items › appVersion
Version of the application. If not provided, it defaults to the latest available version.
Clear enough to supply this argument.
credentials › items › nameOverride
An optional name to use for the credential when created in the platform, overriding the default generated name.
Clear enough to supply this argument.
credentials › items › description
Description for this credential to be displayed in the Request view.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_create",
"title": "Create credential request",
"description": "Create credential request (credential-requests): Create a credential request for the currently authenticated user to set up connections and keys. This will return a URL where the user can authorize the credentials, so that they can be used in scenarios.",
"inputSchema": {
"type": "object",
"required": [
"teamId",
"credentials"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the Request which will be displayed to the End Users who open it."
},
"teamId": {
"type": "number",
"description": "Team ID"
},
"credentials": {
"type": "array",
"items": {
"type": "object",
"required": [
"appName"
],
"properties": {
"appName": {
"type": "string",
"description": "Name of the application to request credentials for."
},
"appModules": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Array of module IDs to request from the user, for example: [\"WatchDirectMessages\", \"WatchFiles\"]. Use [\"*\"] to select all modules for the given application. At least one of appModules or appEndpoints must be specified (both may be provided together)."
},
"appVersion": {
"type": "number",
"description": "Version of the application. If not provided, it defaults to the latest available version."
},
"description": {
"type": "string",
"description": "Description for this credential to be displayed in the Request view."
},
"appEndpoints": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Array of Endpoint Names that the credential will be used to access, for example: [\"GetUser\", \"ListFiles\"]. Use [\"*\"] to select all endpoints for the given application. At least one of appModules or appEndpoints must be specified (both may be provided together)."
},
"nameOverride": {
"type": "string",
"description": "An optional name to use for the credential when created in the platform, overriding the default generated name."
}
}
},
"maxItems": 64,
"minItems": 1,
"description": "Array of app/module selections to derive credentials from."
},
"description": {
"type": "string",
"description": "Description of the Request which will be displayed to the End Users who open it."
}
}
},
"annotations": {
"title": "Create credential request",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Create credential request by connection/key types (credential-requests): Create a credential request for one or more connections (OAuth) and/or keys (API keys) by their type identifiers (e.g. "google", "slack", "apikeyauth"). Use this when you know the exact connection or key types needed. The response includes the created request, an array of credentials associated with the request, and a publicUri where the end-user must go to authorize the requested credentials. At least one connection or one key must be provided.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Explain the meaning of this value, not just its name.
name
Human-readable name for the credential request, displayed to the end-user who will authorize it.
Clear enough to supply this argument.
description
Instructions or context for the end-user, displayed on the authorization page.
Clear enough to supply this argument.
teamId
The numeric ID of the Make team where the connections/keys will be created once authorized.
Clear enough to supply this argument.
connections › items › type
Type of the Connection to be included in the Request.
Explain the meaning of this value, not just its name.
connections › items › description
Description of the particular Connection to be displayed in the Request view.
Clear enough to supply this argument.
connections › items › scope
Array of Scopes that the Connection should ask for.
Explain the meaning of this value, not just its name.
connections › items › prefill › hard
Hard prefill values that the user cannot change.
Explain the meaning of this value, not just its name.
connections › items › prefill › soft
Soft prefill values that the user can change.
Explain the meaning of this value, not just its name.
connections › items › nameOverride
An optional name to use for the credential when created in the platform.
Clear enough to supply this argument.
keys › items › type
Type of the Key to be included in the Request.
Explain the meaning of this value, not just its name.
keys › items › description
Description of the particular Key to be displayed in the Request view.
Clear enough to supply this argument.
keys › items › prefill › hard
Hard prefill values that the user cannot change.
Explain the meaning of this value, not just its name.
keys › items › prefill › soft
Soft prefill values that the user can change.
Explain the meaning of this value, not just its name.
keys › items › nameOverride
An optional name to use for the credential when created in the platform.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_create-by-credentials",
"title": "Create credential request by connection/key types",
"description": "Create credential request by connection/key types (credential-requests): Create a credential request for one or more connections (OAuth) and/or keys (API keys) by their type identifiers (e.g. \"google\", \"slack\", \"apikeyauth\"). Use this when you know the exact connection or key types needed. The response includes the created request, an array of credentials associated with the request, and a publicUri where the end-user must go to authorize the requested credentials. At least one connection or one key must be provided.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Type of the Key to be included in the Request."
},
"prefill": {
"type": "object",
"properties": {
"hard": {
"type": "object",
"description": "Hard prefill values that the user cannot change."
},
"soft": {
"type": "object",
"description": "Soft prefill values that the user can change."
}
},
"description": "Prefill values for the key."
},
"description": {
"type": "string",
"description": "Description of the particular Key to be displayed in the Request view."
},
"nameOverride": {
"type": "string",
"description": "An optional name to use for the credential when created in the platform."
}
}
},
"maxItems": 32,
"description": "Array of API keys to request. Each item needs at least a \"type\" (e.g. \"apikeyauth\", \"basicauth\")."
},
"name": {
"type": "string",
"description": "Human-readable name for the credential request, displayed to the end-user who will authorize it."
},
"teamId": {
"type": "number",
"description": "The numeric ID of the Make team where the connections/keys will be created once authorized."
},
"connections": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"description": "Type of the Connection to be included in the Request."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of Scopes that the Connection should ask for."
},
"prefill": {
"type": "object",
"properties": {
"hard": {
"type": "object",
"description": "Hard prefill values that the user cannot change."
},
"soft": {
"type": "object",
"description": "Soft prefill values that the user can change."
}
},
"description": "Prefill values for the connection."
},
"description": {
"type": "string",
"description": "Description of the particular Connection to be displayed in the Request view."
},
"nameOverride": {
"type": "string",
"description": "An optional name to use for the credential when created in the platform."
}
}
},
"maxItems": 32,
"description": "Array of OAuth or basic-auth connections to request. Each item needs at least a \"type\" (e.g. \"google\", \"slack\", \"github\")."
},
"description": {
"type": "string",
"description": "Instructions or context for the end-user, displayed on the authorization page."
}
}
},
"annotations": {
"title": "Create credential request by connection/key types",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Extend connection OAuth scopes (credential-requests): Add new OAuth scopes to an existing connection. Use this when a connection exists but lacks the permissions (scopes) needed for a specific operation. Creates a credential request that the end-user must authorize via the returned publicUri to grant the additional scopes. Fails if all requested scopes are already present on the connection — that error means the connection already satisfies the requirement: treat it as success and use the connection as-is; do not retry.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
connectionId
The numeric ID of an existing Make connection whose OAuth scopes need to be expanded.
Clear enough to supply this argument.
scopes
One or more new OAuth scope strings to add to the connection. At least one scope must be new (not already granted). Get the exact scope strings a module needs from credential-requests_list-app-modules-with-creds — do not guess them.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_extend-connection",
"title": "Extend connection OAuth scopes",
"description": "Extend connection OAuth scopes (credential-requests): Add new OAuth scopes to an existing connection. Use this when a connection exists but lacks the permissions (scopes) needed for a specific operation. Creates a credential request that the end-user must authorize via the returned publicUri to grant the additional scopes. Fails if all requested scopes are already present on the connection — that error means the connection already satisfies the requirement: treat it as success and use the connection as-is; do not retry.",
"inputSchema": {
"type": "object",
"required": [
"connectionId",
"scopes"
],
"properties": {
"scopes": {
"type": "array",
"items": {
"type": "string",
"description": "An OAuth scope string to add."
},
"minItems": 1,
"description": "One or more new OAuth scope strings to add to the connection. At least one scope must be new (not already granted). Get the exact scope strings a module needs from credential-requests_list-app-modules-with-creds — do not guess them."
},
"connectionId": {
"type": "number",
"description": "The numeric ID of an existing Make connection whose OAuth scopes need to be expanded."
}
}
},
"annotations": {
"title": "Extend connection OAuth scopes",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
List app modules with credentials (credential-requests): List all modules of a given Make app (and version) that require credentials, along with the required credential type and OAuth scopes. Use this to discover which modules exist for an app before constructing a credential request — the returned `id` values are what you pass in `credentials[].appModules` for `credential-requests_create`. For custom/SDK apps, prefix the app name with `app#` (e.g. `app#my-custom-app`).
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
App name (e.g. `slack`). For custom/SDK apps, prefix with `app#` (e.g. `app#my-custom-app`).
Clear enough to supply this argument.
appVersion
App major version number (e.g. `4`), or the literal string `"latest"`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "credential-requests_list-app-modules-with-creds",
"title": "List app modules with credentials",
"description": "List app modules with credentials (credential-requests): List all modules of a given Make app (and version) that require credentials, along with the required credential type and OAuth scopes. Use this to discover which modules exist for an app before constructing a credential request — the returned `id` values are what you pass in `credentials[].appModules` for `credential-requests_create`. For custom/SDK apps, prefix the app name with `app#` (e.g. `app#my-custom-app`).",
"inputSchema": {
"type": "object",
"required": [
"appName",
"appVersion"
],
"properties": {
"appName": {
"type": "string",
"description": "App name (e.g. `slack`). For custom/SDK apps, prefix with `app#` (e.g. `app#my-custom-app`)."
},
"appVersion": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"const": "latest"
}
],
"oneOf": [
{
"type": "number"
},
{
"type": "string",
"const": "latest"
}
],
"description": "App major version number (e.g. `4`), or the literal string `\"latest\"`."
}
}
},
"annotations": {
"title": "List app modules with credentials",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-stores_list",
"title": "List data stores",
"description": "List data stores (data-stores): List all data stores for a team.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to filter data stores by"
}
}
},
"annotations": {
"title": "List data stores",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-stores_get",
"title": "Get data store",
"description": "Get data store (data-stores): Get data store details by ID.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId"
],
"properties": {
"dataStoreId": {
"type": "number",
"description": "The data store ID to retrieve"
}
}
},
"annotations": {
"title": "Get data store",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-stores_create",
"title": "Create data store",
"description": "Create data store (data-stores): Create a new data store.",
"inputSchema": {
"type": "object",
"required": [
"name",
"teamId",
"maxSizeMB"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the data store"
},
"teamId": {
"type": "number",
"description": "ID of the team to create the data store in"
},
"maxSizeMB": {
"type": "number",
"description": "Maximum size in MB for the data store"
},
"datastructureId": {
"type": "number",
"description": "ID of the data structure defining the record format"
}
}
},
"annotations": {
"title": "Create data store",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-stores_update",
"title": "Update data store",
"description": "Update data store (data-stores): Update a data store.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId"
],
"properties": {
"name": {
"type": "string",
"description": "New name for the data store"
},
"maxSizeMB": {
"type": "number",
"description": "New maximum size in MB for the data store"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID to update"
},
"datastructureId": {
"type": "number",
"description": "New data structure ID"
}
}
},
"annotations": {
"title": "Update data store",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-stores_delete",
"title": "Delete data store",
"description": "Delete data store (data-stores): Delete a data store.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId"
],
"properties": {
"dataStoreId": {
"type": "number",
"description": "The data store ID to delete"
}
}
},
"annotations": {
"title": "Delete data store",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description61/100
List data store records (data-store-records): List all records in a data store.
Describe the concrete operation and its scope instead of restating the tool name.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dataStoreId
The data store ID to list records from
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
limit
Maximum number of records to return
Explain what happens when this optional value is omitted.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "List data store records",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-store-records_list",
"title": "List data store records",
"description": "List data store records (data-store-records): List all records in a data store.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId"
],
"properties": {
"limit": {
"type": "number",
"description": "Maximum number of records to return"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID to list records from"
}
}
},
"annotations": {
"title": "List data store records",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description57/100
Create data store record (data-store-records): Create a new record in a data store.
Describe the concrete operation and its scope instead of restating the tool name.
Inputs58/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dataStoreId
The data store ID to create the record in
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
key
Unique key for the record (optional)
Explain what happens when this optional value is omitted.
data
Record data
Explain the meaning of this value, not just its name.
Annotations100/100
All four behavior hints are declared.
{
"title": "Create data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-store-records_create",
"title": "Create data store record",
"description": "Create data store record (data-store-records): Create a new record in a data store.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId",
"data"
],
"properties": {
"key": {
"type": "string",
"description": "Unique key for the record (optional)"
},
"data": {
"type": "object",
"description": "Record data"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID to create the record in"
}
}
},
"annotations": {
"title": "Create data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description60/100
Update data store record (data-store-records): Update an existing record in a data store.
Describe the concrete operation and its scope instead of restating the tool name.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dataStoreId
The data store ID containing the record
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
key
Unique key of the record to update
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
data
Updated record data
Explain the meaning of this value, not just its name.
Annotations100/100
All four behavior hints are declared.
{
"title": "Update data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-store-records_update",
"title": "Update data store record",
"description": "Update data store record (data-store-records): Update an existing record in a data store.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId",
"key",
"data"
],
"properties": {
"key": {
"type": "string",
"description": "Unique key of the record to update"
},
"data": {
"type": "object",
"description": "Updated record data"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID containing the record"
}
}
},
"annotations": {
"title": "Update data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description68/100
Replace data store record (data-store-records): Replace an existing record in a data store or create if it doesn't exist.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dataStoreId
The data store ID containing the record
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
key
Unique key of the record to replace
Clear enough to supply this argument.
data
New record data
Explain the meaning of this value, not just its name.
Annotations100/100
All four behavior hints are declared.
{
"title": "Replace data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-store-records_replace",
"title": "Replace data store record",
"description": "Replace data store record (data-store-records): Replace an existing record in a data store or create if it doesn't exist.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId",
"key",
"data"
],
"properties": {
"key": {
"type": "string",
"description": "Unique key of the record to replace"
},
"data": {
"type": "object",
"description": "New record data"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID containing the record"
}
}
},
"annotations": {
"title": "Replace data store record",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
Delete data store records (data-store-records): Delete specific records from a data store by keys.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs64/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dataStoreId
The data store ID to delete records from
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
keys
Array of record keys to delete
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"title": "Delete data store records",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-store-records_delete",
"title": "Delete data store records",
"description": "Delete data store records (data-store-records): Delete specific records from a data store by keys.",
"inputSchema": {
"type": "object",
"required": [
"dataStoreId",
"keys"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of record keys to delete"
},
"dataStoreId": {
"type": "number",
"description": "The data store ID to delete records from"
}
}
},
"annotations": {
"title": "Delete data store records",
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
List teams (teams): Lists full team records for an organization. For organization and team ids/names to act with, use the always-available `environment_get` first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs63/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The organization ID to list teams for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
includePrivateSpaces
Whether to include private spaces (personal teams) in the results
Explain what happens when this optional value is omitted.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "teams_list",
"title": "List teams",
"description": "List teams (teams): Lists full team records for an organization. For organization and team ids/names to act with, use the always-available `environment_get` first.",
"inputSchema": {
"type": "object",
"required": [
"organizationId"
],
"properties": {
"organizationId": {
"type": "number",
"description": "The organization ID to list teams for"
},
"includePrivateSpaces": {
"type": "boolean",
"description": "Whether to include private spaces (personal teams) in the results"
}
}
},
"annotations": {
"title": "List teams",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "teams_create",
"title": "Create team",
"description": "Create team (teams): Create a new team.",
"inputSchema": {
"type": "object",
"required": [
"name",
"organizationId"
],
"properties": {
"name": {
"type": "string",
"description": "Name for the new team"
},
"transferLimit": {
"type": "number",
"description": "Maximum data transfer limit for the team"
},
"organizationId": {
"type": "number",
"description": "ID of the organization where the team will be created"
},
"operationsLimit": {
"type": "number",
"description": "Maximum operations limit for the team"
}
}
},
"annotations": {
"title": "Create team",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description70/100
List organizations (organizations): Lists full organization records. For organization and team ids/names to act with, use the always-available `environment_get` first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "organizations_create",
"title": "Create organization",
"description": "Create organization (organizations): Create a new organization.",
"inputSchema": {
"type": "object",
"required": [
"name",
"regionId",
"timezoneId",
"countryId"
],
"properties": {
"name": {
"type": "string",
"description": "Name of the organization"
},
"regionId": {
"type": "number",
"description": "The ID of the region the organization will be created in"
},
"countryId": {
"type": "number",
"description": "The ID of the country"
},
"timezoneId": {
"type": "number",
"description": "The ID of the timezone"
}
}
},
"annotations": {
"title": "Create organization",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "users_me",
"title": "Get current user",
"description": "Get current user (users): Returns the current user profile. For organization and team ids, use the always-available `environment_get`.",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"title": "Get current user",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
List public templates (public-templates): Search and list public (approved) templates available for anyone. Supports name-based search for template discovery. Results are sorted by usage by default.
Describe the returned information so the agent knows whether it will answer the request.
Inputs74/100
Explain the meaning of this value, not just its name.
name
Search public templates by name
Clear enough to supply this argument.
usedApps
Filter public templates by apps used
Explain the meaning of this value, not just its name.
includeEn
Whether to include English-language public templates in results
Explain what happens when this optional value is omitted.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "public-templates_list",
"title": "List public templates",
"description": "List public templates (public-templates): Search and list public (approved) templates available for anyone. Supports name-based search for template discovery. Results are sorted by usage by default.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Search public templates by name"
},
"usedApps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter public templates by apps used"
},
"includeEn": {
"type": "boolean",
"description": "Whether to include English-language public templates in results"
}
}
},
"annotations": {
"title": "List public templates",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Get public template (public-templates): Get details of a public template by its URL slug (e.g. "12289-add-webhook-data-to-a-google-sheet"). Use this for templates discovered via public-templates_list.
Describe the returned information so the agent knows whether it will answer the request.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
templateUrl
The URL slug of the public template (e.g. "12289-add-webhook-data-to-a-google-sheet")
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "public-templates_get",
"title": "Get public template",
"description": "Get public template (public-templates): Get details of a public template by its URL slug (e.g. \"12289-add-webhook-data-to-a-google-sheet\"). Use this for templates discovered via public-templates_list.",
"inputSchema": {
"type": "object",
"required": [
"templateUrl"
],
"properties": {
"templateUrl": {
"type": "string",
"description": "The URL slug of the public template (e.g. \"12289-add-webhook-data-to-a-google-sheet\")"
}
}
},
"annotations": {
"title": "Get public template",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Get public template blueprint (public-templates): Get the full blueprint of a public template including scenario flow, controller configuration, scheduling, and metadata. Use this for templates discovered via public-templates_list.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
templateUrl
The URL slug of the public template (e.g. "12289-add-webhook-data-to-a-google-sheet")
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "public-templates_get-blueprint",
"title": "Get public template blueprint",
"description": "Get public template blueprint (public-templates): Get the full blueprint of a public template including scenario flow, controller configuration, scheduling, and metadata. Use this for templates discovered via public-templates_list.",
"inputSchema": {
"type": "object",
"required": [
"templateUrl"
],
"properties": {
"templateUrl": {
"type": "string",
"description": "The URL slug of the public template (e.g. \"12289-add-webhook-data-to-a-google-sheet\")"
}
}
},
"annotations": {
"title": "Get public template blueprint",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
List templates (templates): List templates. Omit teamId to list every status the caller can see; provide teamId to scope the list to that team's own templates.
Describe the returned information so the agent knows whether it will answer the request.
Inputs67/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
Filter templates by the owning team's ID
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
usedApps
Filter templates by apps used
Explain the meaning of this value, not just its name.
public
Filter by public status; omit to get every status
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "templates_list",
"title": "List templates",
"description": "List templates (templates): List templates. Omit teamId to list every status the caller can see; provide teamId to scope the list to that team's own templates.",
"inputSchema": {
"type": "object",
"properties": {
"public": {
"type": "boolean",
"description": "Filter by public status; omit to get every status"
},
"teamId": {
"type": "number",
"description": "Filter templates by the owning team's ID"
},
"usedApps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter templates by apps used"
}
}
},
"annotations": {
"title": "List templates",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
List private spaces (private-spaces): List the private spaces of an organization. Requires the organization's private-spaces feature to be enabled (error IM903 otherwise) and the 'personal team manage' permission. Private spaces cannot be created or deleted through the API — they are provisioned automatically by organization settings.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The organization ID to list private spaces for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
externalId
Filter private spaces by their external ID
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "private-spaces_list",
"title": "List private spaces",
"description": "List private spaces (private-spaces): List the private spaces of an organization. Requires the organization's private-spaces feature to be enabled (error IM903 otherwise) and the 'personal team manage' permission. Private spaces cannot be created or deleted through the API — they are provisioned automatically by organization settings.",
"inputSchema": {
"type": "object",
"required": [
"organizationId"
],
"properties": {
"externalId": {
"type": "string",
"description": "Filter private spaces by their external ID"
},
"organizationId": {
"type": "number",
"description": "The organization ID to list private spaces for"
}
}
},
"annotations": {
"title": "List private spaces",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Get private space (private-spaces): Get details of a specific private space, including usage totals (operations, transfer, centicredits). Callers who are not members of the space receive a 404 even when the space exists.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Clarify ID sources, units, or usage conventions not already expressed in the schema.
privateSpaceId
The private space ID to retrieve
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "private-spaces_get",
"title": "Get private space",
"description": "Get private space (private-spaces): Get details of a specific private space, including usage totals (operations, transfer, centicredits). Callers who are not members of the space receive a 404 even when the space exists.",
"inputSchema": {
"type": "object",
"required": [
"privateSpaceId"
],
"properties": {
"privateSpaceId": {
"type": "number",
"description": "The private space ID to retrieve"
}
}
},
"annotations": {
"title": "Get private space",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Update private space (private-spaces): Update a private space's operations limit. Set operationsLimit to null to remove the limit (unlimited); the transfer limit is derived automatically. When the new limit is below the space's current consumption the call fails with IM004 unless 'confirmed' is true — confirming pauses the space.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
privateSpaceId
The private space ID to update
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
operationsLimit
Maximum operations limit (minimum 0). Pass null to remove the limit; omit to leave unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
confirmed
Confirmation of the update. Required when the new limit is below the space's current consumption; confirming pauses the space.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "private-spaces_update",
"title": "Update private space",
"description": "Update private space (private-spaces): Update a private space's operations limit. Set operationsLimit to null to remove the limit (unlimited); the transfer limit is derived automatically. When the new limit is below the space's current consumption the call fails with IM004 unless 'confirmed' is true — confirming pauses the space.",
"inputSchema": {
"type": "object",
"required": [
"privateSpaceId"
],
"properties": {
"confirmed": {
"type": "boolean",
"description": "Confirmation of the update. Required when the new limit is below the space's current consumption; confirming pauses the space."
},
"privateSpaceId": {
"type": "number",
"description": "The private space ID to update"
},
"operationsLimit": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"oneOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Maximum operations limit (minimum 0). Pass null to remove the limit; omit to leave unchanged."
}
}
},
"annotations": {
"title": "Update private space",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
List custom property structures (custom-property-structures): List the custom property structures defined for an organization. Requires the organization's custom-properties feature to be enabled (error IM027 otherwise). At most one structure can exist per combination of associated type, belonger type, and belonger ID — currently 'scenario'/'organization' is the only supported combination — and structures cannot be deleted through the API.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The organization ID to list custom property structures for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "custom-property-structures_list",
"title": "List custom property structures",
"description": "List custom property structures (custom-property-structures): List the custom property structures defined for an organization. Requires the organization's custom-properties feature to be enabled (error IM027 otherwise). At most one structure can exist per combination of associated type, belonger type, and belonger ID — currently 'scenario'/'organization' is the only supported combination — and structures cannot be deleted through the API.",
"inputSchema": {
"type": "object",
"required": [
"organizationId"
],
"properties": {
"organizationId": {
"type": "number",
"description": "The organization ID to list custom property structures for"
}
}
},
"annotations": {
"title": "List custom property structures",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Create custom property structure (custom-property-structures): Create a custom property structure for an organization. Only one structure can exist per (associatedType, belongerType, belongerId) combination — creating a second one for the same organization fails with IM005. Once created, a structure cannot be deleted through the API. Use 'scenario' as associatedType and 'organization' as belongerType — these are the only values the API currently accepts.
The description explains the capability, when to use it, and what to expect.
Inputs67/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
associatedType
The entity type the custom properties apply to. Only 'scenario' is currently supported.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
belongerType
The entity type that owns the structure. Only 'organization' is currently supported.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
belongerId
The ID of the entity that owns the structure (the organization ID)
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "custom-property-structures_create",
"title": "Create custom property structure",
"description": "Create custom property structure (custom-property-structures): Create a custom property structure for an organization. Only one structure can exist per (associatedType, belongerType, belongerId) combination — creating a second one for the same organization fails with IM005. Once created, a structure cannot be deleted through the API. Use 'scenario' as associatedType and 'organization' as belongerType — these are the only values the API currently accepts.",
"inputSchema": {
"type": "object",
"required": [
"associatedType",
"belongerType",
"belongerId"
],
"properties": {
"belongerId": {
"type": "number",
"description": "The ID of the entity that owns the structure (the organization ID)"
},
"belongerType": {
"enum": [
"organization"
],
"type": "string",
"const": "organization",
"description": "The entity type that owns the structure. Only 'organization' is currently supported."
},
"associatedType": {
"enum": [
"scenario"
],
"type": "string",
"const": "scenario",
"description": "The entity type the custom properties apply to. Only 'scenario' is currently supported."
}
}
},
"annotations": {
"title": "Create custom property structure",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
List custom property structure items (custom-property-structure-items): List the items (field definitions) of a custom property structure. Use custom-property-structures_list to find the structure ID.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
customPropertyStructureId
The custom property structure ID to list items for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
id
Filter items by exact ID
Clear enough to supply this argument.
name
Filter items by name (case-insensitive regular expression)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
label
Filter items by label (case-insensitive regular expression)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
Filter items by description (case-insensitive regular expression)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
type
Filter items by data type
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
required
Filter items by whether they are required
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Create custom property structure item (custom-property-structure-items): Create an item (field definition) in a custom property structure. The item's name and type cannot be changed after creation. `options` is required for the 'dropdown' and 'multiselect' types and not allowed for any other type.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs84/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
customPropertyStructureId
The custom property structure ID to add the item to
Clear enough to supply this argument.
name
Unique name of the item within the structure, used as its key in scenario data. Must match ^[a-zA-Z_$][0-9a-zA-Z_$]*$, max 64 characters. Cannot be changed after creation.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
label
Label shown to users in the scenario table header, max 64 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
type
Data type of the item. Cannot be changed after creation.
Clear enough to supply this argument.
description
Description shown in the Scenario properties tab, max 1024 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
options › items › value
The option value, max 250 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
required
Whether filling in this item is mandatory when setting scenario custom properties data
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Update custom property structure item (custom-property-structure-items): Update a custom property structure item. The item's name and type cannot be changed. When updating `options` of a 'dropdown'/'multiselect' item, the new set fully replaces the current one — existing scenario data referencing removed options is not remapped.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
customPropertyStructureItemId
The custom property structure item ID to update
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
label
New label, max 64 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
New description, max 1024 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
options › items › value
The option value, max 250 characters
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
required
Whether filling in this item is mandatory
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "custom-property-structure-items_update",
"title": "Update custom property structure item",
"description": "Update custom property structure item (custom-property-structure-items): Update a custom property structure item. The item's name and type cannot be changed. When updating `options` of a 'dropdown'/'multiselect' item, the new set fully replaces the current one — existing scenario data referencing removed options is not remapped.",
"inputSchema": {
"type": "object",
"required": [
"customPropertyStructureItemId"
],
"properties": {
"label": {
"type": "string",
"description": "New label, max 64 characters"
},
"options": {
"type": "array",
"items": {
"type": "object",
"required": [
"value"
],
"properties": {
"value": {
"type": "string",
"description": "The option value, max 250 characters"
}
}
},
"description": "Full replacement set of available choices. Only for 'dropdown'/'multiselect' items."
},
"required": {
"type": "boolean",
"description": "Whether filling in this item is mandatory"
},
"description": {
"type": "string",
"description": "New description, max 1024 characters"
},
"customPropertyStructureItemId": {
"type": "number",
"description": "The custom property structure item ID to update"
}
}
},
"annotations": {
"title": "Update custom property structure item",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Delete custom property structure item (custom-property-structure-items): Delete a custom property structure item. Deleting an item also deletes any scenario data filled in for it — this is irreversible. If scenarios already have data for the item, the call fails with IM004 unless 'confirmed' is true.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Input documentation gives an agent enough context to populate the arguments.
customPropertyStructureItemId
The custom property structure item ID to delete
Clear enough to supply this argument.
confirmed
Confirmation of the deletion. Required when scenarios already have data for this item; confirming discards that data.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "custom-property-structure-items_delete",
"title": "Delete custom property structure item",
"description": "Delete custom property structure item (custom-property-structure-items): Delete a custom property structure item. Deleting an item also deletes any scenario data filled in for it — this is irreversible. If scenarios already have data for the item, the call fails with IM004 unless 'confirmed' is true.",
"inputSchema": {
"type": "object",
"required": [
"customPropertyStructureItemId"
],
"properties": {
"confirmed": {
"type": "boolean",
"description": "Confirmation of the deletion. Required when scenarios already have data for this item; confirming discards that data."
},
"customPropertyStructureItemId": {
"type": "number",
"description": "The custom property structure item ID to delete"
}
}
},
"annotations": {
"title": "Delete custom property structure item",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
Shorten the title to an action and subject; move usage details into the description.
Description89/100
Fill in scenario custom properties data (scenario-custom-properties): Fill in custom properties data for a scenario for the first time. Fails with IM005 if the scenario already has data — use scenario-custom-properties_update or scenario-custom-properties_replace instead. Every item marked required in the custom property structure must be given a value. Use custom-property-structure-items_list to see the available items.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Input documentation gives an agent enough context to populate the arguments.
scenarioId
The scenario ID to fill in custom properties data for
Clear enough to supply this argument.
customProperties
Custom properties keyed by structure item name, e.g. { "highPriority": true, "category": ["eshop"] }.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-custom-properties_create",
"title": "Fill in scenario custom properties data",
"description": "Fill in scenario custom properties data (scenario-custom-properties): Fill in custom properties data for a scenario for the first time. Fails with IM005 if the scenario already has data — use scenario-custom-properties_update or scenario-custom-properties_replace instead. Every item marked required in the custom property structure must be given a value. Use custom-property-structure-items_list to see the available items.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"customProperties"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID to fill in custom properties data for"
},
"customProperties": {
"type": "object",
"description": "Custom properties keyed by structure item name, e.g. { \"highPriority\": true, \"category\": [\"eshop\"] }."
}
}
},
"annotations": {
"title": "Fill in scenario custom properties data",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Replace scenario custom properties data (scenario-custom-properties): Replace all custom properties data for a scenario. Fails with IM013 if the scenario has no data yet — use scenario-custom-properties_create first. Every item marked required in the structure must be given a value.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Input documentation gives an agent enough context to populate the arguments.
scenarioId
The scenario ID to replace custom properties data for
Clear enough to supply this argument.
customProperties
Complete set of custom properties keyed by structure item name; replaces all existing data.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-custom-properties_replace",
"title": "Replace scenario custom properties data",
"description": "Replace scenario custom properties data (scenario-custom-properties): Replace all custom properties data for a scenario. Fails with IM013 if the scenario has no data yet — use scenario-custom-properties_create first. Every item marked required in the structure must be given a value.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"customProperties"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID to replace custom properties data for"
},
"customProperties": {
"type": "object",
"description": "Complete set of custom properties keyed by structure item name; replaces all existing data."
}
}
},
"annotations": {
"title": "Replace scenario custom properties data",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Update scenario custom properties data (scenario-custom-properties): Merge-update custom properties data for a scenario; only the specified items are changed. Fails with IM013 if the scenario has no data yet — use scenario-custom-properties_create first.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
scenarioId
The scenario ID to update custom properties data for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
customProperties
Custom properties to update, keyed by structure item name; unspecified items are left unchanged.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "scenario-custom-properties_update",
"title": "Update scenario custom properties data",
"description": "Update scenario custom properties data (scenario-custom-properties): Merge-update custom properties data for a scenario; only the specified items are changed. Fails with IM013 if the scenario has no data yet — use scenario-custom-properties_create first.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId",
"customProperties"
],
"properties": {
"scenarioId": {
"type": "number",
"description": "The scenario ID to update custom properties data for"
},
"customProperties": {
"type": "object",
"description": "Custom properties to update, keyed by structure item name; unspecified items are left unchanged."
}
}
},
"annotations": {
"title": "Update scenario custom properties data",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
List organization audit logs (audit-logs): List the audit log entries of an organization: who changed what and when, across the organization and all of its teams. Entries carry no event-specific payload — call audit-logs_get with the organizationId and uuid from the entry to see that. Requires the Admin or Owner role on the organization.
Describe the returned information so the agent knows whether it will answer the request.
Inputs86/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The organization ID to list audit log entries for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
team
Filter by one or more teams, each given as a team ID or a team name. Discover the valid values with audit-logs_get-filters.
Clear enough to supply this argument.
dateFrom
Return entries triggered at or after this point in time, as an ISO 8601 date ('2026-09-01') or date-time ('2026-09-01T12:00:00.000Z')
Clear enough to supply this argument.
dateTo
Return entries triggered at or before this point in time, as an ISO 8601 date or date-time
Clear enough to supply this argument.
event
Filter by one or more event names, for example 'webhook_created'. Discover the valid values with audit-logs_get-filters.
Clear enough to supply this argument.
author
Filter by one or more actors, each given as a user ID, a user name, or an email address. Discover the valid values with audit-logs_get-filters.
Clear enough to supply this argument.
sortBy
Property to sort the entries by. Defaults to triggeredAt.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sortDir
Sort direction. Defaults to asc, so pass desc for the most recent entries first.
Clear enough to supply this argument.
limit
Maximum number of entries to return. Defaults to 100.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Number of matching entries to skip. Ignored when last is set.
Clear enough to supply this argument.
last
imtId of the last entry of the previous page, used for cursor pagination. Prefer this over offset when paging through a large result set.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "audit-logs_list",
"title": "List organization audit logs",
"description": "List organization audit logs (audit-logs): List the audit log entries of an organization: who changed what and when, across the organization and all of its teams. Entries carry no event-specific payload — call audit-logs_get with the organizationId and uuid from the entry to see that. Requires the Admin or Owner role on the organization.",
"inputSchema": {
"type": "object",
"required": [
"organizationId"
],
"properties": {
"last": {
"type": "string",
"description": "imtId of the last entry of the previous page, used for cursor pagination. Prefer this over offset when paging through a large result set."
},
"team": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by one or more teams, each given as a team ID or a team name. Discover the valid values with audit-logs_get-filters."
},
"event": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by one or more event names, for example 'webhook_created'. Discover the valid values with audit-logs_get-filters."
},
"limit": {
"type": "number",
"default": 100,
"maximum": 10000,
"minimum": 1,
"description": "Maximum number of entries to return. Defaults to 100."
},
"author": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by one or more actors, each given as a user ID, a user name, or an email address. Discover the valid values with audit-logs_get-filters."
},
"dateTo": {
"type": "string",
"description": "Return entries triggered at or before this point in time, as an ISO 8601 date or date-time"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of matching entries to skip. Ignored when last is set."
},
"sortBy": {
"enum": [
"triggeredAt",
"createdAt",
"eventName",
"targetId"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "triggeredAt"
},
{
"type": "string",
"const": "createdAt"
},
{
"type": "string",
"const": "eventName"
},
{
"type": "string",
"const": "targetId"
}
],
"description": "Property to sort the entries by. Defaults to triggeredAt."
},
"sortDir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "asc"
},
{
"type": "string",
"const": "desc"
}
],
"description": "Sort direction. Defaults to asc, so pass desc for the most recent entries first."
},
"dateFrom": {
"type": "string",
"description": "Return entries triggered at or after this point in time, as an ISO 8601 date ('2026-09-01') or date-time ('2026-09-01T12:00:00.000Z')"
},
"organizationId": {
"type": "number",
"description": "The organization ID to list audit log entries for"
}
}
},
"annotations": {
"title": "List organization audit logs",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
List team audit logs (audit-logs): List the audit log entries of a single team: who changed what and when within that team. Entries carry no event-specific payload — call audit-logs_get with the organizationId and uuid from the entry to see that. Use audit-logs_list instead to cover a whole organization.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID to list audit log entries for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
dateFrom
Return entries triggered at or after this point in time, as an ISO 8601 date ('2026-09-01') or date-time ('2026-09-01T12:00:00.000Z')
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
dateTo
Return entries triggered at or before this point in time, as an ISO 8601 date or date-time
Clear enough to supply this argument.
event
Filter by one or more event names, for example 'webhook_created'. Discover the valid values with audit-logs_get-filters-for-team.
Clear enough to supply this argument.
author
Filter by one or more actors, each given as a user ID, a user name, or an email address. Discover the valid values with audit-logs_get-filters-for-team.
Clear enough to supply this argument.
sortBy
Property to sort the entries by. Defaults to triggeredAt.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
sortDir
Sort direction. Defaults to asc, so pass desc for the most recent entries first.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum number of entries to return. Defaults to 100.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
offset
Number of matching entries to skip. Ignored when last is set.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
last
imtId of the last entry of the previous page, used for cursor pagination. Prefer this over offset when paging through a large result set.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "audit-logs_list-for-team",
"title": "List team audit logs",
"description": "List team audit logs (audit-logs): List the audit log entries of a single team: who changed what and when within that team. Entries carry no event-specific payload — call audit-logs_get with the organizationId and uuid from the entry to see that. Use audit-logs_list instead to cover a whole organization.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"last": {
"type": "string",
"description": "imtId of the last entry of the previous page, used for cursor pagination. Prefer this over offset when paging through a large result set."
},
"event": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by one or more event names, for example 'webhook_created'. Discover the valid values with audit-logs_get-filters-for-team."
},
"limit": {
"type": "number",
"default": 100,
"maximum": 10000,
"minimum": 1,
"description": "Maximum number of entries to return. Defaults to 100."
},
"author": {
"type": "array",
"items": {
"type": "string"
},
"description": "Filter by one or more actors, each given as a user ID, a user name, or an email address. Discover the valid values with audit-logs_get-filters-for-team."
},
"dateTo": {
"type": "string",
"description": "Return entries triggered at or before this point in time, as an ISO 8601 date or date-time"
},
"offset": {
"type": "number",
"minimum": 0,
"description": "Number of matching entries to skip. Ignored when last is set."
},
"sortBy": {
"enum": [
"triggeredAt",
"createdAt",
"eventName",
"targetId"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "triggeredAt"
},
{
"type": "string",
"const": "createdAt"
},
{
"type": "string",
"const": "eventName"
},
{
"type": "string",
"const": "targetId"
}
],
"description": "Property to sort the entries by. Defaults to triggeredAt."
},
"teamId": {
"type": "number",
"description": "The team ID to list audit log entries for"
},
"sortDir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"anyOf": [
{
"type": "string",
"const": "asc"
},
{
"type": "string",
"const": "desc"
}
],
"description": "Sort direction. Defaults to asc, so pass desc for the most recent entries first."
},
"dateFrom": {
"type": "string",
"description": "Return entries triggered at or after this point in time, as an ISO 8601 date ('2026-09-01') or date-time ('2026-09-01T12:00:00.000Z')"
}
}
},
"annotations": {
"title": "List team audit logs",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Get audit log detail (audit-logs): Get a single audit log entry together with its event-specific detail payload — the part the list tools omit. Call this to find out what actually changed in an event surfaced by audit-logs_list or audit-logs_list-for-team.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
organizationId
The ID of the organization the entry belongs to. Must match the entry, or the call is rejected.
Clear enough to supply this argument.
uuid
The uuid of the audit log entry, as returned by audit-logs_list or audit-logs_list-for-team (e.g. 'c37c7292-35cd-4dc4-9113-21b23beaea7d'). Hyphens are optional.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "audit-logs_get",
"title": "Get audit log detail",
"description": "Get audit log detail (audit-logs): Get a single audit log entry together with its event-specific detail payload — the part the list tools omit. Call this to find out what actually changed in an event surfaced by audit-logs_list or audit-logs_list-for-team.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"uuid"
],
"properties": {
"uuid": {
"type": "string",
"description": "The uuid of the audit log entry, as returned by audit-logs_list or audit-logs_list-for-team (e.g. 'c37c7292-35cd-4dc4-9113-21b23beaea7d'). Hyphens are optional."
},
"organizationId": {
"type": "number",
"description": "The ID of the organization the entry belongs to. Must match the entry, or the call is rejected."
}
}
},
"annotations": {
"title": "Get audit log detail",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Get organization audit log filters (audit-logs): Get the values accepted by the filters of audit-logs_list for an organization: selectable users for author, teams for team, and events for event. Call this first when building a filtered audit log query, so the filter values are real rather than guessed.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The organization ID to get audit log filter options for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "audit-logs_get-filters",
"title": "Get organization audit log filters",
"description": "Get organization audit log filters (audit-logs): Get the values accepted by the filters of audit-logs_list for an organization: selectable users for author, teams for team, and events for event. Call this first when building a filtered audit log query, so the filter values are real rather than guessed.",
"inputSchema": {
"type": "object",
"required": [
"organizationId"
],
"properties": {
"organizationId": {
"type": "number",
"description": "The organization ID to get audit log filter options for"
}
}
},
"annotations": {
"title": "Get organization audit log filters",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Get team audit log filters (audit-logs): Get the values accepted by the filters of audit-logs_list-for-team: selectable users for author and events for event. Call this first when building a filtered team audit log query, so the filter values are real rather than guessed.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The team ID to get audit log filter options for
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "audit-logs_get-filters-for-team",
"title": "Get team audit log filters",
"description": "Get team audit log filters (audit-logs): Get the values accepted by the filters of audit-logs_list-for-team: selectable users for author and events for event. Call this first when building a filtered team audit log query, so the filter values are real rather than guessed.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"teamId": {
"type": "number",
"description": "The team ID to get audit log filter options for"
}
}
},
"annotations": {
"title": "Get team audit log filters",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "apps_list",
"title": "List Apps",
"description": "Retrieves a list of Apps available for Scenario Building in the given Organization and Team.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId"
],
"properties": {
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team to list Apps for."
},
"orderBy": {
"anyOf": [
{
"type": "string",
"const": "score"
},
{
"type": "string",
"const": "name"
}
],
"default": "score",
"description": "Defines how the list of Apps should be sorted."
},
"appsKind": {
"anyOf": [
{
"type": "string",
"const": "sdk"
},
{
"type": "string",
"const": "native"
},
{
"type": "string",
"const": "all"
}
],
"default": "native",
"description": "Defines which kind of Apps should be listed."
},
"pageSize": {
"type": "integer",
"default": 64,
"maximum": 255,
"minimum": 1,
"description": "The number of Apps to return per page. There are thousands of Apps available, and loading them all at once can bloat the Context very quickly."
},
"pageNumber": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "The page number to return. This is useful for paginating through the list of Apps, especially when there are many Apps available."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization to list Apps for."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Retrieves a list of Modules available for the given App in the given Organization and Team. Every module of a premium app carries `premiumApp: true` and, when known, `premiumTier` (1 = paid plans only, 3 = Enterprise only); an organization whose plan is below that tier cannot run a scenario containing the app.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organizationId
The ID of the Organization to list App Modules for.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
Name of the App from which Modules should be listed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appVersion
Version of the App from which Modules should be listed.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
usage
Optionally applies usage filter to return only modules that are relevant for it.
Explain the meaning of this value, not just its name.
includeDeprecated
Includes deprecated modules in the results. It's not advised to use deprecated modules unless there's a very specific reason to do so.
Clear enough to supply this argument.
includePrivate
Includes private modules in the results. These aren't offered in the scenario editor, so only set this when the user explicitly asks for them.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "app-modules_list",
"title": "List App Modules",
"description": "Retrieves a list of Modules available for the given App in the given Organization and Team. Every module of a premium app carries `premiumApp: true` and, when known, `premiumTier` (1 = paid plans only, 3 = Enterprise only); an organization whose plan is below that tier cannot run a scenario containing the app.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"appName",
"appVersion"
],
"properties": {
"usage": {
"anyOf": [
{
"type": "string",
"const": "default"
},
{
"type": "string",
"const": "tool"
}
],
"default": "default",
"description": "Optionally applies usage filter to return only modules that are relevant for it."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App from which Modules should be listed."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App from which Modules should be listed."
},
"includePrivate": {
"type": "boolean",
"default": false,
"description": "Includes private modules in the results. These aren't offered in the scenario editor, so only set this when the user explicitly asks for them."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization to list App Modules for."
},
"includeDeprecated": {
"type": "boolean",
"default": false,
"description": "Includes deprecated modules in the results. It's not advised to use deprecated modules unless there's a very specific reason to do so."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Retrieves a single Module from the given App in the given Organization. A module of a premium app is annotated `premiumApp: true` and, when known, `premiumTier` (1 = paid plans only, 3 = Enterprise only) — in `_annotations` in JSON format; an organization whose plan is below that tier cannot run a scenario containing the app.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The ID of the Organization to get App Module for.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
appName
Name of the App from which Module should be retrieved.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appVersion
Version of the App from which Module should be retrieved.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
moduleName
Name of the Module to retrieve.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
format
Format of the output allowing transformation before being returned.
Clear enough to supply this argument.
includeAdvancedFields
Configures whether fields marked as "advanced" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "app-module_get",
"title": "Get App Module",
"description": "Retrieves a single Module from the given App in the given Organization. A module of a premium app is annotated `premiumApp: true` and, when known, `premiumTier` (1 = paid plans only, 3 = Enterprise only) — in `_annotations` in JSON format; an organization whose plan is below that tier cannot run a scenario containing the app.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"appName",
"appVersion",
"moduleName"
],
"properties": {
"format": {
"anyOf": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "instructions"
}
],
"default": "instructions",
"description": "Format of the output allowing transformation before being returned."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App from which Module should be retrieved."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App from which Module should be retrieved."
},
"moduleName": {
"type": "string",
"pattern": "^[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 48,
"minLength": 3,
"description": "Name of the Module to retrieve."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization to get App Module for."
},
"includeAdvancedFields": {
"type": "boolean",
"default": false,
"description": "Configures whether fields marked as \"advanced\" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Retrieves the manifest and form configuration of a hook TYPE (not a hook instance — use hooks_get for that). Use this to understand what fields are required when configuring a hook, e.g. before hooks_create.
Describe the returned information so the agent knows whether it will answer the request.
Inputs83/100
Explain the meaning of this value, not just its name.
typeName
The type name of the hook (e.g. "slack-events", "gateway-webhook", "gateway-mailhook"). This is a hook TYPE, not a hook instance — for an existing hook instance use hooks_get with its numeric hookId. Take type names from the webhook reference of app-modules_list / app-module_get or from the typeName of hooks_list entries; guessed names fail with "Failed to load manifest.json file".
Clear enough to supply this argument.
format
Format of the output allowing transformation before being returned.
Explain the meaning of this value, not just its name.
includeAdvancedFields
Configures whether fields marked as "advanced" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "hook-config_get",
"title": "Get Hook Configuration",
"description": "Retrieves the manifest and form configuration of a hook TYPE (not a hook instance — use hooks_get for that). Use this to understand what fields are required when configuring a hook, e.g. before hooks_create.",
"inputSchema": {
"type": "object",
"required": [
"typeName"
],
"properties": {
"format": {
"anyOf": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "instructions"
}
],
"default": "instructions",
"description": "Format of the output allowing transformation before being returned."
},
"typeName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "The type name of the hook (e.g. \"slack-events\", \"gateway-webhook\", \"gateway-mailhook\"). This is a hook TYPE, not a hook instance — for an existing hook instance use hooks_get with its numeric hookId. Take type names from the webhook reference of app-modules_list / app-module_get or from the typeName of hooks_list entries; guessed names fail with \"Failed to load manifest.json file\"."
},
"includeAdvancedFields": {
"type": "boolean",
"default": false,
"description": "Configures whether fields marked as \"advanced\" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Retrieves metadata of the given hook TYPE (not a hook instance — use hooks_get for that), or returns an error when the hook type doesn't exist.
Describe the returned information so the agent knows whether it will answer the request.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
typeName
Type name of the Hook to retrieve metadata for (e.g. "slack-events", "gateway-webhook"). This is a hook TYPE, not a hook instance — for an existing hook instance use hooks_get with its numeric hookId.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "hook-metadata_get",
"title": "Get Hook Metadata",
"description": "Retrieves metadata of the given hook TYPE (not a hook instance — use hooks_get for that), or returns an error when the hook type doesn't exist.",
"inputSchema": {
"type": "object",
"required": [
"typeName"
],
"properties": {
"typeName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Type name of the Hook to retrieve metadata for (e.g. \"slack-events\", \"gateway-webhook\"). This is a hook TYPE, not a hook instance — for an existing hook instance use hooks_get with its numeric hookId."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Executes a Make Remote Procedure Call (RPC) with the provided input.
Before executing an RPC, be sure you know its exact name and the input parameters that should be passed to the 'data' field.
There is no RPC-listing tool — never guess RPC names. Discover them via 'app-module_get' (requires the
'apps:read' scope): the module's parameter instructions reference the RPCs it uses (e.g. as 'rpc://...'
option sources). If 'app-module_get' is not available in this conversation, ask the user for the exact RPC name.
You can also use RPCs to provide answers for simple "read" or "list" queries, if the corresponding RPC is available,
so it's not needed to create a full Tool to achieve such a thing.
The description explains the capability, when to use it, and what to expect.
Inputs70/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
Name of the App from which the RPC should be executed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appVersion
Version of the App from which the RPC should be executed.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
rpcName
Name of the RPC to be executed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
data
Object containing input values of the RPC.
Explain the meaning of this value, not just its name.
format
Format of the output allowing transformation before being returned.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
includeAdvancedFields
Configures whether fields marked as "advanced" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "rpc_execute",
"title": "Execute RPC",
"description": "Executes a Make Remote Procedure Call (RPC) with the provided input.\n\tBefore executing an RPC, be sure you know its exact name and the input parameters that should be passed to the 'data' field.\n\tThere is no RPC-listing tool — never guess RPC names. Discover them via 'app-module_get' (requires the\n\t'apps:read' scope): the module's parameter instructions reference the RPCs it uses (e.g. as 'rpc://...'\n\toption sources). If 'app-module_get' is not available in this conversation, ask the user for the exact RPC name.\n\tYou can also use RPCs to provide answers for simple \"read\" or \"list\" queries, if the corresponding RPC is available,\n\tso it's not needed to create a full Tool to achieve such a thing.",
"inputSchema": {
"type": "object",
"required": [
"appName",
"appVersion",
"rpcName",
"data"
],
"properties": {
"data": {
"type": "object",
"description": "Object containing input values of the RPC.",
"additionalProperties": true
},
"format": {
"anyOf": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "form_instructions"
},
{
"type": "string",
"const": "interface_instructions"
},
{
"type": "string",
"const": "options_instructions"
},
{
"type": "string",
"const": "path_instructions"
}
],
"default": "json",
"description": "Format of the output allowing transformation before being returned."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App from which the RPC should be executed."
},
"rpcName": {
"type": "string",
"pattern": "^(?:(?:epoch|attach|detach|update):)?[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 55,
"minLength": 3,
"description": "Name of the RPC to be executed."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App from which the RPC should be executed."
},
"includeAdvancedFields": {
"type": "boolean",
"default": false,
"description": "Configures whether fields marked as \"advanced\" should be returned in the output, by default these are omitted. This option is effective only for output formats that return schemas or their fragments."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Based on the user's intention, recommend applications that can assist in achieving their goals. This tool should provide a list of applications that are relevant to the user's needs, including their names and versions.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
intention
The intention for which the recommended apps are requested. This should be a clear and concise description of the user's needs or goals.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "apps_recommend",
"title": "Get Recommended Apps",
"description": "Based on the user's intention, recommend applications that can assist in achieving their goals. This tool should provide a list of applications that are relevant to the user's needs, including their names and versions.",
"inputSchema": {
"type": "object",
"required": [
"intention"
],
"properties": {
"intention": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "The intention for which the recommended apps are requested. This should be a clear and concise description of the user's needs or goals."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
Shorten the title to an action and subject; move usage details into the description.
Description74/100
This tool creates a new Tool in the system based on provided parameters.
It allows users to define custom tools that can be used in various scenarios.
Use it to add new functionalities to the platform by specifying tool details.
Use this tool also when you're tasked to perform a simple action.
It's easier to configure a tool rather than a whole Scenario.
Important! Before creating a tool, call 'app-module_get' to check how the module should actually be mapped,
then create the mapping, and only then create the tool with this mapping.
Even more important is to call 'app-module_get' with the 'instructions' format requested.
That way, you'll get perfect instructions for how to fill in the module's configuration.
Don't create unnecessary inputs. Create them only for values that should be dynamic,
hardcode everything else in the module parameters.
When the Module requires a Credential (Connection or Key) to be set,
list the existing connections or keys of the corresponding type to see if there are any available.
If there are available connections or keys for the Module, ask the user whether they want to use one of the available connections or keys.
When asking this question, also provide the user with an option to not use available connections, and to create a new connection or key instead.
In case user chooses an option to create a new connection or key, you should request the User to provide you with a new Connection or Key, for that, use the Credential Request Create Tool.
In case there are no available connections or keys of the corresponding type for the Module you are creating,
you should also request the User to provide you with a new Connection or Key, for that, use the Credential Request Create Tool.
If you need to run the Tool, use 'scenarios_run', passing the Tool ID as the scenarioId.
Note: a Tool's blueprint cannot be edited via 'scenarios_update' — use 'tools_update' instead.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
The ID of the Team under which the Tool will be created.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
The name of the Tool.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
A brief description of what the Tool does.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
inputs › items › name
The name of the input parameter.
Explain the meaning of this value, not just its name.
inputs › items › type
The data type of the input parameter. This uses the Make Parameter types, like "text", "integer" and so on.
Clear enough to supply this argument.
inputs › items › required
Whether this input is required.
Clear enough to supply this argument.
inputs › items › description
A brief description of the input parameter.
Explain the meaning of this value, not just its name.
module › module
The identifier of the module to be used. packageName:moduleName format.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
module › version
The version of the module to be used.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
module › mapper
Mapper allows dynamic values to be interpolated. Whenever you need to create an input variable or map something else from a preceding module, use the mapper to define it here. Mapping is allowed through the IML, "{{...}}"
Clear enough to supply this argument.
module › parameters
Parameters can't contain anything dynamic. When inserting connections, hooks and so on, hardcode ID of an available one instead. You can't use the IML mappings here, meaning no "{{...}}" sequences.
Clear enough to supply this argument.
module › metadata
Metadata of the module, in the same shape as a blueprint module's "metadata" (e.g. {"expect": []}). Required — get the expected shape from app-module_get with the 'instructions' format.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "tools_create",
"title": "Create new Module Tool",
"description": "This tool creates a new Tool in the system based on provided parameters.\nIt allows users to define custom tools that can be used in various scenarios.\nUse it to add new functionalities to the platform by specifying tool details.\n\nUse this tool also when you're tasked to perform a simple action.\nIt's easier to configure a tool rather than a whole Scenario.\n\nImportant! Before creating a tool, call 'app-module_get' to check how the module should actually be mapped,\nthen create the mapping, and only then create the tool with this mapping.\nEven more important is to call 'app-module_get' with the 'instructions' format requested.\nThat way, you'll get perfect instructions for how to fill in the module's configuration.\n\nDon't create unnecessary inputs. Create them only for values that should be dynamic,\nhardcode everything else in the module parameters.\n\nWhen the Module requires a Credential (Connection or Key) to be set,\nlist the existing connections or keys of the corresponding type to see if there are any available.\nIf there are available connections or keys for the Module, ask the user whether they want to use one of the available connections or keys.\nWhen asking this question, also provide the user with an option to not use available connections, and to create a new connection or key instead.\nIn case user chooses an option to create a new connection or key, you should request the User to provide you with a new Connection or Key, for that, use the Credential Request Create Tool.\nIn case there are no available connections or keys of the corresponding type for the Module you are creating,\nyou should also request the User to provide you with a new Connection or Key, for that, use the Credential Request Create Tool.\n\nIf you need to run the Tool, use 'scenarios_run', passing the Tool ID as the scenarioId.\nNote: a Tool's blueprint cannot be edited via 'scenarios_update' — use 'tools_update' instead.",
"inputSchema": {
"type": "object",
"required": [
"teamId",
"name",
"description",
"inputs",
"module"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "The name of the Tool."
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type",
"required",
"description"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the input parameter."
},
"type": {
"type": "string",
"description": "The data type of the input parameter. This uses the Make Parameter types, like \"text\", \"integer\" and so on."
},
"required": {
"type": "boolean",
"description": "Whether this input is required."
},
"description": {
"type": "string",
"description": "A brief description of the input parameter."
}
}
},
"description": "\nAn array of input parameters that the Tool accepts.\nThese input parameters follow the Make Parameters syntax and are to be referenced as \"{{var.input.inputName}}\" in the module parameters.\nDon't create inputs for fields when you're told what values to use directly.\n"
},
"module": {
"type": "object",
"required": [
"module",
"version",
"mapper",
"parameters",
"metadata"
],
"properties": {
"mapper": {
"type": "object",
"description": "Mapper allows dynamic values to be interpolated. Whenever you need to create an input variable or map something else from a preceding module, use the mapper to define it here. Mapping is allowed through the IML, \"{{...}}\"",
"additionalProperties": true
},
"module": {
"type": "string",
"description": "The identifier of the module to be used. packageName:moduleName format."
},
"version": {
"type": "integer",
"minimum": 1,
"description": "The version of the module to be used."
},
"metadata": {
"type": "object",
"description": "Metadata of the module, in the same shape as a blueprint module's \"metadata\" (e.g. {\"expect\": []}). Required — get the expected shape from app-module_get with the 'instructions' format.",
"additionalProperties": true
},
"parameters": {
"type": "object",
"description": "Parameters can't contain anything dynamic. When inserting connections, hooks and so on, hardcode ID of an available one instead. You can't use the IML mappings here, meaning no \"{{...}}\" sequences.",
"additionalProperties": true
}
},
"description": "Details of the module that the Tool will encapsulate."
},
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team under which the Tool will be created."
},
"description": {
"type": "string",
"maxLength": 240,
"description": "A brief description of what the Tool does."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description68/100
This tool updates an existing Tool's details based on provided parameters.
It allows users to modify the properties of a Tool to keep it up-to-date with changing requirements.
Use it to refine or correct Tool information as needed.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs71/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
toolId
The ID of the Tool to be updated.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
The name of the Tool.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
description
A brief description of what the Tool does.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
inputs › items › name
The name of the input parameter.
Clear enough to supply this argument.
inputs › items › type
The data type of the input parameter. This uses the Make Parameter types, like "text", "integer" and so on.
Clear enough to supply this argument.
inputs › items › required
Whether this input is required.
Clear enough to supply this argument.
inputs › items › description
A brief description of the input parameter.
Clear enough to supply this argument.
module › module
The identifier of the module to be used. packageName:moduleName format.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
module › version
The version of the module to be used.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
module › mapper
Mapper allows dynamic values to be interpolated. Whenever you need to create an input variable or map something else from a preceding module, use the mapper to define it here. Mapping is allowed through the IML, "{{...}}"
Clear enough to supply this argument.
module › parameters
Parameters can't contain anything dynamic. When inserting connections, hooks and so on, hardcode ID of an available one instead. You can't use the IML mappings here, meaning no "{{...}}" sequences.
Clear enough to supply this argument.
module › metadata
Metadata of the module, in the same shape as a blueprint module's "metadata" (e.g. {"expect": []}). Required — get the expected shape from app-module_get with the 'instructions' format.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "tools_update",
"title": "Update existing Module Tool",
"description": "This tool updates an existing Tool's details based on provided parameters.\nIt allows users to modify the properties of a Tool to keep it up-to-date with changing requirements.\nUse it to refine or correct Tool information as needed.",
"inputSchema": {
"type": "object",
"required": [
"toolId"
],
"properties": {
"name": {
"type": "string",
"maxLength": 120,
"description": "The name of the Tool."
},
"inputs": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type",
"required",
"description"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the input parameter."
},
"type": {
"type": "string",
"description": "The data type of the input parameter. This uses the Make Parameter types, like \"text\", \"integer\" and so on."
},
"required": {
"type": "boolean",
"description": "Whether this input is required."
},
"description": {
"type": "string",
"description": "A brief description of the input parameter."
}
}
},
"description": "\nAn array of input parameters that the Tool accepts.\nThese input parameters follow the Make Parameters syntax and are to be referenced as \"{{var.input.inputName}}\" in the module parameters.\nDon't create inputs for fields when you're told what values to use directly.\n"
},
"module": {
"type": "object",
"required": [
"module",
"version",
"mapper",
"parameters",
"metadata"
],
"properties": {
"mapper": {
"type": "object",
"description": "Mapper allows dynamic values to be interpolated. Whenever you need to create an input variable or map something else from a preceding module, use the mapper to define it here. Mapping is allowed through the IML, \"{{...}}\"",
"additionalProperties": true
},
"module": {
"type": "string",
"description": "The identifier of the module to be used. packageName:moduleName format."
},
"version": {
"type": "integer",
"minimum": 1,
"description": "The version of the module to be used."
},
"metadata": {
"type": "object",
"description": "Metadata of the module, in the same shape as a blueprint module's \"metadata\" (e.g. {\"expect\": []}). Required — get the expected shape from app-module_get with the 'instructions' format.",
"additionalProperties": true
},
"parameters": {
"type": "object",
"description": "Parameters can't contain anything dynamic. When inserting connections, hooks and so on, hardcode ID of an available one instead. You can't use the IML mappings here, meaning no \"{{...}}\" sequences.",
"additionalProperties": true
}
},
"description": "Details of the module that the Tool will encapsulate."
},
"toolId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Tool to be updated."
},
"description": {
"type": "string",
"maxLength": 240,
"description": "A brief description of what the Tool does."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
This tool validates that parameters and mapper collection are correctly configured for a given module in a given app.
Use this tool before creating a new Make Tool or Make Scenario to verify that the configuration of modules is correct.
Use this tool to iterate towards a successful validation result.
Before generating parameters and mapper objects for the module,
learn instructions for filling them in by getting the module detail in the "instructions" format.
Required fields with declared defaults that you omitted are filled automatically, including fields
that only exist after remote resolution; when the result contains "appliedDefaults", the
"normalizedValues" object carries the filled configuration. When "valid" is true, send
"normalizedValues.default" as "parameters" and "normalizedValues.expect" as "mapper" instead of
inventing values for fields you did not see in the schema; when "valid" is false, fix the reported
errors on top of those objects first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs76/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organizationId
The ID of the Organization in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
The ID of the Team in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
Name of the App to which the module belongs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appVersion
Version of the App to which the module belongs.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
moduleName
The name of the module to validate the configuration for.
Clear enough to supply this argument.
parameters
Module "parameters" configuration to be validated. These are static parameters.
Clear enough to supply this argument.
mapper
Module "mapper" configuration to be validated. These are dynamic parameters.
Clear enough to supply this argument.
strict
Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary.
Clear enough to supply this argument.
states
Enables generation of Field States, which can be fed into Make Frontend Components for better user experience.
Clear enough to supply this argument.
schemas
Enables generation of fully expanded Forman schemas with all dynamic nested fields resolved.
Clear enough to supply this argument.
restoreExtras › parameters
Field-value map.
Explain the meaning of this value, not just its name.
restoreExtras › mapper
Field-value map.
Explain the meaning of this value, not just its name.
restoreExtras › default
Field-value map.
Explain the meaning of this value, not just its name.
restoreExtras › expect
Field-value map.
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "validate_module_configuration",
"title": "Validate Module Configuration",
"description": "This tool validates that parameters and mapper collection are correctly configured for a given module in a given app.\nUse this tool before creating a new Make Tool or Make Scenario to verify that the configuration of modules is correct.\nUse this tool to iterate towards a successful validation result.\nBefore generating parameters and mapper objects for the module,\nlearn instructions for filling them in by getting the module detail in the \"instructions\" format.\nRequired fields with declared defaults that you omitted are filled automatically, including fields\nthat only exist after remote resolution; when the result contains \"appliedDefaults\", the\n\"normalizedValues\" object carries the filled configuration. When \"valid\" is true, send\n\"normalizedValues.default\" as \"parameters\" and \"normalizedValues.expect\" as \"mapper\" instead of\ninventing values for fields you did not see in the schema; when \"valid\" is false, fix the reported\nerrors on top of those objects first.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"appName",
"appVersion",
"moduleName",
"parameters",
"mapper"
],
"properties": {
"mapper": {
"type": "object",
"description": "Module \"mapper\" configuration to be validated. These are dynamic parameters.",
"additionalProperties": true
},
"states": {
"type": "boolean",
"default": false,
"description": "Enables generation of Field States, which can be fed into Make Frontend Components for better user experience."
},
"strict": {
"type": "boolean",
"default": true,
"description": "Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary."
},
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team in which context the Validation should operate."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App to which the module belongs."
},
"schemas": {
"type": "boolean",
"default": false,
"description": "Enables generation of fully expanded Forman schemas with all dynamic nested fields resolved."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App to which the module belongs."
},
"moduleName": {
"type": "string",
"pattern": "^[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 48,
"minLength": 3,
"description": "The name of the module to validate the configuration for."
},
"parameters": {
"type": "object",
"description": "Module \"parameters\" configuration to be validated. These are static parameters.",
"additionalProperties": true
},
"restoreExtras": {
"type": "object",
"properties": {
"expect": {
"type": "object",
"description": "Field-value map.",
"additionalProperties": true
},
"mapper": {
"type": "object",
"description": "Field-value map.",
"additionalProperties": true
},
"default": {
"type": "object",
"description": "Field-value map.",
"additionalProperties": true
},
"parameters": {
"type": "object",
"description": "Field-value map.",
"additionalProperties": true
}
},
"description": "Dictionary of values to be stored as part of 'extra' entry in the field's restore object."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the Validation should operate."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description52/100
Validates the Epoch Configuration of particular Trigger Module.
Describe the concrete operation and its scope instead of restating the tool name.
Inputs77/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organizationId
The ID of the Organization in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
The ID of the Team in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
Name of the App to which the module belongs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appVersion
Version of the App to which the module belongs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
moduleName
The name of the module to validate the configuration for.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
parameters
Module "parameters" configuration. Since Epoch exists only on triggers, there are no dynamic parameters. This collection is not directly validated, but serves as context for RPC calls, which are based on the module configuration.
Clear enough to supply this argument.
epoch
Module "epoch" configuration to be validated. This collection represents settings for trigger pointer (what epoch to watch).
Clear enough to supply this argument.
strict
Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "validate_epoch_configuration",
"title": "Validate Epoch Configuration",
"description": "Validates the Epoch Configuration of particular Trigger Module.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"appName",
"appVersion",
"moduleName",
"parameters",
"epoch"
],
"properties": {
"epoch": {
"type": "object",
"description": "Module \"epoch\" configuration to be validated. This collection represents settings for trigger pointer (what epoch to watch).",
"additionalProperties": true
},
"strict": {
"type": "boolean",
"default": true,
"description": "Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary."
},
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team in which context the Validation should operate."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App to which the module belongs."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App to which the module belongs."
},
"moduleName": {
"type": "string",
"pattern": "^[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 48,
"minLength": 3,
"description": "The name of the module to validate the configuration for."
},
"parameters": {
"type": "object",
"description": "Module \"parameters\" configuration. Since Epoch exists only on triggers, there are no dynamic parameters. This collection is not directly validated, but serves as context for RPC calls, which are based on the module configuration.",
"additionalProperties": true
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the Validation should operate."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Validates the overall structure of the Scenario Blueprint against the Schema. STRUCTURAL check only — it does NOT verify that module names exist or that module parameters are correct, so a valid blueprint can still fail at scenarios_create with "Module not found". Verify module names via app-modules_list and module configurations via validate_module_configuration.
The description explains the capability, when to use it, and what to expect.
Inputs49/100
Explain the meaning of this value, not just its name.
blueprint
A blueprint of a Make Scenario.
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "validate_blueprint_schema",
"title": "Validate Blueprint Schema",
"description": "Validates the overall structure of the Scenario Blueprint against the Schema. STRUCTURAL check only — it does NOT verify that module names exist or that module parameters are correct, so a valid blueprint can still fail at scenarios_create with \"Module not found\". Verify module names via app-modules_list and module configurations via validate_module_configuration.",
"inputSchema": {
"type": "object",
"required": [
"blueprint"
],
"properties": {
"blueprint": {
"type": "object",
"description": "A blueprint of a Make Scenario.",
"additionalProperties": true
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Retrieves markdown documentation for the specific Make App.
Use when configuring Make Apps and Modules and when you need to learn more about the available capabilities.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
appName
Name of the App to get the documentation for.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "app_documentation_get",
"title": "Get App Documentation",
"description": "Retrieves markdown documentation for the specific Make App.\nUse when configuring Make Apps and Modules and when you need to learn more about the available capabilities.",
"inputSchema": {
"type": "object",
"required": [
"appName"
],
"properties": {
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App to get the documentation for."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description71/100
This tool validates that hook configuration values are correctly set for a given hook type.
Use this tool before creating a hook to verify that the configuration is correct.
Use this tool to iterate towards a successful validation result.
Before generating values, learn instructions by getting the hook config in the "instructions" format.
Describe the returned information so the agent knows whether it will answer the request.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organizationId
The ID of the Organization in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
The ID of the Team in which context the Validation should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
typeName
The type name of the hook to validate the configuration for (e.g. "slack-events", "gateway-webhook", "gateway-mailhook").
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
values
Hook configuration values to be validated against the form schema.
Explain the meaning of this value, not just its name.
strict
Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "validate_hook_configuration",
"title": "Validate Hook Configuration",
"description": "This tool validates that hook configuration values are correctly set for a given hook type.\nUse this tool before creating a hook to verify that the configuration is correct.\nUse this tool to iterate towards a successful validation result.\nBefore generating values, learn instructions by getting the hook config in the \"instructions\" format.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"typeName",
"values"
],
"properties": {
"strict": {
"type": "boolean",
"default": true,
"description": "Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary."
},
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team in which context the Validation should operate."
},
"values": {
"type": "object",
"description": "Hook configuration values to be validated against the form schema.",
"additionalProperties": true
},
"typeName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "The type name of the hook to validate the configuration for (e.g. \"slack-events\", \"gateway-webhook\", \"gateway-mailhook\")."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the Validation should operate."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description71/100
Use this tool to validate a typed Scenario Interface before applying changes. Either side (`input`, `output`) may be omitted; only the side(s) supplied are validated.
Describe the returned information so the agent knows whether it will answer the request.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
input
Scenario inputs as a Forman Schema definition. Each item must declare `name` (unique within the array, matches /^[a-zA-Z0-9_-]+$/) and `type` (one of `text`, `number`, `boolean`, `date`, `buffer`, `array`, `collection`). `help`, `default`, `required` and `multiline` are optional (`required` and `multiline` default to `false`; `multiline` applies to `text` items); nested `spec` arrays are required for `collection` / `array` items.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
output
Scenario outputs as a Forman Schema definition. Each item must declare `name` (unique within the array, matches /^[a-zA-Z0-9_-]+$/) and `type` (one of `text`, `number`, `boolean`, `date`, `buffer`, `array`, `collection`). `help`, `default`, `required` and `multiline` are optional (`required` and `multiline` default to `false`; `multiline` applies to `text` items); nested `spec` arrays are required for `collection` / `array` items.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
strict
Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "validate_scenario_interface",
"title": "Validate Scenario Interface",
"description": "Use this tool to validate a typed Scenario Interface before applying changes. Either side (`input`, `output`) may be omitted; only the side(s) supplied are validated.",
"inputSchema": {
"type": "object",
"properties": {
"input": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Scenario inputs as a Forman Schema definition. Each item must declare `name` (unique within the array, matches /^[a-zA-Z0-9_-]+$/) and `type` (one of `text`, `number`, `boolean`, `date`, `buffer`, `array`, `collection`). `help`, `default`, `required` and `multiline` are optional (`required` and `multiline` default to `false`; `multiline` applies to `text` items); nested `spec` arrays are required for `collection` / `array` items."
},
"output": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Scenario outputs as a Forman Schema definition. Each item must declare `name` (unique within the array, matches /^[a-zA-Z0-9_-]+$/) and `type` (one of `text`, `number`, `boolean`, `date`, `buffer`, `array`, `collection`). `help`, `default`, `required` and `multiline` are optional (`required` and `multiline` default to `false`; `multiline` applies to `text` items); nested `spec` arrays are required for `collection` / `array` items."
},
"strict": {
"type": "boolean",
"default": true,
"description": "Enforces strict validation mode, which is guarding against unknown parameters in the configuration. Don't turn off unless necessary."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
This tool analyzes a given Blueprint and extracts a list of various Connections, Keys, Hooks and other components that are required to be provided in order to map the Blueprint properly.
Use this tool to identify all necessary components to collect before creating a new Make Scenario based on the Blueprint.
The output will help in preparing the Scenario by ensuring all required resources are available.
Describe the returned information so the agent knows whether it will answer the request.
Inputs58/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The ID of the Organization in which context the extraction should operate.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The ID of the Team in which context the extraction should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
blueprint
A blueprint of a Make Scenario.
Explain the meaning of this value, not just its name.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "extract_blueprint_components",
"title": "Extract Components from Blueprint",
"description": "This tool analyzes a given Blueprint and extracts a list of various Connections, Keys, Hooks and other components that are required to be provided in order to map the Blueprint properly.\nUse this tool to identify all necessary components to collect before creating a new Make Scenario based on the Blueprint.\nThe output will help in preparing the Scenario by ensuring all required resources are available.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"blueprint"
],
"properties": {
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team in which context the extraction should operate."
},
"blueprint": {
"type": "object",
"description": "A blueprint of a Make Scenario.",
"additionalProperties": true
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the extraction should operate."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Extracts the list of Components required by the particular Module. Use to identify what Connections, Keys, Hooks and other resources are needed to work with the Module.
Describe the returned information so the agent knows whether it will answer the request.
Inputs82/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
organizationId
The ID of the Organization in which context the extraction should operate.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
teamId
The ID of the Team in which context the extraction should operate.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
appName
Name of the App to which the module belongs.
Clear enough to supply this argument.
appVersion
Version of the App to which the module belongs.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
moduleName
The name of the module to extract components from.
Clear enough to supply this argument.
includeOptions
When enabled, the Tool will also include available options for each extracted component, which are especially useful when configuring a module with Scoped Connections.
Clear enough to supply this argument.
moduleIdOverride
When extracting the Components from Module, an artificial single-module Blueprint is created to run the extraction on. By default, the generated Module ID is #1. This parameter allows overriding the generated value.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "extract_module_components",
"title": "Extract Components from Module",
"description": "Extracts the list of Components required by the particular Module. Use to identify what Connections, Keys, Hooks and other resources are needed to work with the Module.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"appName",
"appVersion",
"moduleName"
],
"properties": {
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team in which context the extraction should operate."
},
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App to which the module belongs."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App to which the module belongs."
},
"moduleName": {
"type": "string",
"pattern": "^[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 48,
"minLength": 3,
"description": "The name of the module to extract components from."
},
"includeOptions": {
"type": "boolean",
"description": "When enabled, the Tool will also include available options for each extracted component, which are especially useful when configuring a module with Scoped Connections."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the extraction should operate."
},
"moduleIdOverride": {
"type": "integer",
"minimum": 1,
"description": "When extracting the Components from Module, an artificial single-module Blueprint is created to run the extraction on. By default, the generated Module ID is #1. This parameter allows overriding the generated value."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Reports which connections and API keys a set of planned modules require, and which of the team's existing credentials already satisfy each requirement (with their ids). Each module returns one SLOT per required credential parameter; a slot's `options` are ALTERNATIVE provider types — any one of them satisfies the slot. Use it to verify a build plan before presenting it: pass every module the scenario will contain. Connections of a matching type whose granted scopes do NOT cover the slot's required scopes are listed separately in `existingInsufficientScopes` (re-auth candidates, never counted as satisfying). Modules that do not exist in the catalog for this organization are returned in `notFound`; credential types whose lookups transiently failed are listed in `failedLookups` (with human-readable diagnostics in `errors`) and must be treated as unknown rather than missing.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
organizationId
The ID of the Organization in which context the modules are resolved.
Clear enough to supply this argument.
teamId
The ID of the Team whose existing connections and keys are matched against the requirements.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
modules › items › appName
Name of the App to which the module belongs.
Clear enough to supply this argument.
modules › items › appVersion
Version of the App to which the module belongs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
modules › items › moduleName
The name of the module.
Explain the meaning of this value, not just its name.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "connection-requirements_get",
"title": "Get Connection Requirements for Planned Modules",
"description": "Reports which connections and API keys a set of planned modules require, and which of the team's existing credentials already satisfy each requirement (with their ids). Each module returns one SLOT per required credential parameter; a slot's `options` are ALTERNATIVE provider types — any one of them satisfies the slot. Use it to verify a build plan before presenting it: pass every module the scenario will contain. Connections of a matching type whose granted scopes do NOT cover the slot's required scopes are listed separately in `existingInsufficientScopes` (re-auth candidates, never counted as satisfying). Modules that do not exist in the catalog for this organization are returned in `notFound`; credential types whose lookups transiently failed are listed in `failedLookups` (with human-readable diagnostics in `errors`) and must be treated as unknown rather than missing.",
"inputSchema": {
"type": "object",
"required": [
"organizationId",
"teamId",
"modules"
],
"properties": {
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team whose existing connections and keys are matched against the requirements."
},
"modules": {
"type": "array",
"items": {
"type": "object",
"required": [
"appName",
"appVersion",
"moduleName"
],
"properties": {
"appName": {
"type": "string",
"pattern": "^(app(#|%23))?[a-z][0-9a-z-]{1,30}[0-9a-z]$",
"maxLength": 38,
"minLength": 3,
"description": "Name of the App to which the module belongs."
},
"appVersion": {
"type": "integer",
"minimum": 0,
"description": "Version of the App to which the module belongs."
},
"moduleName": {
"type": "string",
"pattern": "^[a-zA-Z][0-9a-zA-Z]{1,46}[0-9a-zA-Z]$",
"maxLength": 48,
"minLength": 3,
"description": "The name of the module."
}
},
"additionalProperties": false
},
"maxItems": 20,
"minItems": 1,
"description": "Every module the planned scenario will contain. Exact catalog names, never guessed."
},
"organizationId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Organization in which context the modules are resolved."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Starts learning mode ("Detect new values") on a webhook/mailhook: the hook determines its incoming data structure from the next request it receives, without the scenario running. Learning stops automatically once data arrives.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
hookId
The ID of the Hook (webhook/mailhook).
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "hooks_learn_start",
"title": "Start Webhook Data Structure Detection",
"description": "Starts learning mode (\"Detect new values\") on a webhook/mailhook: the hook determines its incoming data structure from the next request it receives, without the scenario running. Learning stops automatically once data arrives.",
"inputSchema": {
"type": "object",
"required": [
"hookId"
],
"properties": {
"hookId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Hook (webhook/mailhook)."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Returns the live status of a webhook/mailhook: its address, whether it is attached to a scenario, whether learning mode ("Detect new values") is active, and whether it is gone. `learning: false` after a learn-start means the data structure was captured (or learning was stopped).
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
hookId
The ID of the Hook (webhook/mailhook).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "hooks_ping",
"title": "Ping Webhook",
"description": "Returns the live status of a webhook/mailhook: its address, whether it is attached to a scenario, whether learning mode (\"Detect new values\") is active, and whether it is gone. `learning: false` after a learn-start means the data structure was captured (or learning was stopped).",
"inputSchema": {
"type": "object",
"required": [
"hookId"
],
"properties": {
"hookId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Hook (webhook/mailhook)."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "data-structures_generate",
"title": "Generate Data Structure Definition",
"description": "Generates Data Structure Definition in Make Parameters Format from the sample data provided as input.",
"inputSchema": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"description": "The input data from which the specification should be generated. The content of this field should match the format specified in the 'type' field."
},
"type": {
"anyOf": [
{
"type": "string",
"const": "json"
},
{
"type": "string",
"const": "xml"
},
{
"type": "string",
"const": "form"
},
{
"type": "string",
"const": "query"
}
],
"default": "json",
"description": "The format of the input data from which the specification should be generated."
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Renders an interactive UI in the chat — a searchable, folder-filterable, sortable list of the team's scenarios showing each scenario's status, used apps, and usage. Only call this when the user explicitly wants the list displayed. Do NOT call this while iterating/authoring — use `scenarios_list` instead, which returns the same data without rendering a UI.
The description explains the capability, when to use it, and what to expect.
Inputs85/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
teamId
The ID of the Team whose scenarios should be listed.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
folderId
Optional. Restrict the listing to scenarios in this folder or any of its subfolders. Applied as a server-side filter on the underlying query.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
search
Optional. Restrict the listing to scenarios matching this term. Case-insensitive; split on whitespace into tokens, and a scenario matches when EVERY token is a substring of its NAME, its FOLDER name, or one of the APP names it uses (different tokens may match different fields). Applied in memory over the team's fetched scenarios, mirroring Make's own scenario list.
Clear enough to supply this argument.
orderBy
Optional. Sort order — one of `lastEdited` (most recently edited first), `nameAsc` (A→Z), `nameDesc` (Z→A), `createdNewest`, `createdOldest`, or `creditsHighest` (heaviest usage of the last 30 days first — ordered by operations, mirroring Make's own "Credit usage: highest (30d)" option, while the rows display credits); any other value falls back to the default ordering. Applied server-side; the rendered list always shows active scenarios first.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
status
Optional. Restrict the listing — one of `all` (default, no filter), `active` (turned on), `inactive` (turned off — this includes scenarios that were stopped because of an error), or `error` (stopped because its configuration became invalid — may be switched on or off underneath); any other value is treated as `all`. Applied in memory over the team's fetched scenarios.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "show_scenarios_list",
"title": "Show scenarios",
"description": "Renders an interactive UI in the chat — a searchable, folder-filterable, sortable list of the team's scenarios showing each scenario's status, used apps, and usage. Only call this when the user explicitly wants the list displayed. Do NOT call this while iterating/authoring — use `scenarios_list` instead, which returns the same data without rendering a UI.",
"inputSchema": {
"type": "object",
"required": [
"teamId"
],
"properties": {
"search": {
"type": "string",
"description": "Optional. Restrict the listing to scenarios matching this term. Case-insensitive; split on whitespace into tokens, and a scenario matches when EVERY token is a substring of its NAME, its FOLDER name, or one of the APP names it uses (different tokens may match different fields). Applied in memory over the team's fetched scenarios, mirroring Make's own scenario list."
},
"status": {
"type": "string",
"description": "Optional. Restrict the listing — one of `all` (default, no filter), `active` (turned on), `inactive` (turned off — this includes scenarios that were stopped because of an error), or `error` (stopped because its configuration became invalid — may be switched on or off underneath); any other value is treated as `all`. Applied in memory over the team's fetched scenarios."
},
"teamId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the Team whose scenarios should be listed."
},
"orderBy": {
"type": "string",
"description": "Optional. Sort order — one of `lastEdited` (most recently edited first), `nameAsc` (A→Z), `nameDesc` (Z→A), `createdNewest`, `createdOldest`, or `creditsHighest` (heaviest usage of the last 30 days first — ordered by operations, mirroring Make's own \"Credit usage: highest (30d)\" option, while the rows display credits); any other value falls back to the default ordering. Applied server-side; the rendered list always shows active scenarios first."
},
"folderId": {
"type": "integer",
"minimum": 1,
"description": "Optional. Restrict the listing to scenarios in this folder or any of its subfolders. Applied as a server-side filter on the underlying query."
}
}
},
"annotations": {
"title": "Show scenarios",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Renders a scenario’s execution history as an interactive widget in the chat — each past run with its status, trigger type, duration, and consumption. Only call this when the user explicitly wants the history displayed. Do NOT call this while iterating/debugging — use `executions_list` instead, which returns the same data without rendering a UI.
The description explains the capability, when to use it, and what to expect.
Inputs89/100
Input documentation gives an agent enough context to populate the arguments.
scenarioId
The ID of the scenario whose execution history to display.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "show_executions_list",
"title": "Show execution history",
"description": "Renders a scenario’s execution history as an interactive widget in the chat — each past run with its status, trigger type, duration, and consumption. Only call this when the user explicitly wants the history displayed. Do NOT call this while iterating/debugging — use `executions_list` instead, which returns the same data without rendering a UI.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"scenarioId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the scenario whose execution history to display."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Show execution history",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Renders a scenario execution’s outcome — status, outputs, and consumption — as an interactive widget in the chat, for a past or in-progress run. Only call this when the user explicitly wants the result displayed. Do NOT call this to check on a run you just triggered — `scenarios_run` already renders its own live-updating result and needs no follow-up call. For headless status/output checks while iterating, use `executions_get`/`executions_get-detail` instead. A `RUNNING` status means the execution is still in progress. Requires the `scenarios:read` scope on the scenario’s team: on “Insufficient rights” or “Access denied”, verify the scenarioId via `scenarios_list` instead of retrying — the scenario likely belongs to a team your token cannot read. On “Too Many Requests”, stop polling and wait before the next call.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scenarioId
The ID of the scenario the execution belongs to.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
executionId
The execution to inspect; omit to fetch only the scenario name/team.
Clear enough to supply this argument.
includeOutputs
Whether to include the execution's outputs in the response. Defaults to true.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "show_execution_result",
"title": "Show execution result",
"description": "Renders a scenario execution’s outcome — status, outputs, and consumption — as an interactive widget in the chat, for a past or in-progress run. Only call this when the user explicitly wants the result displayed. Do NOT call this to check on a run you just triggered — `scenarios_run` already renders its own live-updating result and needs no follow-up call. For headless status/output checks while iterating, use `executions_get`/`executions_get-detail` instead. A `RUNNING` status means the execution is still in progress. Requires the `scenarios:read` scope on the scenario’s team: on “Insufficient rights” or “Access denied”, verify the scenarioId via `scenarios_list` instead of retrying — the scenario likely belongs to a team your token cannot read. On “Too Many Requests”, stop polling and wait before the next call.",
"inputSchema": {
"type": "object",
"required": [
"scenarioId"
],
"properties": {
"scenarioId": {
"type": "integer",
"minimum": 1,
"description": "The ID of the scenario the execution belongs to."
},
"executionId": {
"type": "string",
"description": "The execution to inspect; omit to fetch only the scenario name/team."
},
"includeOutputs": {
"type": "boolean",
"description": "Whether to include the execution's outputs in the response. Defaults to true."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Show execution result",
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Get environmentLists the Make zone, organizations, and teams reachable through this connection, including private spaces.
02Get current userGet current user (users): Returns the current user profile.
03List public templatesList public templates (public-templates): Search and list public (approved) templates available for anyone.
04Get Recommended AppsBased on the user's intention, recommend applications that can assist in achieving their goals.
05Get scenarioGet scenario (scenarios): Get a scenario and its blueprint by ID.
Want to run these tasks against your MCP server with us?
scenarios_listscenarios_getscenarios_createscenarios_updatescenarios_deletescenarios_activatescenarios_deactivatescenarios_runscenarios_interfacescenarios_set_interfaceconnections_listconnections_get+55 more
Make MCP Server setup, tools, quality score, publishing readiness, and alternatives.
How do I add Make MCP Server to Claude, ChatGPT, or Cursor?
Add Make MCP Server to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.make.com/. This server requires OAuth, so complete the login prompt after you connect.
Is Make MCP Server MCP ready for ChatGPT and Claude?
As of October 16, 2026, Make MCP Server scores 90/100 on Manufact's MCP publishing checklist. The scan does not yet meet ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is Make MCP Server's MCP tool documentation?
As of October 16, 2026, Make MCP Server scores 73/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 133 of 133 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the Make MCP Server MCP server provide?
Make MCP Server lists 67 MCP tools, including scenarios_list, scenarios_get, scenarios_create, scenarios_update, scenarios_delete, scenarios_activate, scenarios_deactivate, scenarios_run, scenarios_interface, scenarios_set_interface, connections_list, and connections_get.
What are the best alternatives to Make MCP Server?
As of October 20, 2026, alternatives to Make MCP Server in automation-workflows on the Manufact MCP leaderboard include Sidewave Maggiordomo, Corsair Cloud, Fleet Workspace, Whalesync, and typenode-mcp.
Does Make MCP Server MCP require authentication?
Make MCP Server requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can Make MCP Server improve its MCP documentation?
validate_scheduling_schema is the lowest-scoring reviewed tool at 58/100. No output schema is declared. Add one for structured results so clients can interpret returned fields. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Who develops Make MCP Server?
Make MCP Server is developed by Make. It is listed as partner on the Claude connector directory.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.