The Catalog Asset History server lets you investigate how enterprise data assets change over time in Data Governance and Catalog. Use this MCP server to see who changed an asset, what they changed, and when, including attribute edits, relationship updates, certification decisions, and stakeholder assignments.
Each event includes resolved users and before and after values, so you can explain metadata updates and support governance or compliance reviews. Access control policies still apply. The MCP server omits hidden assets and restricted attributes or returns them as stubs.
Key capabilities
Use the MCP server to perform the following tasks:
•Retrieve a timeline of change events for a cataloged asset, including timestamps, actions, event types, and the users who created or modified each event.
•Compare before and after values for attribute and relationship changes to see exactly what was created, overwritten, or deleted.
•Filter audit events by time range, action, event category, changed attribute, or hierarchy scope, and sort the results for focused investigation.
•Review certification and stakeholder changes over a date range to support compliance and data governance reporting.
Use cases
Use this MCP server to address the following use cases:
•Change Investigation. Trace who changed an asset, what they changed, and when to explain metadata updates.
•Governance Auditing. Review certification and stakeholder changes over a date range to support compliance and data governance reporting.
•Focused Audit Filtering. Filter and sort audit events by time range, action, event category, changed attribute, or hierarchy scope for targeted investigation.
Prerequisites
Before you begin, verify the following prerequisites:
•Licenses to access Data Governance and Catalog and MDM SaaS.
•A running Secure Agent with a valid, active connection to the source system. The server needs this connection to fetch live data.
•A valid authentication token generated by a user who has the role-based access control permissions required to view the data. The agent inherits permissions from this user.
Example prompts
Use the following sample prompts with the Catalog Asset History MCP server:
•Show me the most recent changes for this catalog asset.
•What updates were made to this asset since August 1, 2026?
•List only the relationship changes for this asset since January 1, 2026.
•Who changed the description of this asset this year?
Available tools
The following tool is available on this MCP server:
get_asset_history
Retrieves the change history, or audit trail, for a catalog asset, showing who changed what and when, with before and after values.
Call get_asset_details first to obtain the asset identity.
Use offset to page through older events.
Returns change events, each with a timestamp, eventId, action, eventType, and the resolved createdBy and modifiedBy users. Asset and relationship events also include a changes array of per-attribute edits. In each change, "from" is the prior value and "to" is the new value, and operation is CREATE, OVERWRITE, or DELETE. On the wire, omits "from" for a new attribute and omits "to" for a removed attribute. The side that is present indicates the direction of the change.
The mode field indicates how the change was captured: REALTIME means a live, interactive change. BATCH means a bulk or batch ingestion job.
For certification events, certification.certificationValue is true when the asset is certified and false when it is decertified.
The {}restricted ___ field is true when the entire asset is hidden by access control. In this case, the event is returned as a stub that contains only the identity and classType. The _restrictedAttributes field lists specific attributes that are hidden by policy on an otherwise visible asset.
Fields:
- assetIdentity: The unique identity of the asset to retrieve change history for. Use the core.identity value, which is the UUID. To discover asset identities, use the search_assets or get_asset_details tool.
- limit: The maximum number of audit events to return per page. Enter between 1 and 20. The default is 10.
- offset: The number of records to skip for pagination. Enter between 0 and 200. The default is 0.
- filterSpec: An optional set of typed filters that narrow the returned audit events. All filters are combined with AND.
▪ timestampFrom: Includes events that occurred at or after this time. The value is inclusive. Use the format yyyy-MM-ddTHH:mm:ss.SSSZ, for example 2026-01-01T00:00:00.000Z.
▪ timestampTo: Includes events that occurred at or before this time. The value is inclusive. Use the format yyyy-MM-ddTHH:mm:ss.SSSZ, for example 2026-12-31T23:59:59.999Z.
▪ action: Filters the events by change action. Use INSERT for created assets, UPDATE for modified assets, and DELETE for removed assets. You can specify one or more actions.
▪ eventType: Filters the events by category. Use Asset for attribute changes, Relationship for links that were added or removed, Certification for certify or decertify events, and Stakeholder for role assignments or removals. You can specify one or more categories.
▪ modifiedBy: Filters the events to those made by one or more of the specified user identities.
▪ changedAttributes: Filters the events to those that changed one or more of the specified attributes. Enter fully qualified attribute names, for example core.name, core.description, or core.assetLifecycle.
- sortSpec: Specifies how to sort the results, applied in priority order. When omitted, results are sorted by timestamp in descending order, so the newest events appear first.
▪ field: The field to sort by. Choose one of eventId, timestamp, action, eventType, or modifiedBy.
▪ order: The sort direction. Use ASC for oldest first or DESC for newest first. The default is DESC.
- hierarchyOptions: Determines whether to include events for descendant assets. Use EXCLUDE_HIERARCHY to include only this asset. Use INCLUDE_IMMEDIATE_CHILDREN to also include its direct children. Use INCLUDE_ALL_CHILDREN to include the entire subtree, which can be large. The default is EXCLUDE_HIERARCHY.
Sample request and response schemas
The following schema shows how you can define a request for the get_asset_history tool on the Catalog Asset History MCP server and the response it returns:
Request schema:
**get_asset_history** : Request schema:
```json { "type": "object", "description": "Parameters for get_asset_history.", "required": ["assetIdentity"], "properties": { "assetIdentity": { "type": "string", "description": "The unique identity of the asset to retrieve change history for. Use the core.identity value, which is the UUID. To discover asset identities, use the search_assets or get_asset_details tool." }, "limit": { "type": "integer", "minimum": 1, "maximum": 20, "description": "The maximum number of audit events to return per page. Enter between 1 and 20. The default is 10." }, "offset": { "type": "integer", "minimum": 0, "maximum": 200, "description": "The number of records to skip for pagination. Enter between 0 and 200. The default is 0." }, "filterSpec": { "type": "object", "description": "An optional set of typed filters that narrow the returned audit events. All filters are combined with AND.", "properties": { "timestampFrom": { "type": "string", "description": "Includes events that occurred at or after this time. The value is inclusive. Use the format yyyy-MM-ddTHH:mm:ss.SSSZ, for example 2026-01-01T00:00:00.000Z." }, "timestampTo": { "type": "string", "description": "Includes events that occurred at or before this time. The value is inclusive. Use the format yyyy-MM-ddTHH:mm:ss.SSSZ, for example 2026-12-31T23:59:59.999Z." }, "action": { "type": "array", "items": { "type": "string", "enum": ["INSERT", "UPDATE", "DELETE"] }, "description": "Filters the events by change action. Use INSERT for created assets, UPDATE for modified assets, and DELETE for removed assets. You can specify one or more actions." }, "eventType": { "type": "array", "items": { "type": "string", "enum": ["Asset", "Relationship", "Certification", "Stakeholder"] }, "description": "Filters the events by category. Use Asset for attribute changes, Relationship for links that were added or removed, Certification for certify or decertify events, and Stakeholder for role assignments or removals. You can specify one or more categories." }, "modifiedBy": { "type": "array", "items": { "type": "string" }, "description": "Filters the events to those made by one or more of the specified user identities." }, "changedAttributes": { "type": "array", "items": { "type": "string" }, "description": "Filters the events to those that changed one or more of the specified attributes. Enter fully qualified attribute names, for example core.name, core.description, or core.assetLifecycle." } } }, "sortSpec": { "type": "array", "description": "Specifies how to sort the results, applied in priority order. When omitted, results are sorted by timestamp in descending order, so the newest events appear first.", "items": { "type": "object", "properties": { "field": { "type": "string", "enum": ["eventId", "timestamp", "action", "eventType", "modifiedBy"], "description": "The field to sort by. Choose one of eventId, timestamp, action, eventType, or modifiedBy." }, "order": { "type": "string", "enum": ["ASC", "DESC"], "description": "The sort direction. Use ASC for oldest first or DESC for newest first. The default is DESC." } } } }, "hierarchyOptions": { "type": "string", "enum": ["EXCLUDE_HIERARCHY", "INCLUDE_IMMEDIATE_CHILDREN", "INCLUDE_ALL_CHILDREN"], "description": "Determines whether to include events for descendant assets. Use EXCLUDE_HIERARCHY to include only this asset. Use INCLUDE_IMMEDIATE_CHILDREN to also include its direct children. Use INCLUDE_ALL_CHILDREN to include the entire subtree, which can be large. The default is EXCLUDE_HIERARCHY." } } } ```
Common issues and actions
If you encounter any of the following issues, consider the following remedial actions:
The request returns HTTP 401 because the Bearer token is missing or invalid.
Sign in again with a valid Cloud Data Governance and Catalog session and retry the request.
The entire asset is hidden by access control, so** '__restricted' **is true.
Treat the event as a stub that contains only the identity and class type. Request access or use an account that is permitted to view the asset.
Specific attributes are hidden by policy on an otherwise visible asset.
Check the '__restrictedAttributes' field for the hidden attributes. Request access to those attributes if you need the omitted values.