FlowCastle
Ce que fait ce MCP
Enables users to build, edit, and deploy Telegram bots through FlowCastle’s hosted visual workflow platform.
Outils
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actions'], 'properties': {'flowId': {'type': 'string', 'description': 'Default flow id for actions in the batch that do not carry their own. Optional when every action targets an explicit flow.'}, 'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'data'], 'properties': {'data': {'type': 'object', 'description': 'Action payload. Shape depends on `action` — get_action_schema returns the required and optional fields per kind.', 'additionalProperties': {}}, 'action': {'enum': ['create_variable', 'create_block', 'update_block', 'create_link', 'create_flow', 'update_flow', 'create_broadcast', 'create_recurrence_schedule', 'attach_recurrence_to_broadcast', 'update_broadcast', 'create_sequence', 'update_sequence', 'create_folder', 'move_flow_to_folder', 'create_operation', 'run_operation', 'delete_block', 'delete_link', 'delete_flow', 'delete_operation', 'delete_broadcast', 'delete_variable', 'update_variable', 'create_media_from_url', 'create_knowledge_base', 'create_knowledge_base_text_document', 'update_knowledge_base_text_document', 'delete_knowledge_base_document', 'import_website_into_knowledge_base', 'update_custom_code_file', 'edit_custom_code_file'], 'type': 'string', 'description': 'The action kind to perform. Call get_action_schema for the required fields of each kind.'}, 'target': {'type': 'string', 'description': 'Id of the entity the action operates on (block, flow, variable, broadcast, ...). To reference an entity created earlier in the same batch, use its placeholder id — flow_1, block_1, var_1, broadcast_1, schedule_1, button_1, media_1, operation_1. get_action_schema lists the full placeholder set.'}, 'validation': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional assertions to check before applying, as returned by get_action_schema.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Ordered batch of at least one action, applied in array order. An invalid batch is rejected up front and applies nothing, but execution itself is NOT atomic: if an action fails mid-batch, execution stops there and the actions before it stay applied — re-read state before retrying.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'conversationId': {'type': 'string', 'description': 'Optional id used to group the resulting audit records under one editing session.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': 'Display name for the new application. Defaults to a localized "My First Application" when omitted or blank.'}, 'skipDefaultFlows': {'type': 'boolean', 'description': 'Set true to create an empty application with no seeded starter flows. Defaults to false.'}, 'preferredLanguage': {'type': 'string', 'description': 'Language for the seeded default flows and the default name. Only "en", "ru", and "es" are supported — any other value silently falls back to "en".'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['platformId'], 'properties': {'botId': {'type': 'string', 'description': 'Bot the contact belongs to. Optional only when the application has exactly one bot; otherwise the call fails listing the candidate bots.'}, 'email': {'type': 'string', 'description': 'Email address.'}, 'phone': {'type': 'string', 'description': 'Phone number.'}, 'status': {'enum': ['subscribed', 'unsubscribed'], 'type': 'string', 'description': 'Initial subscription status. Defaults to "subscribed".'}, 'lastName': {'type': 'string', 'description': 'Last name.'}, 'username': {'type': 'string', 'description': 'Platform username, without @.'}, 'firstName': {'type': 'string', 'description': 'First name.'}, 'variables': {'type': 'object', 'description': 'Contact variable values to set, as { "variableName": "value" }. Keys are variable NAMES or full folder paths (not ids); an unknown or ambiguous name fails the whole call before the contact is created.', 'additionalProperties': {'type': 'string'}}, 'platformId': {'type': 'string', 'minLength': 1, 'description': 'Required. Platform-side user id (e.g. the Telegram user id). Must be unique within the bot.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dueAt', 'reasonCode', 'reasonText'], 'properties': {'dueAt': {'type': 'string', 'description': 'Required. When it should surface, ISO 8601 and in the future, e.g. "2026-09-12T09:00:00Z".'}, 'contactId': {'type': 'string', 'description': 'Contact the reminder is about, as returned by list_contacts. Omit for a standalone reminder with no conversation behind it.'}, 'reasonCode': {'type': 'string', 'description': 'Required. Short machine-readable slug for why, e.g. "pricing_question".'}, 'reasonText': {'type': 'string', 'description': 'Required. One line a person will read when the reminder comes due.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Publish only to these bots. Omit to publish to every active bot of the application (the dashboard default). Ids that are not active, non-preview bots of this application are reported back in unknownBotIds and otherwise ignored.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation', 'input'], 'properties': {'botId': {'type': 'string'}, 'input': {'type': 'object', 'description': 'Operation-specific input from list_telegram_operations. Only documented fields are accepted.', 'additionalProperties': {}}, 'operation': {'enum': ['search_peers', 'get_peer_profile', 'get_sponsored_messages'], 'type': 'string'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'topics': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Topics whose rules you need, from the index (e.g. ["knowledgeBases","broadcasts"]).'}, 'actions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Action names whose contract you need, from the index (e.g. ["create_block","create_link"]).'}, 'blockTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Block types whose payload contract you need, from the index (e.g. ["MESSAGE","AI_TOOL_ROUTER"]).'}, 'actionKinds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'ACTION-block action kinds whose config you need, from the index (e.g. ["SET_VARIABLE","HTTP_REQUEST"]).'}, 'includeCore': {'type': 'boolean', 'description': 'Leave this out on your FIRST detail call: that call must return the batch contract, placeholder rules and always-on invariants (~9k characters), and the index does not contain them. Pass false only on LATER detail calls in the same session, to avoid receiving them again.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flowId', 'blockId'], 'properties': {'flowId': {'type': 'string', 'description': 'Required. Id of the flow that owns the block.'}, 'blockId': {'type': 'string', 'description': 'Required. Block id, as listed by get_flow_context for that flow.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcastId'], 'properties': {'endDate': {'type': 'string', 'description': 'End of the reporting window, same format as startDate. Defaults to now.'}, 'startDate': {'type': 'string', 'description': 'Start of the reporting window, as a date string parsable by Date (ISO 8601 such as "2026-07-01" or "2026-07-01T00:00:00Z" is safest). Defaults to the broadcast\'s creation time.'}, 'broadcastId': {'type': 'string', 'description': 'Required. Broadcast id, as returned by list_broadcasts.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcastId'], 'properties': {'broadcastId': {'type': 'string', 'description': 'Required. Broadcast id, as returned by list_broadcasts.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'contactId': {'type': 'string', 'description': 'Required. Contact id, as returned by list_contacts or send_message.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Max rows per stream (goals, clicks, flowRuns are capped independently), 1-100. Defaults to 20.'}, 'endDate': {'type': 'string', 'description': 'Only events at or before this time, same format as startDate. Omit for "up to now".'}, 'contactId': {'type': 'string', 'description': 'Required. Contact id, as returned by list_contacts or send_message.'}, 'startDate': {'type': 'string', 'description': 'Only events at or after this time, as a date string parsable by Date (ISO 8601 such as "2026-08-01" or "2026-08-01T00:00:00Z" is safest). Omit for the whole history. An unparsable value is rejected, never ignored.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'includeFlowRuns': {'type': 'boolean', 'description': "Also return this contact's raw flow execution log (what the bot actually ran, with errors) — the Logs tab rows, useful when analytics look wrong. Requires the view_logs permission on top of view. Defaults to false."}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'examples': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Example ids from the index. Same as listing them in sections.'}, 'sections': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Section and example ids from the index whose full text you need (e.g. ["input-collection","example-explicit-listener"]).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flowIds'], 'properties': {'flowIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'Between 1 and 5 flow ids to measure. Ids that are not flows of this workspace come back in unknownFlowIds.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flowId'], 'properties': {'flowId': {'type': 'string', 'description': 'Required. Flow id, as returned by get_workspace_summary or get_application_context.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Required. Example id exactly as returned by search_flow_examples.'}, 'includeSchemaExample': {'type': 'boolean', 'description': 'Set true to include the full action-batch example — much larger, but it is the part you adapt for apply_actions. Defaults to false.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['moduleKey'], 'properties': {'moduleKey': {'type': 'string', 'description': "Required. The module's stable key exactly as returned by get_module_catalog (not its display name)."}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'moduleVersion': {'type': 'string', 'description': 'Pin a specific version. Omit to resolve the installed version when the module is installed, falling back to the marketplace entry for that key.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['itemId'], 'properties': {'itemId': {'type': 'string', 'description': 'Required. Pulse item id, as returned by list_pulse_items.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'maximum': 90, 'minimum': 1, 'description': 'How many days back to count answers, between 1 and 90. Defaults to 30.'}, 'flowId': {'type': 'string', 'description': 'Survey flow id, from the listing this tool returns without arguments. Omit to list every survey of the workspace. An id that is not a survey flow of this workspace fails with MCP_SURVEY_FLOW_NOT_FOUND.'}, 'splitGoalKey': {'type': 'string', 'description': 'Optional goal key: each choice option is additionally split into the contacts that ever reached this goal and those that never did, which shows whether an answer predicts conversion.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['requestId'], 'properties': {'botId': {'type': 'string'}, 'requestId': {'type': 'string', 'format': 'uuid'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'maximum': 50, 'minimum': 1, 'description': 'Maximum variables to return. Defaults to 30; values above 50 are clamped to 50.'}, 'query': {'type': 'string', 'description': 'Case-insensitive substring filter matched against the variable name, full path, description, type, and scope. Omit to list without filtering.'}, 'scope': {'enum': ['all', 'application', 'bot', 'contact'], 'type': 'string', 'description': 'Restrict to one variable scope. Defaults to "all".'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'includeValues': {'type': 'boolean', 'description': 'Set true to include stored values, each previewed to 500 characters. Defaults to false — leave it off unless you need the data, since values may hold personal data. Secret variables remain redacted regardless.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'description': 'The import job id.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'flowId': {'type': 'string', 'description': 'Narrow the summary to one flow. Omit to summarize every flow in the application.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['siteUrl'], 'properties': {'siteUrl': {'type': 'string', 'description': 'The website, e.g. https://example.com. A deeper URL (https://example.com/docs) scopes the crawl to that path.'}, 'maxPages': {'type': 'integer', 'description': 'Page cap for this import (server limit applies).', 'exclusiveMinimum': 0}, 'includeBlog': {'type': 'boolean', 'description': 'Keep blog / news / article pages (default true).'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'audienceLocale': {'type': 'string', 'description': "Two-letter locale of the bot's audience, e.g. 'ru'."}, 'knowledgeBaseId': {'type': 'string', 'description': 'Add pages to this existing base. Omit to create a new one.'}, 'knowledgeBaseName': {'type': 'string', 'description': 'Name for the new base; defaults to the host.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['moduleKey', 'moduleVersion'], 'properties': {'moduleKey': {'type': 'string', 'minLength': 1, 'description': "Required. The module's stable key from get_module_catalog."}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'moduleVersion': {'type': 'string', 'minLength': 1, 'description': 'Required — the exact version string to install, as listed by get_module_catalog. There is no implicit "latest"; pick a concrete version.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'minimum': 1, 'description': '1-based page number. Defaults to 1.'}, 'botId': {'type': 'string', 'description': 'Only broadcasts belonging to this bot. Omit for all bots in the application.'}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Broadcasts per page, between 1 and 100.'}, 'status': {'enum': ['DRAFT', 'SCHEDULED', 'QUEUED', 'SENDING', 'SENT', 'PAUSED', 'CANCELLED'], 'type': 'string', 'description': 'Only broadcasts in this lifecycle state. Omit for all states.'}, 'isRecurring': {'type': 'boolean', 'description': 'True for recurring broadcasts only, false for one-off only. Omit for both.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'minimum': 1, 'description': '1-based page number. Defaults to 1.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Only contacts carrying at least one of these tags, by exact tag name (case-insensitive), e.g. ["utm: tgads_official_0905"]. A name no contact in scope carries is an error listing what is missing. Combine with tagIds (union).'}, 'botId': {'type': 'string', 'description': "Only contacts belonging to this bot (must be one of the application's bots). Omit for all bots in the application."}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Contacts per page, between 1 and 100. Defaults to 20.'}, 'search': {'type': 'string', 'description': 'Case-insensitive substring matched against first/last name, username, email, phone, and platformId. Omit to list without searching.'}, 'status': {'enum': ['subscribed', 'unsubscribed'], 'type': 'string', 'description': 'Only contacts with this subscription status ("subscribed" or "unsubscribed"). Omit for both.'}, 'tagIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Same as `tags`, by tag id (from list_contact_tags).'}, 'isActive': {'type': 'boolean', 'description': 'True for active contacts only, false for deactivated only. Omit for both.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string', 'description': "Count only contacts of this bot (must be one of the application's bots). Omit for all bots in the application."}, 'limit': {'type': 'number', 'maximum': 500, 'minimum': 1, 'description': 'Maximum tags to return, between 1 and 500. Defaults to 100.'}, 'search': {'type': 'string', 'description': 'Case-insensitive substring matched against the tag name, e.g. "utm:" for attribution tags or "_0905" for one campaign wave. Omit for all tags in use.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind'], 'properties': {'kind': {'enum': ['BLOCK_SENT', 'BUTTON_CLICK', 'BROADCAST_DELIVERED', 'GOAL'], 'type': 'string', 'description': 'Which event defines the audience: GOAL, BUTTON_CLICK, BLOCK_SENT, or BROADCAST_DELIVERED.'}, 'page': {'type': 'number', 'minimum': 1, 'description': '1-based page number. Defaults to 1.'}, 'botId': {'type': 'string', 'description': 'Only contacts of this bot. Omit for all bots in the application.'}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Contacts per page, between 1 and 100. Defaults to 20.'}, 'search': {'type': 'string', 'description': 'Case-insensitive substring matched against the contact name, username and platformId.'}, 'blockId': {'type': 'string', 'description': 'Required for kind BLOCK_SENT and BUTTON_CLICK. Block id, from get_flow_context or get_block_details.'}, 'endDate': {'type': 'string', 'description': 'Only events at or before this time, same format as startDate. Defaults to now.'}, 'goalKey': {'type': 'string', 'description': 'Required for kind GOAL. The goal key, e.g. "purchase".'}, 'buttonId': {'type': 'string', 'description': "For kind BUTTON_CLICK: narrow to one button. Format is `cb_{blockId}_{index}` over the block's buttons in editor order. Omit to count a click on any button of the block."}, 'startDate': {'type': 'string', 'description': 'Only events at or after this time (ISO 8601 date string). Omit for the whole history — that is what "ever achieved this goal" needs.'}, 'broadcastId': {'type': 'string', 'description': 'Required for kind BROADCAST_DELIVERED. Broadcast id, from list_broadcasts. Counts deliveries with status SENT, DELIVERED or READ.'}, 'buttonIndex': {'type': 'number', 'minimum': 0, 'description': 'For kind BUTTON_CLICK: alternative to buttonId, the 0-based button position. Ignored when buttonId is set.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'number', 'minimum': 1, 'description': '1-based page number. Defaults to 1.'}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Tasks per page, 1-100. Defaults to 20.'}, 'scope': {'enum': ['mine', 'unassigned', 'team', 'completed'], 'type': 'string', 'description': 'Whose work to list. `mine` requires a personal API key.'}, 'origin': {'enum': ['manual', 'ai_suggested', 'system_rule'], 'type': 'string', 'description': 'Who created it: a person, the AI analysis, or a deterministic rule.'}, 'search': {'type': 'string', 'description': "Substring match on the contact's name, username, or platform id."}, 'timing': {'enum': ['overdue', 'today', 'upcoming', 'snoozed'], 'type': 'string', 'description': 'Narrow by when the task is due. Omit for all open work.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'kind': {'enum': ['attention', 'recommendation'], 'type': 'string', 'description': '`attention` for observed problems, `recommendation` for proposed improvements. Omit for both.'}, 'page': {'type': 'number', 'minimum': 1, 'description': '1-based page number. Defaults to 1.'}, 'botId': {'type': 'string', 'description': 'Only items about this bot. Workspace-wide items, which belong to no single bot, are excluded when set.'}, 'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Items per page, 1-100. Defaults to 20.'}, 'status': {'enum': ['open', 'resolved', 'expired'], 'type': 'string', 'description': 'Lifecycle state. Defaults to `open`; pass another value to read closed history.'}, 'category': {'type': 'string', 'description': 'Exact detector category, e.g. "automation_execution_failures" or "broadcast_failed". Read the category off a listed item rather than guessing.'}, 'severity': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string', 'description': 'Only items at this severity. Omit for all.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'includeDismissed': {'type': 'boolean', 'description': 'Include items the workspace has dismissed or snoozed. Defaults to false.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string', 'description': 'The telegram_mtproto bot. Omit when the application has exactly one userbot.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string', 'description': "Only this bot's rows. Omit for every bot in the application."}, 'level': {'enum': ['INFO', 'WARNING', 'ERROR'], 'type': 'string', 'description': 'Only rows at this level. `ERROR` is the usual starting point.'}, 'limit': {'type': 'number', 'maximum': 200, 'minimum': 1, 'description': 'Rows (max 200, default 50) or groups (max 100, default 25) to return.'}, 'action': {'type': 'string', 'description': 'Exact action name, as it appears in the `action` field of a returned row.'}, 'flowId': {'type': 'string', 'description': 'Only rows produced while running this flow.'}, 'search': {'type': 'string', 'description': 'Substring match on the message or the error message.'}, 'blockId': {'type': 'string', 'description': 'Only rows produced by this block.'}, 'endDate': {'type': 'string', 'description': 'End of the window, ISO 8601. Defaults to now.'}, 'groupBy': {'enum': ['action', 'level', 'flow', 'bot', 'day', 'error'], 'type': 'string', 'description': 'Return a rollup grouped by this dimension instead of raw rows.'}, 'contactId': {'type': 'string', 'description': "Only rows for this contact — one person's trace through the bot."}, 'startDate': {'type': 'string', 'description': 'Start of the window, ISO 8601. Defaults to 24 hours before endDate.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string', 'description': 'Limit to messages handled by one bot. Omit to read across every bot of the application.'}, 'limit': {'type': 'number', 'description': 'Messages to return, 1-100. Defaults to 20.'}, 'cursor': {'type': 'string', 'description': 'Continue a previous read: pass the nextCursor value from the last response to get the next page of older messages. Omit to start from the newest.'}, 'endDate': {'type': 'string', 'description': 'Only messages at or before this moment. ISO 8601.'}, 'contactId': {'type': 'string', 'description': 'Limit to one conversation — the globally unique FlowCastle contact id. Find it with list_contacts.'}, 'direction': {'enum': ['incoming', 'outgoing'], 'type': 'string', 'description': 'incoming = messages from the user; outgoing = messages from the bot or a human agent. Omit for both sides interleaved.'}, 'startDate': {'type': 'string', 'description': 'Only messages at or after this moment. ISO 8601, e.g. "2026-08-01" or "2026-08-01T00:00:00Z".'}, 'actor_type': {'enum': ['contact', 'bot', 'agent'], 'type': 'string', 'description': 'Who wrote the message. Narrower than direction, which cannot tell a bot reply from a human one: agent = a person replying from Live Chat or over mail, so this is how you find the conversations automation did not finish. Omit for all three.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flowIds'], 'properties': {'flowIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'minItems': 1, 'description': 'Required. Ids of the ALREADY-APPLIED flows to test — normally the flows apply_actions just created or changed, taken from its idRemap. Flows they link into are compiled too but are not crawled as entries.'}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'title', 'steps'], 'properties': {'id': {'type': 'string', 'description': 'Short unique slug for this scenario, e.g. "buy_premium". The report keys its lines off it.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'minItems': 1, 'description': 'Ordered steps, alternating an ACTION with an ASSERTION about the reply to the action right before it. Each step is one object keyed by `do`: {"do":"start","command":"/start"}, {"do":"send","text":"..."}, {"do":"send_media","kind":"photo"|"video"|"audio"|"document","caption":"..."}, {"do":"tap","button":"<substring of the label>"}, {"do":"pay"}, {"do":"abandon_payment","text":"..."}, {"do":"resume_delays"}, {"do":"simulate_event","event":"member_join"}, {"do":"expect","anyOf":["verbatim fragment the bot really sends"],"not":["text that must NOT appear"]}, {"do":"expect_var","name":"<variable handle>","contains":"...","changed":true}, {"do":"seed_var","name":"...","value":"..."} (seed_var value "$SELF" becomes the simulated user id, for owner/admin gates), {"do":"as_contact","id":"user_b"} (every later step acts as a SECOND person — for anything two people do together: one builds or sends, the other sees it), {"do":"expect_peer_message","to":"user_b","contains":"..."}. A scenario with no expect / expect_var / expect_peer_message step asserts nothing. At most 15 steps; malformed steps are dropped rather than failing the run.'}, 'title': {'type': 'string', 'description': 'One line saying what the scenario checks — shown in the report.'}, 'assume': {'type': 'object', 'properties': {'aiOutput': {'type': 'string', 'description': 'The exact text EVERY AI step answers in this scenario. No AI runs in the simulator: unset, AI steps answer "[AI output]", so a condition comparing the AI-written variable takes its NO branch and a failure behind it is reported as inconclusive. Pin the value the branch under test compares against (e.g. "hot"). It does NOT steer an AI assistant block (AI_TOOL_ROUTER): its intent and tool branches cannot be reached in a test, pinned or not.'}, 'telegramMembership': {'enum': ['member', 'not_member'], 'type': 'string', 'description': 'What a Telegram membership gate reports. Default "member".'}}, 'description': 'Simulator assumptions this journey runs under.', 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 6, 'minItems': 1, 'description': 'Optional user journeys to replay on top of the smoke crawl. Omit to run the smoke layer alone.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of tag strings to filter by, e.g. ["payments","onboarding"]. Combined with query when both are given.'}, 'limit': {'type': 'number', 'maximum': 8, 'minimum': 1, 'description': 'Maximum examples to return, between 1 and 8. Values outside that range are rejected.'}, 'query': {'type': 'string', 'description': 'Free-text keyword matched against example titles, summaries, and tags. Omit to browse without filtering.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'maximum': 100, 'minimum': 1, 'description': 'Maximum flows to return. Defaults to 30; values above 100 are clamped to 100. Check `truncated` to detect a cut-off result set.'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'Required. Case-insensitive substring, at least 2 characters. Matched against text, not tokenised — search a distinctive phrase or a variable name rather than a single common word.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['flowId', 'contactIds'], 'properties': {'flowId': {'type': 'string', 'description': 'Required. Id of the already-applied INTERACTIVE flow to run. Broadcast and operation flows are rejected.'}, 'params': {'type': 'array', 'items': {'type': 'object', 'required': ['paramId', 'value'], 'properties': {'value': {'type': 'string'}, 'paramId': {'type': 'string'}}, 'additionalProperties': False}, 'description': "Optional. Literal values for the flow's declared input params (see `inputParams` in get_flow_context), keyed by param id. They are run-scoped — the flow reads them as {{param|<paramId>}} — and a required param left out rejects the whole call before anyone is messaged."}, 'contactIds': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50, 'minItems': 1, 'description': 'Required. Between 1 and 50 FlowCastle contact ids (from list_contacts) — NOT platform ids. Each one receives its own run of the flow.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'text': {'type': 'string', 'description': "Message body. Required unless media is passed; with media it becomes the caption (max 1024 characters) and may be omitted. `{{var|name}}` placeholders resolve against the recipient's variable context."}, 'botId': {'type': 'string', 'description': 'Bot to send from. Required in practice when targeting by platformId in a multi-bot application; without it the call succeeds only if exactly one contact matches, and otherwise fails listing the candidate bots.'}, 'media': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Required. Publicly reachable http(s) URL of the file; the platform downloads it from there.'}, 'type': {'enum': ['IMAGE', 'IMAGE_URL', 'VIDEO', 'VIDEO_NOTE', 'DOCUMENT', 'VOICE', 'STICKER'], 'type': 'string', 'description': "Attachment kind. Inferred from the URL's file extension when omitted; unrecognized extensions fall back to DOCUMENT."}, 'filename': {'type': 'string', 'description': "Filename shown for DOCUMENT sends. Defaults to the URL's basename."}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'Up to 10 attachments. Several items send as one album with `text` as the shared caption.'}, 'buttons': {'type': 'array', 'items': {'type': 'object', 'required': ['text'], 'properties': {'url': {'type': 'string', 'description': 'Where the button leads — http(s) or tg:// only. Set this OR flowId, never both.'}, 'text': {'type': 'string', 'description': 'Required. Label shown on the button.'}, 'flowId': {'type': 'string', 'description': "Id of an already-applied INTERACTIVE flow to run for the recipient when they tap the button (from apply_actions' idRemap or get_application_context). Broadcast and operation flows are rejected. Set this OR url, never both."}}, 'additionalProperties': False}, 'maxItems': 8, 'description': 'Up to 8 buttons, rendered one per row under the message. Each needs exactly one of url or flowId; the two kinds may be mixed. Rejected together with media.'}, 'contactId': {'type': 'string', 'description': 'Preferred way to target the recipient: the globally unique FlowCastle contact id. Supply either this or platformId.'}, 'platformId': {'type': 'string', 'description': 'Platform-side user id (e.g. the Telegram user id). NOT globally unique — unique only per bot — so pass botId alongside it when the application has more than one bot.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['groups'], 'properties': {'botId': {'type': 'string', 'description': 'The telegram_mtproto bot. Omit when the application has exactly one userbot.'}, 'groups': {'type': 'array', 'items': {'type': 'object', 'properties': {'mode': {'enum': ['joined', 'public_peek'], 'type': 'string', 'description': '"joined" (default) = passive updates for a chat the account is in; "public_peek" = poll a public chat without joining (max 10).'}, 'title': {'type': 'string', 'description': 'Optional display label shown in the dashboard panel.'}, 'chatId': {'type': 'string', 'description': 'Marked chat id (e.g. "-1004441063705") of a chat the account is in. Supply this or username.'}, 'username': {'type': 'string', 'description': 'Public @username or t.me link. Required for public_peek entries.'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'The complete replacement list. Empty array = watch every joined chat.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'botId': {'type': 'string', 'description': 'The telegram_mtproto bot. Omit when the application has exactly one userbot.'}, 'kinds': {'type': 'array', 'items': {'enum': ['group', 'channel', 'user'], 'type': 'string'}, 'description': 'Dialog kinds to import. Defaults to all three ("user" = the account\'s direct-message partners).'}, 'limit': {'type': 'integer', 'maximum': 5000, 'minimum': 1, 'description': 'How many most-recent dialogs to read from the account. Defaults to 1000.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': 'New display name. Omit to leave unchanged.'}, 'isActive': {'type': 'boolean', 'description': 'Set false to deactivate the application — its bots stop responding. Omit to leave unchanged.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'defaultLanguage': {'type': 'string', 'description': 'Default language for new flows. Only "en", "ru", and "es" are supported; any other value falls back to "en".'}, 'fallbackLanguage': {'type': 'string', 'description': 'Language for everyone else: the content language a contact gets when their own language is not one of the bot\'s languages (or unknown). Must be the default language or an enabled language; "" resets to the default language. Omit to leave unchanged.'}, 'incomingMessageFlowId': {'type': 'string', 'description': 'Flow to run for unmatched inbound messages. Required in practice when incomingMessageBehavior is EXECUTE_FLOW.'}, 'incomingMessageBehavior': {'enum': ['LIVE_CHAT', 'EXECUTE_FLOW'], 'type': 'string', 'description': 'What happens to an inbound message that matches no trigger: LIVE_CHAT routes it to a human operator, EXECUTE_FLOW runs the flow named by incomingMessageFlowId.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contactId'], 'properties': {'email': {'type': 'string', 'description': 'New email. Omit to leave unchanged; empty string clears it.'}, 'phone': {'type': 'string', 'description': 'New phone. Omit to leave unchanged; empty string clears it.'}, 'status': {'enum': ['subscribed', 'unsubscribed'], 'type': 'string', 'description': 'New subscription status ("subscribed" or "unsubscribed"). Omit to leave unchanged.'}, 'lastName': {'type': 'string', 'description': 'New last name. Omit to leave unchanged; empty string clears it.'}, 'username': {'type': 'string', 'description': 'New platform username. Omit to leave unchanged; empty string clears it.'}, 'contactId': {'type': 'string', 'description': 'Required. Contact id, as returned by list_contacts.'}, 'firstName': {'type': 'string', 'description': 'New first name. Omit to leave unchanged; empty string clears it.'}, 'variables': {'type': 'object', 'description': 'Contact variable values to set, as { "variableName": "value" }. Keys are variable NAMES or full folder paths (not ids). Only the listed variables change.', 'additionalProperties': {'type': 'string'}}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['taskId', 'action'], 'properties': {'dueAt': {'type': 'string', 'description': 'New due time for `reschedule`. ISO 8601, in the future.'}, 'action': {'enum': ['complete', 'reopen', 'snooze', 'reschedule'], 'type': 'string', 'description': 'complete: close it. reopen: reopen a completed one. snooze: push it out to a time. reschedule: change dueAt and/or reasonText.'}, 'reason': {'type': 'string', 'description': 'Optional completion reason stored with a `complete`. Defaults to "completed_by_user".'}, 'taskId': {'type': 'string', 'description': 'Required. Follow-up task id, as returned by list_follow_up_tasks.'}, 'reasonText': {'type': 'string', 'description': 'New reason line for `reschedule`.'}, 'snoozeUntil': {'type': 'string', 'description': 'Required for `snooze`. ISO 8601 timestamp in the future.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['itemId', 'action'], 'properties': {'note': {'type': 'string', 'description': 'Free-text note stored with a `resolve`. Required when overriding a critical item.'}, 'action': {'enum': ['acknowledge', 'resolve', 'dismiss', 'restore', 'snooze'], 'type': 'string', 'description': 'acknowledge: close it as seen. resolve: close it with a reason. dismiss/restore: hide or unhide a recommendation for the workspace. snooze: hide it from the workspace queue until a time.'}, 'itemId': {'type': 'string', 'description': 'Required. Pulse item id, as returned by list_pulse_items.'}, 'reason': {'type': 'string', 'description': 'Optional reason recorded with a `dismiss`, so a teammate can see why it was waved off.'}, 'snoozeUntil': {'type': 'string', 'description': 'Required for `snooze`. ISO 8601 timestamp in the future, e.g. "2026-09-15T09:00:00Z".'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'resolutionCode': {'enum': ['reviewed', 'no_action_needed', 'fixed_elsewhere'], 'type': 'string', 'description': 'Required for `resolve`. reviewed = looked at it, no_action_needed = not a real problem, fixed_elsewhere = handled outside the platform.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['actions'], 'properties': {'flowId': {'type': 'string', 'description': 'Default flow id for actions in the batch that do not carry their own. Optional when every action targets an explicit flow.'}, 'actions': {'type': 'array', 'items': {'type': 'object', 'required': ['action', 'data'], 'properties': {'data': {'type': 'object', 'description': 'Action payload. Shape depends on `action` — get_action_schema returns the required and optional fields per kind.', 'additionalProperties': {}}, 'action': {'enum': ['create_variable', 'create_block', 'update_block', 'create_link', 'create_flow', 'update_flow', 'create_broadcast', 'create_recurrence_schedule', 'attach_recurrence_to_broadcast', 'update_broadcast', 'create_sequence', 'update_sequence', 'create_folder', 'move_flow_to_folder', 'create_operation', 'run_operation', 'delete_block', 'delete_link', 'delete_flow', 'delete_operation', 'delete_broadcast', 'delete_variable', 'update_variable', 'create_media_from_url', 'create_knowledge_base', 'create_knowledge_base_text_document', 'update_knowledge_base_text_document', 'delete_knowledge_base_document', 'import_website_into_knowledge_base', 'update_custom_code_file', 'edit_custom_code_file'], 'type': 'string', 'description': 'The action kind to perform. Call get_action_schema for the required fields of each kind.'}, 'target': {'type': 'string', 'description': 'Id of the entity the action operates on (block, flow, variable, broadcast, ...). To reference an entity created earlier in the same batch, use its placeholder id — flow_1, block_1, var_1, broadcast_1, schedule_1, button_1, media_1, operation_1. get_action_schema lists the full placeholder set.'}, 'validation': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional assertions to check before applying, as returned by get_action_schema.'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Ordered batch of at least one action, applied in array order. An invalid batch is rejected up front and applies nothing, but execution itself is NOT atomic: if an action fails mid-batch, execution stops there and the actions before it stay applied — re-read state before retrying.'}, 'applicationId': {'type': 'string', 'description': 'Application (workspace) id. Optional: an application-scoped key (app_...) defaults to its own application, but a personal key (usr_...) has no default and omitting it fails with MCP_APPLICATION_REQUIRED. Call list_applications to get the id.'}, 'conversationId': {'type': 'string', 'description': 'Optional id used to group the resulting audit records under one editing session.'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
Postmark
Provides Postmark email delivery monitoring, including outbound messages, raw message details, delivery statistics, bounces, and …
MinuteMail
Provides temporary mailboxes, simulated inbound email, attachments, custom-domain verification, and mock OAuth identities for tes…
Slack channel name shape, value discarded
Checks the shape of Slack channel names without accessing Slack, alongside generic developer validation utilities.
E.164 shape, number discarded
Validates the shape of E.164 phone numbers without retaining the number.
mailto: shape, address discarded
Validates the shape of a mailto URI.
Slack Webhook Shape
Validates the shape of Slack webhook URLs without retaining secrets, alongside generic developer validation utilities.
furrow-forms
Provisions and manages form backends for websites, including form definitions, embed snippets, submissions, email notifications, …