Skip to main content

System Administration & Maintenance

Tools for tenant-level operations — version and platform information, content security policy, search index status, maintenance jobs, integration logs, and licensed solution sets.

This page covers 20 tools, all of them available on request rather than in the default tool list, and 2 destructive.

How to read this page
  • Status — In the default tool list means the tool is one of the ~200 Aprimo advertises to every agent out of the box, so the agent discovers and calls it on its own. Available on request means the tool is registered and fully callable, but sits outside that default list — call it by name, or ask Aprimo to extend the list your tenant is served.
  • Both statuses work identically when called. Status affects discovery, not capability or authorization.
  • Visibility is not authorization. Every tool call executes as the authenticated user, and any tool can return an authorization error if that user lacks rights to the record, task, or file. See the MCP Tool Permission Map.
  • Destructive tools are labelled as such. They delete or irreversibly overwrite data, and will not act unless the call sets both confirmed and confirmedDestructive to true.
  • Activity and Project labels vary by tenant. Where this page says Activity or Project, your tenant's own configured terminology is substituted at runtime.
Why isn't every tool in the default list?

Aprimo's MCP Server exposes far more tools than most MCP clients handle well — many degrade or truncate their tool list well below the full catalogue. Rather than let a client truncate arbitrarily, Aprimo advertises a curated set of roughly 200 tools covering the tasks customers most commonly automate. Everything outside that set remains fully supported and callable by name; it simply isn't offered up front. If your integration leans on a tool that is available on request, talk to your Aprimo Customer Success Manager about extending the advertised list for your tenant.

Tools at a Glance

ToolStatusWhat it does
check_maintenance_jobOn requestChecks the status of a maintenance job created by create_maintenance_job.
create_maintenance_jobOn requestDestructive. Creates an Aprimo maintenance job that bulk-applies one or more actions (e.g. append/replace/overwrite a field, change classification, change record/collection status, delete) across one or more record or collection targets.
fill_fda_formOn requestFills the FDA 2253 form from submitted field data in Aprimo Marketing Operations.
get_content_security_policyOn requestGets the Content Security Policy domain allowlist for this Aprimo DAM location.
get_dam_version_infoOn requestGets the currently active Aprimo DAM release/version number.
get_integration_logOn requestReturns a single integration log by its integer ID in Aprimo Marketing Operations.
get_maintenance_job_targetOn requestGets one target of an Aprimo maintenance job by maintenance job id and maintenance target id — the record/classification/rule/order it targets and its per-target status.
get_search_index_statusOn requestGets the status of Aprimo's record/classification search index: whether a rebuild is required/currently scheduled, indexed record/classification counts, pending changes, and the last rebuild time.
get_supported_versionOn requestGets detail (documentation URI) for one supported Aprimo API version, by its exact version number.
get_unique_key_index_statusOn requestGets the status of Aprimo's unique-key index (enforces uniqueness for fields configured as unique keys across records and classifications): processed record/classification counts, whether reindexing is running, whether duplicates were found, and whether a rebuild is required.
list_countersOn requestLists every named counter configured in Aprimo (persistent, atomically-incrementing integer sequences typically used to generate unique values, e.g. an invoice number or SKU, for a custom field): name and current value.
list_integration_logsOn requestLists integration logs in Aprimo Marketing Operations, paged and sortable.
list_maintenance_job_targetsOn requestLists every target of an Aprimo maintenance job by maintenance job id — the records/classifications/rules/orders it targets and each one's per-target status.
list_maintenance_jobsOn requestLists Aprimo maintenance jobs: id, job type, status, targets count, priority, and dates.
list_solution_setsOn requestLists the solution sets (licensed solution modules) installed for the current tenant in Aprimo Marketing Operations.
list_supported_versionsOn requestLists every API version Aprimo currently supports (version number + documentation URI).
rebuild_search_indexOn requestTriggers a rebuild of Aprimo's record/classification search index.
rebuild_unique_key_indexOn requestTriggers a rebuild of Aprimo's unique-key index.
search_integration_logsOn requestSearches integration logs in Aprimo Marketing Operations with a JSON query body, paged and sortable.
update_counterOn requestDestructive. Sets an Aprimo counter's value, by its exact name -- DAM upserts, so a name that doesn't already exist gets created with this value.

check_maintenance_job

Available on request

Checks the status of a maintenance job created by create_maintenance_job. Pending/Queued/Executing/Scheduled/AsyncPending/AsyncExecuting are normal in-progress states, not errors — tell the user it's still processing and offer to check again shortly. PartiallyFailed is a warning (not an error): some targets failed while others succeeded; failedTargetsCount shows how many failed. Failed is a tool error.

Parameters:

ParameterTypeRequiredDescription
maintenanceJobIdstringYesThe maintenance job id returned by create_maintenance_job.

Returns:

FieldTypeDescription
maintenanceJobIdstring
statusstring
failedTargetsCountinteger
warningstring (optional)
messagestring (optional)

create_maintenance_job

Available on request · Destructive

Creates an Aprimo maintenance job that bulk-applies one or more actions (e.g. append/replace/overwrite a field, change classification, change record/collection status, delete) across one or more record or collection targets. This modifies data; async — poll with check_maintenance_job; can be scheduled via earliestStartDate so not necessarily immediate. Always confirm the exact targets and action(s) with the user before calling this tool. Some actions (Delete, ClassificationMove, UnclassifyRecord, or a status change to Delete) are destructive and require an additional explicit confirmation beyond the routine write confirmation.

Parameters:

ParameterTypeRequiredDescription
typestringYesJob type: "Record" (one target per id), "BulkRecord" (many record ids in one target), or "BulkCollection" (many collection ids in one target).
targetIdsarray of stringYesThe record or collection ids (32-char hex) this job targets, matching the chosen type.
actionsarray of DamModels.MaintenanceActionRequestYesThe action(s) to apply, each as { action, parameters }. Allowed action values (record targets): AppendTextField, AppendToField, ClassificationCopy, ClassificationMove, ClassifyRecord, Delete, OverwriteField, RefreshFileRecord, RemoveFromField, ReplaceTextField, UnclassifyRecord, ChangeContentType, ChangeRecordStatus, RefreshUrlToPdf. Allowed action values (collection targets): ChangeCollectionOwner, ChangeCollectionStatus. Any other action value is rejected.
prioritystringNoOptional job priority: "Medium" or "High".
earliestStartDatestringNoOptional ISO-8601 timestamp; the job will not start executing before this time.
disableNotificationbooleanNoOptional; when true, suppresses the job-completion notification email.
confirmedbooleanNoMust be true to proceed. Set to false (or omit) to get a confirmation gate error, then call again with confirmed=true after the user explicitly confirms the exact targets and action(s).
confirmedDestructivebooleanNoMust also be true (in addition to confirmed) when the job includes a destructive action (Delete, ClassificationMove, UnclassifyRecord, or a status change to Delete). Set only after stating the destructive action and target count to the user and getting explicit go-ahead.

Returns:

FieldTypeDescription
maintenanceJobIdstring
Destructive operation

This tool deletes or irreversibly overwrites data in the live tenant; the change cannot be rolled back through the API. It will not act unless the call sets both confirmed and confirmedDestructive to true.


fill_fda_form

Available on request

Fills the FDA 2253 form from submitted field data in Aprimo Marketing Operations. Read-only despite the POST verb -- filling/generating a form from submitted data is a query/transform operation, no PM resource is created, updated, or deleted as a side effect (same precedent as retrieve_digital_asset_dam_mapping). The request body is a raw, undocumented map of form-field names to arrays-of-arrays of values -- pass it through verbatim as a JSON object; PM declares no typed schema for this data. PM's response has no documented schema either -- the real API almost certainly streams back a filled PDF binary, which this tool cannot surface as text; it reports success and the response's byte length instead.

Parameters:

ParameterTypeRequiredDescription
bodystringYesJSON object mapping form-field names to arrays-of-arrays of values -- opaque, undocumented FDA form-field data (PM wire names). Pass through verbatim.
flattenbooleanNoWhether to flatten the resulting form (bakes filled-in field values into the page content so they can no longer be edited). Default false.

Returns:

FieldTypeDescription
flattenboolean
succeededboolean
responseByteLengthintegerLength, in utf-8 bytes, of the raw response body PM returned. A non-zero value alongside Succeeded=true typically indicates a filled PDF was streamed back.

get_content_security_policy

Available on request

Gets the Content Security Policy domain allowlist for this Aprimo DAM location. Tenant-wide singleton -- no parameters.

Parameters: none.

Returns:

FieldTypeDescription
domainsarray of string

get_dam_version_info

Available on request

Gets the currently active Aprimo DAM release/version number. Tenant-wide singleton -- no parameters.

Parameters: none.

Returns:

FieldTypeDescription
releaseNumberstring (optional)

get_integration_log

Available on request

Returns a single integration log by its integer ID in Aprimo Marketing Operations.

Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.

Parameters:

ParameterTypeRequiredDescription
idstringYesThe integration log's integer ID.

Returns:

FieldTypeDescription
idstring (optional)
namestring (optional)
rawobject (optional)The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above.

get_maintenance_job_target

Available on request

Gets one target of an Aprimo maintenance job by maintenance job id and maintenance target id — the record/classification/rule/order it targets and its per-target status. Use after list_maintenance_job_targets, or when you already have both ids.

Parameters:

ParameterTypeRequiredDescription
maintenanceJobIdstringYesThe maintenance job id (GUID).
maintenanceTargetIdstringYesThe maintenance target id (GUID), from list_maintenance_job_targets.

Returns:

FieldTypeDescription
idstring
recordIdstring (optional)
classificationIdstring (optional)
objectIdstring (optional)
ruleTargetstring (optional)
statusstring (optional)
messagestring (optional)
errorDetailsstring (optional)
attemptinteger (optional)

get_search_index_status

Available on request

Gets the status of Aprimo's record/classification search index: whether a rebuild is required/currently scheduled, indexed record/classification counts, pending changes, and the last rebuild time. Tenant-wide singleton -- no parameters. Use before deciding whether to call rebuild_search_index.

Parameters: none.

Returns:

FieldTypeDescription
rebuildRequiredboolean
rebuildScheduledboolean
indexedRecordsinteger
indexedClassificationsinteger
pendingChangesinteger
lastChangeIdinteger
lastChangeDateTimestring (optional)
lastIndexRebuildstring (optional)

get_supported_version

Available on request

Gets detail (documentation URI) for one supported Aprimo API version, by its exact version number. Use after list_supported_versions.

Parameters:

ParameterTypeRequiredDescription
versionstringYesThe API version number to look up, e.g. "1", from list_supported_versions.

Returns:

FieldTypeDescription
versionstring (optional)
documentationUristring (optional)

get_unique_key_index_status

Available on request

Gets the status of Aprimo's unique-key index (enforces uniqueness for fields configured as unique keys across records and classifications): processed record/classification counts, whether reindexing is running, whether duplicates were found, and whether a rebuild is required. Tenant-wide singleton -- no parameters. Use before deciding whether to call rebuild_unique_key_index.

Parameters: none.

Returns:

FieldTypeDescription
totalProcessedRecordsinteger
totalProcessedClassificationsinteger
isReindexingboolean
hasDuplicatesboolean
indexBuildRequiredboolean
lastTimeIndexedstring (optional)

list_counters

Available on request

Lists every named counter configured in Aprimo (persistent, atomically-incrementing integer sequences typically used to generate unique values, e.g. an invoice number or SKU, for a custom field): name and current value. Use to look up a counter's exact name before calling update_counter.

Parameters: none.

Returns:

FieldTypeDescription
countinteger
itemsarray of CounterPayload
items[].namestring (optional)
items[].valueinteger

list_integration_logs

Available on request

Lists integration logs in Aprimo Marketing Operations, paged and sortable.

Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.

Parameters:

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results to return (1–50, default 20).
offsetintegerNoNumber of results to skip for pagination (default 0).
sortFieldstringNoOptional field name to sort by. Omit for default ordering.
sortAscendingbooleanNoSort direction. true = ascending (default), false = descending.

Returns:

FieldTypeDescription
collectionNamestring (optional)Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped.
totalRecordsintegerTotal record count across all pages — from the wire's _total.
countintegerNumber of items returned in this response (i.e. Items.Count; precomputed for the llm).
offsetintegerThe offset that was used to produce this page (echoes the caller's offset, clamped to ≥0).
hasMorebooleanTrue when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page.
nextOffsetinteger (optional)Offset to pass on the next request to continue. Null when is false.
itemsarray of IntegrationLogProjectionThe items returned in this response.
items[].idstring (optional)
items[].namestring (optional)
items[].rawobject (optional)The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above.

list_maintenance_job_targets

Available on request

Lists every target of an Aprimo maintenance job by maintenance job id — the records/classifications/rules/orders it targets and each one's per-target status. Use to look up a maintenance target's id before calling get_maintenance_job_target.

Parameters:

ParameterTypeRequiredDescription
maintenanceJobIdstringYesThe maintenance job id (GUID) whose targets to list.

Returns:

FieldTypeDescription
maintenanceJobIdstring
countinteger
itemsarray of MaintenanceJobTargetPayload
items[].idstring
items[].recordIdstring (optional)
items[].classificationIdstring (optional)
items[].objectIdstring (optional)
items[].ruleTargetstring (optional)
items[].statusstring (optional)
items[].messagestring (optional)
items[].errorDetailsstring (optional)
items[].attemptinteger (optional)

list_maintenance_jobs

Available on request

Lists Aprimo maintenance jobs: id, job type, status, targets count, priority, and dates. Use when the user asks what maintenance jobs exist or their status, or to look up a maintenance job id before calling check_maintenance_job, get_maintenance_job_target, or list_maintenance_job_targets.

Parameters:

ParameterTypeRequiredDescription
filterstringNoOptional filter expression (DAM query syntax), e.g. "CreatedOn in today". Omit to list every maintenance job.
sortstringNoOptional sort expression, e.g. "createdon desc". Omit for the endpoint's default order.
skipintegerNoNumber of items to skip, for paging. Defaults to 0.
takeintegerNoMaximum number of items to return. Omit for the endpoint's default page size.

Returns:

FieldTypeDescription
countinteger
itemsarray of MaintenanceJobSummaryPayload
items[].maintenanceJobIdstring
items[].typestring (optional)
items[].statusstring
items[].targetsCountinteger (optional)
items[].failedTargetsCountinteger
items[].priorityinteger (optional)/// DAM's MaintenancePriority enum value (0 = High, 1 = Medium, 2 = AuditArchiving, 3 = BuildSearchIndex) — see 's remarks for why this is a number, not the string other DAM status-style fields use.
items[].createdOnstring (optional)
items[].startedOnstring (optional)
items[].creatorEmailstring (optional)
items[].messagestring (optional)

list_solution_sets

Available on request

Lists the solution sets (licensed solution modules) installed for the current tenant in Aprimo Marketing Operations.

Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.

Parameters: none.

Returns:

FieldTypeDescription
collectionNamestring (optional)Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped.
totalRecordsintegerTotal record count across all pages — from the wire's _total.
countintegerNumber of items returned in this response (i.e. Items.Count; precomputed for the llm).
offsetintegerThe offset that was used to produce this page (echoes the caller's offset, clamped to ≥0).
hasMorebooleanTrue when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page.
nextOffsetinteger (optional)Offset to pass on the next request to continue. Null when is false.
itemsarray of SolutionSetProjectionThe items returned in this response.
items[].idstring (optional)
items[].namestring (optional)
items[].rawobject (optional)The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above.

list_supported_versions

Available on request

Lists every API version Aprimo currently supports (version number + documentation URI). Use to look up a version's exact number before calling get_supported_version.

Parameters: none.

Returns:

FieldTypeDescription
countinteger
itemsarray of SupportedVersionPayload
items[].versionstring (optional)
items[].documentationUristring (optional)

rebuild_search_index

Available on request

Triggers a rebuild of Aprimo's record/classification search index. This modifies data (queues a resource-intensive reindex). Requires confirmed=true after confirming with the user.

Parameters:

ParameterTypeRequiredDescription
rebuildScheduledbooleanNoWhether to schedule the rebuild instead of running it immediately. Required -- DAM has no default for this.
rebuildTargetstringNoWhich resource type to rebuild the index for: "Classification" or "Record". Omit to rebuild DAM's default target.
confirmedbooleanNoMust be true to proceed. Set to false (or omit) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly confirmed.

Returns:

FieldTypeDescription
triggeredboolean
rebuildScheduledboolean (optional)
rebuildTargetstring (optional)

rebuild_unique_key_index

Available on request

Triggers a rebuild of Aprimo's unique-key index. This modifies data (queues a resource-intensive reindex). Requires confirmed=true after confirming with the user.

Parameters:

ParameterTypeRequiredDescription
confirmedbooleanNoMust be true to proceed. Set to false (or omit) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly confirmed.

Returns:

FieldTypeDescription
triggeredboolean

search_integration_logs

Available on request

Searches integration logs in Aprimo Marketing Operations with a JSON query body, paged and sortable. No resource is created or changed by this call.

Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.

Parameters:

ParameterTypeRequiredDescription
querystringYesJSON object with the search query PM expects (PM query DSL). Pass "{}" for an unfiltered search.
limitintegerNoMaximum number of results to return (1–50, default 20).
offsetintegerNoNumber of results to skip for pagination (default 0).
sortFieldstringNoOptional field name to sort by. Omit for default ordering.
sortAscendingbooleanNoSort direction. true = ascending (default), false = descending.

Returns:

FieldTypeDescription
collectionNamestring (optional)Resource-name key the wire's _embedded used (e.g. "Activity", "Project"). Informational; may be null when the response isn't HAL-shaped.
totalRecordsintegerTotal record count across all pages — from the wire's _total.
countintegerNumber of items returned in this response (i.e. Items.Count; precomputed for the llm).
offsetintegerThe offset that was used to produce this page (echoes the caller's offset, clamped to ≥0).
hasMorebooleanTrue when there are more results past this page. Tools should prompt the llm to ask the user about fetching the next page.
nextOffsetinteger (optional)Offset to pass on the next request to continue. Null when is false.
itemsarray of IntegrationLogProjectionThe items returned in this response.
items[].idstring (optional)
items[].namestring (optional)
items[].rawobject (optional)The complete wire object, verbatim, for full fidelity beyond the defensively-extracted fields above.

update_counter

Available on request · Destructive

Sets an Aprimo counter's value, by its exact name -- DAM upserts, so a name that doesn't already exist gets created with this value. This modifies data and there is no way to delete a counter afterward. Requires both confirmed=true and confirmedDestructive=true, after explicitly confirming the exact counter name and new value with the user.

Parameters:

ParameterTypeRequiredDescription
counterNamestringYesThe counter's exact name, from list_counters.
valueintegerYesThe new value for the counter.
confirmedbooleanNoMust be true to proceed. Set to false (or omit) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly confirmed the exact counter name and value.
confirmedDestructivebooleanNoMust also be true (in addition to confirmed) -- this can create a brand-new counter with no way to delete it afterward, and overwriting an existing one's value cannot be undone. Set only after stating the exact counter name and value to the user and getting explicit go-ahead.

Returns:

FieldTypeDescription
namestring
valueinteger
Destructive operation

This tool deletes or irreversibly overwrites data in the live tenant; the change cannot be rolled back through the API. It will not act unless the call sets both confirmed and confirmedDestructive to true.