Skip to main content
Version: 12 - TBD

McpUserTool

class resources.mcp_user_tool.McpUserTool

Base class: Resource

A user-configured MCP tool exposed to LLM agents via tools/list and tools/call.

Each tool references a flow by flow_id; argument and result schemas come from that flow's input_schema / output_schema. Invoking the tool creates a flow execution and returns its output_value.

See the corresponding Flow Api class at McpUserTool

PropertyDescriptionTypeImport/Export
bundle_idReference to the bundle this record is associated with. Allowed for BUNDLE_REPOSITORY, CONNECTOR, CUSTOM_OBJECT, DEVOLUTIONS_CONFIG, EXECUTION, FILE, FLOW, LDAP_CONFIG, MCP_USER_TOOL, MESSAGE, OAUTH, OBJECT_TEMPLATE, PLUGIN, ROLE, SCHEDULE, SCHEDULER, SCHEMA, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for BUNDLE, ORGANIZATION, PROCESS, PROJECT, USER, WORKSPACE. Mutually exclusive with project_idUUID(as_uuid=False)both
bundle_nameThe name of the bundle. Will look up the bundle and set bundle_id.String(length=128)import only
commit_messageThe commit message for this change.Text()import only
created_atDateTime(timezone=True)export only
created_byUUID(as_uuid=False)export only
deleted_atWhen the record was moved to the trashbin. Null while the record is active.DateTime(timezone=True)import only
deleted_byUUID(as_uuid=False)import only
descriptionA multiline description of what this record is and does.Text()both
flow_idThe flow executed when an agent invokes this MCP tool.UUID(as_uuid=False)both
has_deprecationBoolean()export only
has_syntax_errorBoolean()export only
idUUID(as_uuid=False)neither
is_bundle_contentA flag to control if the resource is considered bundle content. Changes in bundle content mark the bundle as modified. Updating the bundle will modify the bundle content.Boolean()both
is_bundle_readonlyBoolean()neither
is_deletedWhether the record has been permanently deleted. Records in the trashbin are indicated by deleted_at instead.Boolean()export only
is_enabledWhen enabled, this tool is exposed via MCP tools/list and can be invoked.Boolean()export only
is_project_readonlyBoolean()neither
is_readonlyA flag to control if the record can be modified. Allowed for BUNDLE, BUNDLE_REPOSITORY, CONNECTOR, CUSTOM_OBJECT, DEVOLUTIONS_CONFIG, FILE, FLOW, MCP_USER_TOOL, OAUTH, OBJECT_TEMPLATE, PLUGIN, PROJECT, ROLE, SCHEDULE, SCHEDULER, SCHEMA, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for EXECUTION, LDAP_CONFIG, MESSAGE, ORGANIZATION, PROCESS, USER, WORKSPACEBoolean()both
location_inheritanceControls the project/bundle association of a newly created record when no project_id/project_name/bundle_id/bundle_name is specified in the create request. Depending on the record type different options are available:
location_inheritance record types description
created_by all use the same location as the identity which creates the record
default all use the "Default project" where applicable or "Workspace" for record types which cannot be in a project
wrapped_resource execution use the same location as the innermost resource which is wrapped
resource execution use the same location as the resource on which the execution is based on
Notes:
  • If a project_id/project_name/bundle_id/bundle_name is specified in the request, it always takes precedence.
  • The options wrapped_resource and resource only work with executions which are based on a resource, not with ad-hoc connections or executions of type "SCRIPT". If used with ad-hoc connections or "SCRIPT" it will fall back to default.
  • If the record being created cannot be associated with the specified location, the fallback to default will be used.
  • If location_inheritance is unset, the default value used depends on the type of identity which creates the record as well as the type of record which is created. If an execution is created by any identity which is not an execution, it defaults to wrapped_resource. In all other cases it defaults to created_by.
String(length=128)import only
modified_atDateTime(timezone=True)export only
modified_byUUID(as_uuid=False)export only
nameThe name of this record. Must be unique across a workspace.String(length=128)both
organization_idUUID(as_uuid=False)export only
pending_delete_commitBoolean()neither
pending_delete_identity_idUUID(as_uuid=False)neither
pending_operation_idUUID(as_uuid=False)neither
pending_restore_commitBoolean()neither
pending_restore_identity_idUUID(as_uuid=False)neither
pending_trash_commitBoolean()neither
pending_trash_identity_idUUID(as_uuid=False)neither
project_idReference to the project this record is associated with. Allowed for CONNECTOR, CUSTOM_OBJECT, DEVOLUTIONS_CONFIG, EXECUTION, FILE, FLOW, MCP_USER_TOOL, MESSAGE, OAUTH, OBJECT_TEMPLATE, PLUGIN, SCHEDULE, SCHEDULER, SCHEMA, SETTING, SYNC_CONFIG, TAG, VAULT_CONFIG, WEBHOOK, WRAPPER. Not allowed for BUNDLE, BUNDLE_REPOSITORY, LDAP_CONFIG, ORGANIZATION, PROCESS, PROJECT, ROLE, USER, WORKSPACE. Mutually exclusive with bundle_id.UUID(as_uuid=False)both
project_nameThe name of the project. Will look up the project and set project_id.String(length=128)import only
record_typeEnum('EXECUTION', 'MESSAGE', 'PROCESS', 'BUNDLE', 'BUNDLE_REPOSITORY', 'CONNECTOR', 'CUSTOM_OBJECT', 'DEVOLUTIONS_CONFIG', 'FILE', 'FLOW', 'LDAP_CONFIG', 'MCP_USER_TOOL', 'OAUTH', 'OBJECT_TEMPLATE', 'ORGANIZATION', 'PLUGIN', 'PROJECT', 'ROLE', 'SCHEDULE', 'SCHEDULER', 'SCHEMA', 'SETTING', 'SYNC_CONFIG', 'TAG', 'USER', 'VAULT_CONFIG', 'WEBHOOK', 'WORKSPACE', 'WRAPPER', name='recordtype')neither
recurse_pending_deleteBoolean()neither
recurse_pending_restoreBoolean()neither
recurse_pending_trashBoolean()neither
repository_pathThe path to the storing repository, relative to GIT_REPOSITORY_SAVE_PATHString(length=256)neither
resource_typeEnum('BUNDLE', 'BUNDLE_REPOSITORY', 'CONNECTOR', 'CUSTOM_OBJECT', 'DEVOLUTIONS_CONFIG', 'FILE', 'FLOW', 'LDAP_CONFIG', 'MCP_USER_TOOL', 'OAUTH', 'OBJECT_TEMPLATE', 'ORGANIZATION', 'PLUGIN', 'PROJECT', 'ROLE', 'SCHEDULE', 'SCHEDULER', 'SCHEMA', 'SETTING', 'SYNC_CONFIG', 'TAG', 'USER', 'VAULT_CONFIG', 'WEBHOOK', 'WORKSPACE', 'WRAPPER', name='resourcetype')neither
schema_versionString(length=128)both
timeout_secMaximum seconds the MCP server waits for the tool execution to finish before returning a timeout error with the execution id.Integer()both
track_in_gitShould new records automatically be tracked in git.Boolean()both
workspace_idUUID(as_uuid=False)export only