iPaaS
Maia
API integration
Ship iPaaS features without building the integration. Full Maia API access via Proxy and 110+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Maia
Common scenarios for SaaS companies building Maia integrations for their customers.
Embed Maia pipeline triggers into your SaaS workflows
Let your customers trigger Maia data pipelines directly from your product when a business event occurs — like a new customer segment, a closed deal, or a fresh data upload — without them switching tools or waiting on nightly cron jobs.
Build data observability and lineage on top of Maia
Catalog, observability, and governance platforms can ingest Maia's OpenLineage events and pipeline execution metadata to render end-to-end data provenance graphs and auto-halt pipelines when downstream anomalies are detected.
Deliver human-in-the-loop ChatOps for Maia agents
Collaboration and DataOps tools can surface paused Maia agent tasks that need human approval and send decisions back to Maia, so engineers resolve ambiguities without leaving your product.
Unify FinOps reporting across the data stack
Cloud cost and FinOps platforms can pull Maia consumption data per user and per day, merge it with warehouse and cloud spend, and attribute pipeline costs to specific teams or integrations.
Automate identity and access governance for Maia
IAM, HRIS, and compliance tools can provision and deprovision Maia users and groups via SCIM, enforcing least-privilege access and generating an auditable trail of changes.
What You Can Build
Ship these features with Truto + Maia
Concrete product features your team can ship faster by leveraging Truto’s Maia integration instead of building from scratch.
On-demand pipeline execution with live status
Trigger batch or streaming Maia pipelines from your UI and stream back real-time execution status, steps, and tasks so users see progress inline.
Lineage graph ingestion
Continuously pull Maia lineage events to render column- and dataset-level lineage inside your catalog or observability product.
Agent task inbox with approval actions
Surface pending Maia agent tasks and their messages in your product, letting users submit decisions or replies that unblock autonomous agents in real time.
CI/CD promotion workflows
Orchestrate Maia artifact creation, variable overrides, and environment promotions from Staging to Production based on Git PR approvals or release events in your platform.
Consumption and chargeback dashboards
Visualize Maia credit consumption by user, project, and day to power internal chargeback, budget alerts, and ROI reports.
SCIM-driven user and group lifecycle
Provision, update, and deprovision Maia SCIM users and groups automatically as employees join, change roles, or leave.
SuperAI
Maia AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_maia_agents
List all Maia runners (agents), including summary details for each. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, name, pausedUntil, enableAutoUpdates, restrictedAccess, versionDetails. Max 100 per page.
create_a_maia_agent
Create a new Maia runner (agent) with the specified configuration. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, enableAutoUpdates, name, pausedUntil, versionDetails, and 1 more. Required: name, agentType, cloudProvider, deployment. An agentType of 'streaming' cannot have enableAutoUpdates set to true.
get_single_maia_agent_by_id
Get details for a specific Maia runner (agent) by id. Returns: agentId, agentStatus, agentType, cloudProvider, connected, deployment, description, enableAutoUpdates, name, pausedUntil, restrictedAccess, versionDetails. Required: id.
update_a_maia_agent_by_id
Update a Runner in Maia. Returns an empty 202 response on success. All body fields are optional: name, description, enableAutoUpdates, restrictedAccess, trackName (CURRENT or STABLE). Snowflake runners cannot be updated and enableAutoUpdates cannot be set for them. Required: id.
delete_a_maia_agent_by_id
Delete a Runner in Maia by id. Returns an empty 202 response on success. Only runners with a STOPPED, PENDING or UNKNOWN status can be deleted; UNKNOWN-status runners have up to a one-hour delay before deletion succeeds. Required: id.
list_all_maia_agents_releases
List runner version track history entries in Maia. Returns a paginated list with: trackName, version, supportLevel, releasedAt. Filterable by track, support level, version, or release date range. Max 100 per page.
get_single_maia_agent_allowlist_by_id
Get the allow list of projects a Maia runner is restricted to, by runner id. Returns a map of project IDs to entries with their allowed environments; an empty map means the runner can be assigned to no project while restrictedAccess is true. Required: id.
maia_agent_allowlists_bulk_update
Replace a Maia runner's entire allow list with the supplied projects and environments, overwriting any previously set values; send an empty projects object to clear the list. Returns an empty 202 response on success. Required: agent_id, projects.
maia_agent_allowlists_bulk_add
Add projects and/or environments to a Maia runner's allow list without removing existing entries. Returns an empty 202 response on success. Required: agent_id, projects.
maia_agent_allowlists_bulk_delete
Remove a project, or a single environment within a project, from a Maia runner's allow list. Omitting environmentName removes the entire project and its environments. Returns an empty 202 response on success. Required: agent_id, projectId.
create_a_maia_agent_command
Trigger a Runner command in Maia — RESTART restarts the runner, PAUSE sets it to 'Paused', and RESUME un-pauses it. Returns an empty 202 response on success. Required: agent_id, command.
list_all_maia_agent_credentials
Get the client credentials for a Maia Runner agent. Returns the AgentCredentials record with clientId (the Runner's Client ID) and clientSecret (the Runner's Client secret). Required: agent_id. Returns 400 for wrong request parameters, 403 when access is forbidden, and 404 when the runner does not exist.
create_a_maia_agent_credential
Refresh the client credentials of a Maia Runner agent by POSTing a SECRET_REFRESH action. Returns the refreshed AgentCredentials record with clientId (the Runner's Client ID) and clientSecret (the Runner's Client secret). Required: agent_id, action. Returns 400 for wrong request parameters, 403 when access is forbidden, and 404 when the runner…
list_all_maia_agents_tasks
List AI agent tasks in Maia, optionally filtered by project, branch, status, or creation time. Returns tasks with taskId, status, agentName, mode, description, createdAt, and modifiedAt, plus the total count.
create_a_maia_agents_task
Create a Maia AI agent task and start its async execution. Returns: agentName, createdAt, status, taskId. Required: message, agentConfig.
get_single_maia_agents_task_by_id
Get a single Maia AI agent task by id, including its current status and pending decisions. Returns: agentConfig, createdAt, description, grantedPermissions, modifiedAt, pendingDecisions, status, taskId. Required: id.
delete_a_maia_agents_task_by_id
Delete an AI agent task in Maia by id. The task must not be in RUNNING status. Returns an empty 204 response on success. Required: id.
maia_agents_tasks_stop
Stop a running AI agent task in Maia; the task finishes its current work before stopping. Returns an empty 204 response on success. Only tasks in a running state can be stopped; poll the task status until it reaches STOPPED before further operations. Required: task_id.
maia_agents_tasks_bulk_update
Replace the full set of granted tool permissions for a Maia AI agent task; pass an empty grantedPermissions list to clear all permissions. Returns: grantedPermissions, taskId. Required: task_id, grantedPermissions.
create_a_maia_task_decision
Submit approval or question-answer decisions for a Maia AI agent task that is awaiting human input. Returns the processing result including pendingDecisions. Required: task_id, decisions.
list_all_maia_connections_schemas
Get the Maia connection schema describing the connection properties and vault secret format required to create a connection. Returns: authProvider, authType, connectionPropertiesFields, platformConnectionType, vaultSecretFormat. Required: authProvider, authType, platformConnectionType.
list_all_maia_consumptions
Get a breakdown of credit consumption in Maia for flat-rated products, grouped by calendar day (UTC) and by consumption type. Returns: consumedBefore, consumedFrom, consumption. Required: consumedFrom, consumedBefore. Data refreshes every three hours.
list_all_maia_consumption_etl_users
Get a breakdown of maia credit consumption for ETL Users over a period. Returns: chargedUsers, consumedBefore, consumedFrom, credits. Required: consumedFrom, consumedBefore.
list_all_maia_custom_connectors
List the custom connector profiles configured for your Maia account, which can be used to create resources where required.
list_all_maia_flex_connectors
List Maia flex connector profiles that can be used to create resources where required. Returns: name, icon, logo, endpoints, deleted, deletedTime, lastModified.
list_all_maia_scim_groups
Search Maia SCIM Groups with filtering, sorting, and pagination. Returns each matching group's id and its schema-specific attributes. Max 100 per page.
create_a_maia_scim_group
Create a new SCIM Group in Maia for directory-integration user/group permission management. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: meta.
get_single_maia_scim_group_by_id
Get a single SCIM Group in Maia by id. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: id.
update_a_maia_scim_group_by_id
Update a SCIM Group in Maia by id. Returns: accountId, accountName, displayName, environment, externalId, id, members, meta, projectId, projectName, role, schemas. Required: id, meta.
delete_a_maia_scim_group_by_id
Delete a Maia SCIM Group by its unique id. Returns an empty 204 response on success. Required: id.
maia_scim_groups_partial_update
Update a SCIM group in Maia by sending a SCIM patch Operations array. Returns the updated group including id, displayName, members, role, accountId, and schemas. Required: group_id.
list_all_maia_scim_resource_types
List all SCIM resource types Maia supports for directory-integration user and group permission management. Returns resource type records with id and their SCIM-defined attributes.
list_all_maia_scim_schemas
List all supported SCIM schemas in Maia's directory integration. Returns each schema definition's id plus its schema-specific attributes; the attribute fields are not enumerated in the API reference and vary per SCIM schema.
list_all_maia_scim_service_provider_configs
Get the SCIM Service Provider Configuration in Maia, describing the SCIM service provider's supported features and configuration. Returns the Service Provider Configuration object with SCIM-defined fields; the published spec models the response as an open object without an enumerated field list.
list_all_maia_scim_users
Search SCIM users in Maia with filtering and sorting. Returns: id, attributes. Max 100 per page.
create_a_maia_scim_user
Create a new SCIM User in Maia to manage directory-based permissions. Returns the created user with id, userName, displayName, emails, active, and meta. Requires a SCIM user payload (meta required). Required: meta.
get_single_maia_scim_user_by_id
Get a SCIM User by id in Maia. Returns the user including id, userName, displayName, emails, active, and meta. Required: id.
update_a_maia_scim_user_by_id
Update a SCIM User by id in Maia. Returns the updated user with id, userName, displayName, emails, active, and meta. Required: id, meta.
delete_a_maia_scim_user_by_id
Delete a SCIM user in Maia by id. Returns an empty 204 response on success. Required: id.
maia_scim_users_partial_update
Patch a SCIM user in Maia's directory integration by applying SCIM PatchOp Operations to update user attributes. Returns the updated user object with id, userName, displayName, active, emails, groups, and meta. Required: user_id.
list_all_maia_events
Query Maia audit events within a time range. Returns each event's eventId, eventName, eventType, actorEmail, and eventTimestamp. Required: from, to.
list_all_maia_lineage_events
List OpenLineage lineage events in chronological order within a date range. Returns: id, event. Max 100 per page (default 100). Required: generatedFrom, generatedBefore.
list_all_maia_pipeline_executions
List summarised pipeline executions in Maia, ordered by most recent start time. Returns: environmentName, finishedAt, message, pipelineExecutionId, pipelineName, pipelineType, projectId, scheduleId, startedAt, status, trigger, user. Max 100 per page.
create_a_maia_project_pipeline_execution
Execute a published pipeline in a Maia project. Runs asynchronously and returns pipelineExecutionId for tracking the run. Only one execution per executionTag may run at a time (409 Conflict otherwise). Required: project_id, environmentName, pipelineName. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
get_single_maia_project_pipeline_execution_by_id
Get the details of a pipeline execution in a Maia project by id, including its current status, trigger, timings, and result message. Returns: environmentName, finishedAt, message, pipelineExecutionId, pipelineName, pipelineType, projectId, scheduleId, startedAt, status, trigger, user. Required: id, project_id.
update_a_maia_project_pipeline_execution_by_id
Cancel a running pipeline execution in a Maia project by id, optionally forcing hard termination. Returns pipelineExecutionId on success. Required: id, project_id, forceUpdate, status.
get_single_maia_pipeline_execution_status_by_id
Get the current status of a pipeline execution in Maia. Returns: status. Required: id, project_id.
list_all_maia_pipeline_execution_steps
List the step statuses of a pipeline execution in Maia. Returns each step's id, name, childPipeline, and result. Max 100 per page. Required: project_id, pipeline_execution_id.
list_all_maia_pipeline_execution_tasks
List the tasks of a maia pipeline execution as a flat, paged list covering the root execution and every child execution beneath it. Returns: pipeline, task. Max 100 per page. Required: project_id, pipeline_execution_id.
list_all_maia_projects
List all projects in Maia. Returns: description, id, name. Max 100 records per page.
create_a_maia_project
Create a new project in Maia with a chosen warehouse and runner deployment type. Returns: projectId. Requires name, warehouse, and agentDeploymentType. Required: agentDeploymentType, name, warehouse.
delete_a_maia_project_by_id
Delete a project in maia by its UUID id. Returns an empty 204 response on success. Required: id.
list_all_maia_project_artifacts
List Maia artifacts for a project environment. Returns: branch, commitHash, createdAt, deployedAt, enabled, provider, versionName, ignoredResources. Max 100 records per page. Required: project_id, environmentName.
create_a_maia_project_artifact
Create a Maia artifact by uploading a project's Foundation asset files as multipart parts named by their full relative paths. Returns: ignoredResources, versionName. Only text files are supported. Required: project_id, projectId.
maia_project_artifacts_bulk_update
Enable or disable a Maia artifact version in an environment. Returns: enabled, versionName. Required: project_id, projectId, environmentName, versionName.
list_all_maia_artifacts_details
Get a Maia shared pipeline artifact's metadata and the shared pipelines within a specific version. Returns artifactDetails (sharedPipelineIdPrefix, versionName, createdAt, enabled, commitHash, branch, provider) and sharedPipelines (sharedPipelineId, sourcePipeline, description). If versionName is omitted, the latest version is returned. Required: sharedPipelineIdPrefix.
get_single_maia_artifacts_detail_by_id
Get a Maia project artifact's version details and its packaged asset list by id. Returns the artifact's details (versionName, enabled, createdAt, deployedAt, commitHash, branch, provider) and its assets (name, contentType, contentHash, contentSize, description). Required: id, environmentName.
create_a_maia_artifacts_promotion
Promote a Maia artifact from one environment to another within a project. Returns: environmentName, versionName. Fails if the artifact version has already been promoted to the target environment. Required: project_id, projectId, sourceEnvironmentName, targetEnvironmentName, versionName.
list_all_maia_project_connections
List project connections in a Maia project, optionally filtered by auth provider or connection names. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id.
create_a_maia_project_connection
Create a new project connection in a Maia project. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id, authType, name, platformConnectionType.
maia_project_connections_bulk_update
Update an existing project connection by name in a Maia project. Performs a full replacement — omitted fields are unset. Returns: authProvider, authType, connectionDetails, createdBy, createdDate, name, platformConnectionType, projectId. Required: project_id, connectionName, authType, platformConnectionType.
maia_project_connections_bulk_delete
Delete a Maia project connection by name. Returns an empty 204 response on success. Required: project_id, connectionName.
list_all_maia_connections_environment_overrides
List Maia project connection overrides that apply in a specific environment. Returns: authProvider, authType, connectionOverrides, createdBy, createdDate, name, platformConnectionType, projectId. Max 100 per page. Required: project_id, environmentName.
create_a_maia_connections_environment_override
Create an environment-specific override for an existing Maia project connection. Returns: authProvider, authType, connectionOverrides, createdBy, and 4 more. Requires project_id, environmentName, connectionName, authType. Returns 409 if the override already exists — use update. Required: project_id, authType, connectionName, environmentName.
maia_connections_environment_overrides_bulk_update
Update an existing environment connection override for a Maia project. Returns: authProvider, authType, connectionOverrides, createdBy, createdDate, and 3 more. Requires project_id, environmentName, connectionName, authType. Returns 404 if the override does not exist — use create. Required: project_id, authType, connectionName, environmentName.
maia_connections_environment_overrides_bulk_delete
Delete environment connection overrides for a Maia project environment by connection names. Returns an empty 204 response on success. Too many connection names may exceed URL length limits. Required: project_id, environmentName, connectionNames.
create_a_maia_connections_test
Test a Maia connection by dispatching a connectivity check against a specific environment; the platform resolves the connection credentials (project-level merged with any environment override) and sends the test to the runner. Returns the test outcome — SUCCESS when the connection is valid, or FAILURE when it is not, together with the reason the….…. Required: project_id, environmentName, connectionName.
create_a_maia_project_data_platform_connection
Create a default data warehouse connection for a Maia project. Supported providers: Snowflake, Redshift, BigQuery, and Databricks. Returns an empty 201 response on success. Required: project_id, authProvider, authType, name, platformConnectionType.
list_all_maia_project_environments
List all environments for a Maia project. Returns: defaultAgentId, defaultAgentName, name. Required: project_id.
create_a_maia_project_environment
Create a new environment in a Maia project, including its default agent, default connections, and per-connection property overrides. Returns an empty response on success — 201 when the environment has been created, 200 when the environment configuration is unchanged since the last update. Requires project_id and a request body with at least name.…. Required: project_id, connectionOverrides, defaultAgentId, defaultConnections, defaultUserAccessLevel, name.
delete_a_maia_project_environment_by_id
Delete a Maia project environment by its name. Returns an empty 204 response on success. Required: id, project_id.
list_all_maia_project_published_pipelines
List all published pipelines in a Maia project. Returns pipeline summary records: name and publishedTime. Required: project_id, environmentName. Page and size are supported for pagination (max size 1000).
create_a_maia_project_repository
Associate a Git repository with a Maia project that has no repository set yet. Returns an empty JSON object on success. Required: project_id, provider, providerParameters, repositoryName.
maia_project_repositories_bulk_update
Update provider parameters, such as a missing Azure DevOps tenantId, on the repository already associated with a Maia project. Returns an empty JSON object on success. GitLab and Bitbucket have no updatable parameters — use the repository token endpoint instead. Required: project_id, provider.
create_a_maia_repositories_token
Rotate the Git provider personal access token for the repository associated with a maia project; the new token is stored in the customer vault. Returns an empty 204 response on success. Required: project_id.
list_all_maia_project_repository_migrations
List repository migrations that have run for a Maia project, newest first, with details of both the source and target repositories. Returns: completedAt, detail, migrationId, mode, sourceCloneUrl, sourceEnterpriseOauthId, sourceName, sourceProvider, startedAt, status, targetCloneUrl, and 3 more. Max 100 per page. Required: project_id.
create_a_maia_project_repository_migration
Start an asynchronous migration of a Git repository into a Maia project's working tree. Returns: migrationId. Runs in the background — poll the status endpoint to track progress; only one migration can run per project at a time. Required: project_id, mode, targetCloneUrl, targetName, targetProvider.
get_single_maia_project_repository_migration_by_id
Get the current status of a repository migration in a Maia project. Returns: detail, migrationId, status. Required: id, project_id.
create_a_maia_project_review
Review the pipelines of a Maia project against configured pipeline quality rules. Returns: excludedFiles, results, reviewStatus. Required: project_id, branchName, commitId, dataWarehouseType.
list_all_maia_project_schedules
List all schedules for a Maia project. Returns each schedule's scheduleId, name, cronExpression, nextRunAt, pipelineName, environmentName, and scheduleEnabled. Max 100 records per page. Required: project_id.
create_a_maia_project_schedule
Create a new schedule for a Maia project, pipeline and environment. Returns the created schedule's scheduleId. Requires project_id, pipeline, and schedule. Required: project_id, pipeline, schedule. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
get_single_maia_project_schedule_by_id
Get a Maia schedule's summary by id within a project. Returns: allowConcurrentExecutions, cronExpression, cronTimezone, effectiveFrom, environmentName, gridVariables, intervalExpression, lastRunAt, name, nextRunAt, pipelineName, runnerId, scalarVariables, scheduleEnabled, scheduleId, versionName. Required: id, project_id.
delete_a_maia_project_schedule_by_id
Delete a schedule in Maia by id within a project. Returns an empty 204 response on success. Required: id, project_id.
update_a_maia_project_schedule_by_id
Update a Maia schedule by id — partial updates are accepted and omitted fields are left unchanged. Returns the updated schedule's scheduleId, name, cronExpression, nextRunAt, pipelineName, and scheduleEnabled. Required: id, project_id. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
list_all_maia_project_secret_references
List all secret references in a Maia project. Returns: description, name, provider, secretKey, secretName, type, vaultName, vaultType, secretReferenceType. Only PASSWORD types are returned unless secretReferenceTypes is specified. Required: project_id.
create_a_maia_project_secret_reference
Create a secret reference in a Maia project for an AWS, Azure, or Matillion-hosted Runner vault. Returns the created reference with agentId, agentType, description, secretReferenceType, and the vault-specific fields for its type. Required: project_id, secret_reference_name, agentType, secretReferenceType.
delete_a_maia_project_secret_reference_by_id
Delete a secret reference from a Maia project. Returns an empty 204 response on success. Required: id, project_id.
list_all_maia_project_streaming_pipelines
List streaming pipeline definitions in a Maia project. Returns: advancedProperties, agentId, name, projectId, streamingPipelineId, streamingSource, streamingTarget. Max 100 records per page. Required: project_id.
create_a_maia_project_streaming_pipeline
Create a streaming pipeline definition in a Maia project. Returns the created definition including streamingPipelineId, name, agentId, streamingSource, and streamingTarget. Required: project_id, projectId, agentId, name, streamingSource, streamingTarget.
get_single_maia_project_streaming_pipeline_by_id
Get a streaming pipeline definition by id in a Maia project. Returns: advancedProperties, agentId, name, projectId, streamingPipelineId, streamingSource, streamingTarget. Required: id, project_id, projectId, streamingPipelineId.
update_a_maia_project_streaming_pipeline_by_id
Update a streaming pipeline definition by id in a Maia project. Returns the updated definition including streamingPipelineId, name, agentId, and 2 more fields. Requires id, project_id, name, agentId, streamingSource, and streamingTarget. Required: id, project_id, agentId, name, streamingSource, streamingTarget.
delete_a_maia_project_streaming_pipeline_by_id
Delete a streaming pipeline definition in a maia account and project. Returns an empty 204 response on success. Required: id, project_id.
create_a_maia_streaming_pipeline_command
Execute a streaming pipeline command in maia, sending a start or stop request to the streaming runner. Returns an empty 202 response on success. A 409 conflict is returned if the command clashes with the pipeline's current status (e.g. starting an already-running pipeline). Required: project_id, streaming_pipeline_id, projectId, streamingPipelineId, command.
get_single_maia_streaming_pipeline_status_by_id
Get a streaming pipeline's status in Maia. Sends a request to the streaming runner and returns the pipeline's current status, message, startedAt, and finishedAt. Required: id, project_id, projectId, streamingPipelineId.
create_a_maia_project_test_execution
Create test executions for a Maia project. Returns: testExecutionId. Required: project_id, environmentName, scope. Pipeline names must include the file extension, for example my_pipeline.orch.yaml or my_pipeline.tran.yaml.
get_single_maia_project_test_execution_by_id
Get the status of an executed test in a Maia project. Returns the execution status payload including results, page, size, total, pipelineName, environmentName, and executionTag. Required: id, project_id.
update_a_maia_project_test_execution_by_id
Cancel a test execution in a Maia project, optionally forcing termination. Returns: testExecutionId. Required: id, project_id, forceUpdate, status.
list_all_maia_test_executions
List Maia test executions ordered by start time, most recent first. Returns: environmentName, finishedAt, message, projectId, scheduleId, startedAt, status, testExecutionId, testName, trigger, user. Max 100 per page.
list_all_maia_project_variables
List all project variables for a Maia project. Returns: behaviour, description, id, name, supportsDoubleResolution, type, value. Required: project_id.
create_a_maia_project_variable
Create a new project variable in a Maia project. Returns: id, name, value. Required: project_id, behaviour, name, type.
maia_project_variables_bulk_update
Update a project variable with the provided properties in maia. Returns an empty 204 response on success. Requires project_id and variable_name; the body must include type and behaviour even when unchanged, and may also set description, value, and supportsDoubleResolution. Required: project_id, variable_name, behaviour, type.
maia_project_variables_bulk_delete
Delete a project variable by name in maia. Returns an empty 204 response on success. Requires project_id and variable_name. Required: project_id, variable_name.
list_all_maia_variable_environment_overrides
List environment-level overrides for a project variable in Maia. Returns the variable (id, name, type) and its per-environment overrides (environmentName, value). Required: project_id, variable_name.
create_a_maia_variable_environment_override
Create or update environment-level overrides for a project variable in Maia. Returns: failedOverrides, successfulOverrides, type, variableName, overrides, variable. Required: project_id, variable_name, overrides.
maia_variable_environment_overrides_bulk_delete
Delete a Maia project variable's environment-level override for a specific environment. Returns an empty 204 response on success. Required: project_id, variable_name, environment_name.
create_a_maia_secret_secret_value
Create a new secret value for a maia agent; the value is encrypted in transit with the Runner's certificate, then decrypted by the Runner and stored in the customer vault. Returns: resolver_ref, vaultSecretName. Secret names must be unique within the target vault location. Required: agent_id, secret.
list_all_maia_shared_pipelines
List published shared pipelines in Maia, paginated across all namespaces the account can access. Returns: name, publishedTime. Max 100 records per page.
list_all_maia_shared_pipelines_artifacts
List published shared pipeline artifacts in Maia. Returns: branch, commitHash, createdAt, enabled, provider, sharedPipelineIdPrefix, versionName, ignoredResources, pipelineName, environmentName. Filter by sharedPipelineIdPrefix, sharedPipelineId, versionName, or enabledOnly; supports sorting.
create_a_maia_shared_pipelines_artifact
Publish a shared pipeline artifact to Maia as a multipart upload for a pipeline group and version. Returns: ignoredResources, versionName, pipelineName, environmentName.
maia_shared_pipelines_artifacts_bulk_update
Enable or disable a specific version of a shared pipeline artifact in Maia. Returns: enabled, versionName, pipelineName, environmentName. Requires enabled, sharedPipelineIdPrefix, and versionName. Required: enabled, sharedPipelineIdPrefix, versionName.
list_all_maia_agents_task_messages
List the events exchanged with a Maia AI agent task in chronological order to follow the agent's reasoning and collect its output. Returns: data, groupId, timestamp. Required: task_id. Max 1000 per page.
create_a_maia_agents_task_message
Send a follow-up message to a Maia AI agent task, resuming agent execution. Returns: taskId. Required: task_id, message.
list_all_maia_project_artifact_details
Get artifact details for a Maia project by version name. Returns: assets, details, page, results, size, total. Required: project_id, environmentName.
Why Truto
Why use Truto’s MCP server for Maia
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 1000+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Start with Maia in a free sandbox, usually ready within one business day. No boilerplate, no maintenance burden.
Link your customer’s Maia account
Use Truto’s frontend SDK to connect your customer’s Maia account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Maia
Truto’s Proxy API is a 1-to-1 mapping of the Maia API. You call us, we call Maia, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Maia’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Maia on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What Maia resources can I access through Truto today?
Truto exposes Maia projects, pipeline executions and their steps/tasks, streaming pipelines, agents and agent tasks, task decisions and messages, artifacts and promotions, environments, schedules, variables and overrides, secret references, repositories, connections, lineage events, consumption data, and SCIM users and groups.
Can I trigger and monitor Maia pipelines programmatically?
Yes. You can create pipeline executions on a project, fetch execution status, and list execution steps and tasks to monitor progress. Streaming pipelines are supported with dedicated commands and a status endpoint.
How do I handle Maia's human-in-the-loop agent tasks?
You can list agent tasks, fetch a single task by ID to inspect pending decisions, read and post task messages, and submit a decision via the task decision endpoint to resume the agent — all through Truto.
Does the integration support SCIM for user provisioning?
Yes. Maia's SCIM users, groups, resource types, schemas, and service provider configs are all accessible, including create, update, partial update, and delete operations for both users and groups.
Can I promote artifacts between Maia environments?
Yes. You can list projects and environments, manage artifacts and their details, and trigger artifact promotions, along with managing environment-specific variable and connection overrides for CI/CD workflows.
How does authentication work for end users connecting their Maia account?
Truto handles the Maia auth handshake, token storage, and refresh on your behalf. Your users connect their Maia account once through Truto's connect flow, and your app calls a single unified interface without managing credentials per customer.
Can I track Maia consumption and events for FinOps or audit use cases?
Yes. You can list Maia consumption records and consumption ETL users for cost reporting, and list Maia events for audit and compliance trails.
From the Blog
Maia integration guides
Deep dives, architecture guides, and practical tutorials for building Maia integrations.
Maia
Get Maia integrated into your app
Our team understands what it takes to make a Maia integration successful. A short, crisp 30 minute call with folks who understand the problem.