Developer documentation
Connect AI clients to governed product data.
Avut PIM provides a read-only remote MCP server with tenant-scoped, permission-checked tools for product discovery and operational status.
https://app.avut.io/mcpConnect a supported MCP client
Use the production endpoint in a compatible remote MCP client. Avut opens a browser authorization flow and never asks you to paste an access token into the client.
- 1. Add https://app.avut.io/mcp as a remote Streamable HTTP server.
- 2. Sign in to Avut PIM and choose exactly one workspace.
- 3. Review the requested read-only access, then allow the connection.
- 4. Return to the client and confirm that the expected tools are listed.
Verified clients include ChatGPT, Claude, Codex, and MCP Inspector.
Read access
The standard scope exposes eleven bounded read tools. Every request is checked against the current workspace, role, permission, grant, and tool policy.
mcp:toolsRead-only tools
OAuth scope: mcp:tools
| Tool | Purpose | Avut permission |
|---|---|---|
| search_products | Searches the current workspace by SKU, GTIN, name, or configured searchable fields. Returns at most 25 products per page. | products.view |
| get_product | Gets one product by ID or exact SKU. Attributes are optional and capped at 50. | products.view |
| get_product_bundle_components | Lists bounded bundle components, quantities, and ordering for one product. | products.view |
| get_product_relations | Lists bounded product relations from the selected product's forward or reverse perspective. | products.view |
| get_product_assortment_items | Lists bounded assortment items and quantities without internal free-form metadata. | products.view |
| get_product_collection_memberships | Lists bounded active collection memberships without exposing collection rules. | products.view |
| list_product_fields | Lists configured, non-archived product fields with bounded cursor pagination. | dataModel.view |
| get_product_media_status | Gets bounded media-processing state and dimensions without returning URLs, storage keys, or checksums. | media.view |
| list_import_status | Lists recent import outcomes and row counts without filenames, failed rows, or user identifiers. | imports.history |
| list_feed_status | Lists bounded feed configuration and latest-run status without credentials, mappings, locks, or error samples. | feeds.view |
| list_shopify_connection_status | Lists bounded Shopify connection and health states without domains, OAuth details, credentials, or raw errors. | channels.view |
These tools are disabled in production while Beta validation continues. Contracts may change before general availability.
Beta product tools
OAuth scope: mcp:tools.write
| Tool | Purpose | Avut permission |
|---|---|---|
| get_product_import_schema | Describes the bounded structured-row format accepted after an AI client parses a spreadsheet. | imports.run |
| get_product_write_schema | Lists bounded workspace-valid product kinds, references, attributes, and select options before a write preview. | imports.run |
| preview_product_create | Validates one product create and returns an expiring preview without changing product data. | products.edit |
| confirm_product_create | Queues exactly the previously previewed product create through Avut's normal import worker. | products.edit |
| preview_product_update | Validates one SKU-based product update and returns an expiring preview without changing product data. | products.edit |
| confirm_product_update | Queues exactly the previously previewed SKU-based update through Avut's normal import worker. | products.edit |
| preview_product_import | Validates 1–25 structured product rows in create, update, or upsert mode without changing product data. | imports.run |
| confirm_product_import | Queues exactly the previously previewed rows through Avut's normal product import worker. | imports.run |
| preview_product_bundle_import | Validates 1–25 bundle/component rows using existing product SKUs without changing product data. | products.edit |
| confirm_product_bundle_import | Queues exactly the previously previewed bundle components through Avut's import worker. | products.edit |
| preview_product_relation_import | Validates 1–25 product relation rows against existing SKUs and workspace relation types without changing product data. | products.edit |
| confirm_product_relation_import | Queues exactly the previously previewed product relations through Avut's import worker. | products.edit |
| preview_product_assortment_import | Validates 1–25 assortment item rows and clearly previews a complete item-list replacement for every included assortment SKU. | products.edit |
| confirm_product_assortment_import | Queues the exact previewed assortment item replacement. Existing items omitted from the preview are removed. | products.edit |
| preview_product_collection_import | Validates add/remove membership rows for existing active manual collections. It never creates collections. | products.edit |
| confirm_product_collection_import | Queues exactly the previewed manual collection membership additions and removals. | products.edit |
| get_product_import_status | Returns bounded progress and result counts for one confirmed product import. | imports.history |
| get_product_import_errors | Returns up to 25 sanitized row errors for one confirmed product import. | imports.history |
| preview_product_status_update | Validates one existing product status change and creates a ten-minute, version-bound preview without changing product data. | products.edit |
| confirm_product_status_update | Applies only the exact preview identified by its operation ID. Expired, stale, mismatched, or unauthorized operations make no change. | products.edit |
Production access is currently read-only
Public write tools are not currently available. Avut is developing reviewed product create, update, and import workflows with explicit preview and confirmation controls.
Data goes only to the client you authorize
The external client receives only the bounded tool results requested through the connection. Its provider applies its own account, workspace, retention, residency, and model-training settings. Do not connect a provider unless your organization permits it to process the selected workspace data.
Disable workspace MCP access or revoke an individual grant in Settings > MCP connections. Removing a connector only in the external client may leave the Avut grant active.
Common errors
Avut returns bounded errors without raw database, credential, or internal diagnostic details.
Authentication required
Reconnect the client. A grant may have expired, been revoked, or lost workspace access.
Insufficient scope
Reconnect the client and approve the advertised read-only scope.
Tool unavailable
Check the user's current Avut permission, workspace setting, external-client policy, and tenant tool policy.
Ready to connect?
Use one workspace per grant, review requested access carefully, and revoke clients that are no longer needed.