このMCPでできること
Enables AI clients to create, test, publish, and manage notification workflows.
ツール
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['prompt'], 'properties': {'prompt': {'type': 'string', 'minLength': 1, 'description': 'Outcome-oriented workflow authoring request. Describe the event or schedule, audience, recipient, message goal, data needed, timing, business rules, and unsubscribe intent. Let Dreamlit choose email styling unless the user gives specific style direction. For broadcasts, request a future send time instead of an immediate send.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Target project id for creating a new workflow draft.'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Existing workflow id to continue editing. Use get_workflow_and_preview_url first when changing an existing workflow.'}, 'userCurrentTimeIso': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': "User's current time as an ISO timestamp with offset, useful for relative schedule requests."}, 'userCurrentTimeZoneId': {'type': 'string', 'minLength': 1, 'description': 'IANA timezone id for the user, useful for repeating workflows and scheduled broadcasts.'}, 'userEmailStepComments': {'type': 'array', 'items': {'type': 'object', 'required': ['workflowStepId', 'comment', 'onCodeLineText', 'userHighlightedText'], 'properties': {'comment': {'type': 'string', 'minLength': 1, 'description': "User's requested change."}, 'onCodeLineText': {'type': 'string', 'minLength': 1, 'description': 'Nearby email editor text for anchoring the comment.'}, 'workflowStepId': {'type': 'string', 'minLength': 1, 'description': 'Workflow step id that the user commented on.'}, 'userHighlightedText': {'type': 'string', 'minLength': 1, 'description': 'Specific text selected by the user.'}}}, 'description': 'Optional inline comments for revising email step content.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view'], 'properties': {'sort': {'type': 'object', 'required': ['field'], 'properties': {'dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Defaults to desc.'}, 'field': {'enum': ['timestamp', 'sentTo', 'subject', 'workflow', 'engagement', 'recipient', 'lastSentAt', 'sent', 'opened', 'clicked', 'bounced', 'complained'], 'type': 'string', 'description': 'Sort field. Valid fields depend on the requested view.'}}, 'description': 'Optional row sort. Overview ignores sorting.'}, 'view': {'enum': ['overview', 'notifications', 'recipients', 'workflow_runs'], 'type': 'string', 'description': 'Analytics surface to query: overview cards, notification rows, recipient rows, or workflow run rows.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum rows to return. Defaults to 25 and is capped at 100.'}, 'range': {'type': 'object', 'properties': {'to': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Inclusive ISO timestamp upper bound.'}, 'from': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Inclusive ISO timestamp lower bound.'}}, 'description': "Optional explicit timestamp range. Overrides window and is applied to the view's primary timestamp."}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'Opaque pagination cursor from a previous get_analytics response.'}, 'window': {'enum': ['1h', '24h', '7d', '14d', '30d', '90d', 'all'], 'type': 'string', 'description': 'Relative analytics window. Defaults to 30d. Ignored when range is provided.'}, 'channel': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Notification channel for overview and notification analytics. Defaults to email. Recipient analytics are email-only.'}, 'filters': {'type': 'object', 'properties': {'topicIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 100, 'description': 'Email unsubscribe topic ids to include.'}, 'recipient': {'type': 'string', 'maxLength': 320, 'description': 'Email recipient search string.'}, 'startedAt': {'type': 'object', 'properties': {'to': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Inclusive ISO timestamp upper bound.'}, 'from': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$', 'description': 'Inclusive ISO timestamp lower bound.'}}, 'description': 'Workflow run started timestamp range. Only applies to workflow_runs.'}, 'engagement': {'enum': ['undelivered', 'bounced', 'complained', 'clicked', 'opened'], 'type': 'string', 'description': 'Email engagement filter.'}, 'runStatuses': {'type': 'array', 'items': {'enum': ['RUNNING', 'PAUSED', 'COMPLETED', 'FAILED', 'SKIPPED', 'CANCELLED'], 'type': 'string'}, 'maxItems': 6, 'description': 'Workflow run statuses to include. Only applies to workflow_runs.'}, 'workflowIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 100, 'description': 'Workflow ids to include.'}, 'workflowRunId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow run id to include for notification analytics.'}, 'slackWebhookIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 100, 'description': 'Slack webhook ids to include for Slack notification analytics.'}, 'workflowStepRunId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow step run id to include for notification analytics.'}, 'notificationStatuses': {'type': 'array', 'items': {'enum': ['sent', 'pending', 'releasable', 'failed', 'canceled', 'suppressed', 'opted_out'], 'type': 'string'}, 'maxItems': 7, 'description': 'Email notification lifecycle statuses to include.'}}, 'description': 'Optional analytics filters. Unsupported combinations return a clear error.'}, 'include': {'type': 'array', 'items': {'enum': ['summary', 'series', 'rows', 'recentEvents', 'segments'], 'type': 'string'}, 'maxItems': 5, 'description': 'Optional response sections to include. Defaults depend on the requested view.'}, 'timeZone': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'IANA timezone for daily series bucketing. Defaults to UTC.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Project id to query analytics from. Required when access is ambiguous.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Optional project id. Include it to return project setup, schema hints, and authoring context.'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Optional workflow id. Include it to return concise workflow state and preview URL.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to inspect before editing, verifying, or publishing.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of brand styles to return for this page.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based brand style offset for pagination. Use nextOffset from the previous response to fetch the next page.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Project id to list brand styles from. Required when access is ambiguous.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of projects to return.'}, 'search': {'type': 'string', 'maxLength': 200, 'description': 'Optional project name search string.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 80, 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of workflows to return for this page.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Zero-based workflow offset for pagination. Use nextOffset from the previous response to fetch the next page.'}, 'search': {'type': 'string', 'maxLength': 200, 'description': 'Optional workflow name or description search string.'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Project id to list workflows from. Required when access is ambiguous.'}, 'triggerFilters': {'type': 'array', 'items': {'enum': ['auth_email', 'database', 'broadcast', 'repeating', 'none'], 'type': 'string'}, 'description': 'Optional trigger type filters. Use broadcast only for one-time audience emails.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to validate and prepare for explicit publish approval.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflowId'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'description': 'Set to true only after the user explicitly confirms sending this selected test message. If omitted or false, Dreamlit returns confirmation_required and does not send.'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to unpublish and disable live triggers or schedules.'}}}
出力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['result'], 'properties': {'result': {'oneOf': [{'type': 'object', 'required': ['status', 'data'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'status': {'type': 'string', 'const': 'success'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'auth': {'type': 'object', 'required': ['reason'], 'properties': {'reason': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'type': 'string', 'const': 'auth_required'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'clarification'], 'properties': {'status': {'type': 'string', 'const': 'clarification_required'}, 'clarification': {'anyOf': [{'type': 'object', 'required': ['message', 'workflowId', 'projectId', 'orgId', 'chatSessionId', 'userMessageId', 'assistantMessageId', 'appUrls'], 'properties': {'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'workflows'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'chatSessionId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'userMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'assistantMessageId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'message', 'workflowId', 'projectId', 'orgId', 'testableMessages', 'appUrls'], 'properties': {'kind': {'type': 'string', 'const': 'test_message_selection'}, 'orgId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'projectId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'testableMessages': {'type': 'array', 'items': {'type': 'object', 'required': ['testTargetId', 'messageType', 'label', 'requiresRecipient'], 'properties': {'label': {'type': 'string'}, 'description': {'type': 'string'}, 'destination': {'type': 'string'}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'requiresRecipient': {'type': 'boolean'}}, 'additionalProperties': False}, 'minItems': 2}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'confirmation'], 'properties': {'status': {'type': 'string', 'const': 'confirmation_required'}, 'confirmation': {'anyOf': [{'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'publish'}, 'input': {'type': 'object', 'required': ['workflowId'], 'properties': {'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id to publish.'}, 'isSandboxed': {'type': 'boolean', 'description': 'Whether to publish in sandbox mode so notifications are held for inspection.'}, 'expectedUpdatedAtIso': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}, {'type': 'null'}], 'description': 'Workflow updatedAt timestamp returned by prepare_publish, used as a safety check.'}, 'expectedEditableVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Editable version id returned by prepare_publish, used as a safety check.'}, 'expectedPublishedVersionId': {'anyOf': [{'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, {'type': 'null'}], 'description': 'Published version id returned by prepare_publish, used as a safety check.'}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'confirm_publish'}, 'appUrls': {'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['kind', 'action', 'input', 'message', 'previewUrl', 'appUrls', 'summary', 'warnings'], 'properties': {'kind': {'type': 'string', 'const': 'send_workflow_test'}, 'input': {'type': 'object', 'required': ['workflowId', 'confirmSend'], 'properties': {'rowData': {'type': 'object', 'description': 'Optional sample data for rendering draft message variables during the test. If omitted, Dreamlit uses the same default preview data as the web builder when available.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'workflowId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Workflow id whose editable draft message should be tested.'}, 'confirmSend': {'type': 'boolean', 'const': True}, 'messageType': {'enum': ['email', 'slack'], 'type': 'string', 'description': 'Optional message type filter when selecting a draft message to test.'}, 'testTargetId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Structured test target id from testableMessages. Do not show this id to users; ask them to choose by message label.'}, 'testRecipientEmail': {'type': 'string', 'format': 'email', 'pattern': "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "Optional recipient for email tests. If omitted, Dreamlit sends to the authenticated user's email address."}}, 'additionalProperties': False}, 'action': {'type': 'string', 'const': 'send_workflow_test'}, 'appUrls': {'type': 'object', 'required': ['workflow', 'preview'], 'properties': {'preview': {'type': 'string', 'format': 'uri'}, 'workflow': {'type': 'string', 'format': 'uri'}, 'workflows': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'message': {'type': 'string'}, 'summary': {'type': 'array', 'items': {'type': 'string'}}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'previewUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}]}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'handoff'], 'properties': {'status': {'type': 'string', 'const': 'handoff_required'}, 'handoff': {'type': 'object', 'required': ['kind', 'reason', 'message', 'url', 'instructions'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'kind': {'type': 'string', 'const': 'browser'}, 'reason': {'type': 'string'}, 'message': {'type': 'string'}, 'instructions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'object', 'required': ['status', 'message'], 'properties': {'code': {'type': 'string'}, 'status': {'type': 'string', 'const': 'error'}, 'message': {'type': 'string'}, 'retryAfterSeconds': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}], 'description': 'Dreamlit MCP result. success responses contain data and appUrls when relevant; auth_required, clarification_required, confirmation_required, handoff_required, and error responses explain the next action.'}}, 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
neuron
Operates AI chatbots and messaging workflows across WhatsApp and social channels, including contacts, campaigns, conversations, p…
独行录 / opcmenu
Supports founder and company discovery, collaboration goals and tasks, events and signups, networking, messaging, profiles, produ…
mcp-server
Provides social-network functions for posts, comments, direct and group conversations, communities, moderation, collections, and …
FavCRM
Provides CRM operations for customers, leads, deals, bookings, memberships, campaigns, WhatsApp and SMS messaging, invoices, loya…
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Courier
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, a…
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
commsharbor
Manages permission-based email audiences, contacts, campaigns, transactional sends, billing, consent, and tenant audit trails.