Metadata
Tools for the metadata scaffolding behind fields — selection lists, lookup lists, pick list options, and system type values.
This page covers 12 tools, all of them available on request rather than in the default tool list.
- 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
confirmedandconfirmedDestructivetotrue. - Activity and Project labels vary by tenant. Where this page says Activity or Project, your tenant's own configured terminology is substituted at runtime.
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
| Tool | Status | What it does |
|---|---|---|
get_active_system_type_values | On request | Retrieves only the active values for a system type, by its name, paged, in Aprimo Marketing Operations. |
get_allowed_child_pick_list_options | On request | Retrieves the allowed child pick list options for a parent pick list item, by the extended attribute's integer ID and the parent pick list item's integer ID, in Aprimo Marketing Operations. |
get_lookup_list | On request | Retrieves a lookup list by its integer ID in Aprimo Marketing Operations. |
get_metadata | On request | Retrieves metadata for a resource by its object name (e.g. "Activity", "Project") in Aprimo Marketing Operations -- field definitions, data types, and lookup/selection-list bindings. |
get_metadata_for_groups | On request | Retrieves metadata for the group resource in Aprimo Marketing Operations (field definitions, data types, and lookup/selection-list bindings). |
get_pick_list_options | On request | Retrieves the pick list options for an extended attribute, by the attribute's integer ID, in Aprimo Marketing Operations. |
get_selection_list | On request | Retrieves a selection list by name in Aprimo Marketing Operations (e.g. "ActivityTypeList"). |
get_system_type_value | On request | Retrieves a single value for a system type, by the system type's name and the value's integer ID, in Aprimo Marketing Operations. |
get_system_type_values | On request | Retrieves the values for a system type, by its name, paged, in Aprimo Marketing Operations. |
list_system_types | On request | Lists all system types (name + API endpoint) in Aprimo Marketing Operations. |
update_allowed_child_pick_list_options | On request | Updates the allowed child pick list options for a parent pick list item, by the extended attribute's integer ID and the parent pick list item's integer ID, in Aprimo Marketing Operations. |
update_pick_list_options | On request | Updates the pick list options for an extended attribute, by the attribute's integer ID, in Aprimo Marketing Operations. |
get_active_system_type_values
Available on request
Retrieves only the active values for a system type, by its name, paged, in Aprimo Marketing Operations. Use get_system_type_values to see all values (active and inactive).
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
systemType | string | Yes | The system type's name (e.g. "Country"). |
limit | integer | No | Maximum number of results to return (1-50, default 20). |
offset | integer | No | Number of results to skip for pagination (default 0). |
sortField | string | No | Optional field name to sort by. Omit for default ordering. |
sortAscending | boolean | No | Sort direction. true = ascending (default), false = descending. |
Returns:
| Field | Type | Description |
|---|---|---|
systemType | string (optional) | The system type's name (echoes the caller's parameter). |
totalRecords | integer | Total record count across all pages. |
count | integer | Number of items returned in this page (precomputed for the llm). |
items | array of SystemTypeValueProjection | The values for this page. |
items[].systemTypeId | integer | The value's integer identifier. |
items[].resourceId | string (optional) | Resource-bundle key for the value's display label. |
items[].description | string (optional) | The value's description. |
items[].activeFlag | integer | The active flag (PM wires this as an integer, not a bool). |
items[].sequence | integer (optional) | Sort sequence, when set. |
get_allowed_child_pick_list_options
Available on request
Retrieves the allowed child pick list options for a parent pick list item, by the extended attribute's integer ID and the parent pick list item's integer ID, in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
eaId | string | Yes | The parent extended attribute's integer ID. |
parentPicklistItemId | string | Yes | The parent pick list item's integer ID. |
filter | string | No | Optional text used to filter the child pick list options. Omit for the full list. |
limit | integer | No | Maximum number of results to return (1-50, default 20). |
offset | integer | No | Number of results to skip for pagination (default 0). |
childValue | integer | No | Optional currently selected child list item value. |
Returns:
| Field | Type | Description |
|---|---|---|
listName | string (optional) | The list's name/identifier, when returned by the wire (named selection lists only -- EA pick-lists and allowed-child-lists don't carry one). |
description | string (optional) | The list's description, when present. |
count | integer | Number of items (precomputed for the llm). |
items | array of SelectionListItemProjection | The list's items. |
items[].itemId | integer | The item's integer value (PM's itemId). |
items[].resourceId | string (optional) | Resource-bundle key for the item's display label -- not human-readable on its own (see ResourceTools' get_resource to resolve it). |
items[].displayValue | string (optional) | Display value identifier. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
items[].systemName | string (optional) | Optional system (code) name for this item. |
items[].color | string (optional) | Optional css color for this item. |
get_lookup_list
Available on request
Retrieves a lookup list by its integer ID in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
lookupId | string | Yes | The lookup list's integer ID. |
subListId | integer | No | Optional integer ID of a sub-list to retrieve. Default 0 (the top-level list). |
filterText | string | No | Optional text used to filter the lookup entries. Omit for the full list. |
Returns:
| Field | Type | Description |
|---|---|---|
lookupId | integer | The lookup list's integer identifier (echoes the caller's parameter). |
description | string (optional) | The lookup list's description, if any. |
count | integer | Number of items (precomputed for the llm; PM's own count field is also captured here, so the two should agree). |
items | array of LookupListItemProjection | The lookup list's items. |
items[].key | integer | The item's integer key. |
items[].value | string (optional) | The item's display value. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
get_metadata
Available on request
Retrieves metadata for a resource by its object name (e.g. "Activity", "Project") in Aprimo Marketing Operations -- field definitions, data types, and lookup/selection-list bindings. Not the groups variant (use get_metadata_for_groups for that).
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
resourceName | string | Yes | The resource's object name (e.g. "Activity", "Project", "activity-forecast"). |
Returns:
| Field | Type | Description |
|---|---|---|
objectName | string (optional) | The name of the resource this metadata describes. |
supportsEAs | boolean | Whether this object supports extended attributes. |
supportsSecureEAs | boolean | Whether this object supports secure extended attributes. |
nameResourceId | string (optional) | Resource id for this resource's display name. |
contentType | string (optional) | The mime type returned by the API for this resource, if any. |
fieldCount | integer | Number of fields (precomputed for the llm). |
fields | array of FieldMetadataProjection | This resource's fields, flattened to their scalar properties. |
fields[].fieldName | string (optional) | The field's name. |
fields[].titleResourceId | string (optional) | Resource-bundle key for the field's display label. |
fields[].fieldDataType | integer | The field's data type (PM's MetadataDataType enum, wired as an integer code). |
fields[].lookupListId | integer (optional) | The lookup list id used by this field, if any. |
fields[].attributeHelpTextId | string (optional) | Resource id for this field's attribute help text, if any. |
fields[].timeValueType | integer | How a DateTime value on this field should be interpreted (PM's TimeConversionMethod enum, wired as an integer code). |
fields[].amsAttributeId | integer (optional) | The ams attribute id used to identify this field, if any. |
fields[].isSecure | boolean | Whether this field has its own security controls. |
fields[].isReadOnly | boolean | Whether this field is read-only during an update. |
fields[].allowInitialValue | boolean | Whether this field can be set during creation. |
fields[].inactive | boolean | Whether this field is inactive. |
fields[].selectionListName | string (optional) | The name of the selection list backing this field, if any. |
fields[].entityFieldName | string (optional) | The corresponding field name on the entity. |
fields[].systemTypeName | string (optional) | The system type name used when accessing the system-type API for this field, if any. |
fields[].parentName | string (optional) | The name of the parent resource, if any. |
fields[].parentFieldName | string (optional) | The name of the parent field for a pick-list relationship, if any. |
fields[].parentFieldType | integer (optional) | The parent field type (PM's MetadataFieldType enum, wired as an integer code), if any. |
fields[].fieldType | integer | The metadata field type (PM's MetadataFieldType enum, wired as an integer code). |
fields[].defaultValue | string (optional) | The field's default value, if any. |
fields[].tabSequence | integer | The tab sequence identifier. |
raw | object (optional) | /// The full, untouched data object -- preserves the nested sub-structures (validation rules, value-manipulation rules, valid values, lookup values, child objects, EA sections) that doesn't flatten, same "Raw" precedent as AssociatedActivitiesResponse. |
get_metadata_for_groups
Available on request
Retrieves metadata for the group resource in Aprimo Marketing Operations (field definitions, data types, and lookup/selection-list bindings). Deprecated on PM's side in favor of get_metadata with resourceName "groups" but retained for backward compatibility.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
objectName | string (optional) | The name of the resource this metadata describes. |
supportsEAs | boolean | Whether this object supports extended attributes. |
supportsSecureEAs | boolean | Whether this object supports secure extended attributes. |
nameResourceId | string (optional) | Resource id for this resource's display name. |
contentType | string (optional) | The mime type returned by the API for this resource, if any. |
fieldCount | integer | Number of fields (precomputed for the llm). |
fields | array of FieldMetadataProjection | This resource's fields, flattened to their scalar properties. |
fields[].fieldName | string (optional) | The field's name. |
fields[].titleResourceId | string (optional) | Resource-bundle key for the field's display label. |
fields[].fieldDataType | integer | The field's data type (PM's MetadataDataType enum, wired as an integer code). |
fields[].lookupListId | integer (optional) | The lookup list id used by this field, if any. |
fields[].attributeHelpTextId | string (optional) | Resource id for this field's attribute help text, if any. |
fields[].timeValueType | integer | How a DateTime value on this field should be interpreted (PM's TimeConversionMethod enum, wired as an integer code). |
fields[].amsAttributeId | integer (optional) | The ams attribute id used to identify this field, if any. |
fields[].isSecure | boolean | Whether this field has its own security controls. |
fields[].isReadOnly | boolean | Whether this field is read-only during an update. |
fields[].allowInitialValue | boolean | Whether this field can be set during creation. |
fields[].inactive | boolean | Whether this field is inactive. |
fields[].selectionListName | string (optional) | The name of the selection list backing this field, if any. |
fields[].entityFieldName | string (optional) | The corresponding field name on the entity. |
fields[].systemTypeName | string (optional) | The system type name used when accessing the system-type API for this field, if any. |
fields[].parentName | string (optional) | The name of the parent resource, if any. |
fields[].parentFieldName | string (optional) | The name of the parent field for a pick-list relationship, if any. |
fields[].parentFieldType | integer (optional) | The parent field type (PM's MetadataFieldType enum, wired as an integer code), if any. |
fields[].fieldType | integer | The metadata field type (PM's MetadataFieldType enum, wired as an integer code). |
fields[].defaultValue | string (optional) | The field's default value, if any. |
fields[].tabSequence | integer | The tab sequence identifier. |
raw | object (optional) | /// The full, untouched data object -- preserves the nested sub-structures (validation rules, value-manipulation rules, valid values, lookup values, child objects, EA sections) that doesn't flatten, same "Raw" precedent as AssociatedActivitiesResponse. |
get_pick_list_options
Available on request
Retrieves the pick list options for an extended attribute, by the attribute's integer ID, in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
eaId | string | Yes | The extended attribute's integer ID. |
filter | string | No | Optional text used to filter the pick list options. Omit for the full list. |
Returns:
| Field | Type | Description |
|---|---|---|
listName | string (optional) | The list's name/identifier, when returned by the wire (named selection lists only -- EA pick-lists and allowed-child-lists don't carry one). |
description | string (optional) | The list's description, when present. |
count | integer | Number of items (precomputed for the llm). |
items | array of SelectionListItemProjection | The list's items. |
items[].itemId | integer | The item's integer value (PM's itemId). |
items[].resourceId | string (optional) | Resource-bundle key for the item's display label -- not human-readable on its own (see ResourceTools' get_resource to resolve it). |
items[].displayValue | string (optional) | Display value identifier. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
items[].systemName | string (optional) | Optional system (code) name for this item. |
items[].color | string (optional) | Optional css color for this item. |
get_selection_list
Available on request
Retrieves a selection list by name in Aprimo Marketing Operations (e.g. "ActivityTypeList").
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
selectionListName | string | Yes | The selection list's name (e.g. "ActivityTypeList") -- a bare string, not numeric. |
parentValue | integer | No | Optional parent list item value used to filter dependent list items. Omit for the full list. |
filter | string | No | Optional text used to filter the selection list items. Omit for the full list. |
Returns:
| Field | Type | Description |
|---|---|---|
listName | string (optional) | The list's name/identifier, when returned by the wire (named selection lists only -- EA pick-lists and allowed-child-lists don't carry one). |
description | string (optional) | The list's description, when present. |
count | integer | Number of items (precomputed for the llm). |
items | array of SelectionListItemProjection | The list's items. |
items[].itemId | integer | The item's integer value (PM's itemId). |
items[].resourceId | string (optional) | Resource-bundle key for the item's display label -- not human-readable on its own (see ResourceTools' get_resource to resolve it). |
items[].displayValue | string (optional) | Display value identifier. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
items[].systemName | string (optional) | Optional system (code) name for this item. |
items[].color | string (optional) | Optional css color for this item. |
get_system_type_value
Available on request
Retrieves a single value for a system type, by the system type's name and the value's integer ID, in Aprimo Marketing Operations.
Response format: the response carries a pre-rendered markdown block intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
systemType | string | Yes | The system type's name (e.g. "Country"). |
systemTypeId | string | Yes | The value's integer ID. |
Returns:
| Field | Type | Description |
|---|---|---|
systemType | string (optional) | The system type's name (echoes the caller's parameter). |
systemTypeId | integer | The requested value's integer identifier (echoes the caller's parameter). |
items | array of SystemTypeValueProjection | The matching value(s) -- normally 0 or 1 entries. |
items[].systemTypeId | integer | The value's integer identifier. |
items[].resourceId | string (optional) | Resource-bundle key for the value's display label. |
items[].description | string (optional) | The value's description. |
items[].activeFlag | integer | The active flag (PM wires this as an integer, not a bool). |
items[].sequence | integer (optional) | Sort sequence, when set. |
get_system_type_values
Available on request
Retrieves the values for a system type, by its name, paged, in Aprimo Marketing Operations. Use get_active_system_type_values to only see active values.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
systemType | string | Yes | The system type's name (e.g. "Country"). |
limit | integer | No | Maximum number of results to return (1-50, default 20). |
offset | integer | No | Number of results to skip for pagination (default 0). |
sortField | string | No | Optional field name to sort by. Omit for default ordering. |
sortAscending | boolean | No | Sort direction. true = ascending (default), false = descending. |
Returns:
| Field | Type | Description |
|---|---|---|
systemType | string (optional) | The system type's name (echoes the caller's parameter). |
totalRecords | integer | Total record count across all pages. |
count | integer | Number of items returned in this page (precomputed for the llm). |
items | array of SystemTypeValueProjection | The values for this page. |
items[].systemTypeId | integer | The value's integer identifier. |
items[].resourceId | string (optional) | Resource-bundle key for the value's display label. |
items[].description | string (optional) | The value's description. |
items[].activeFlag | integer | The active flag (PM wires this as an integer, not a bool). |
items[].sequence | integer (optional) | Sort sequence, when set. |
list_system_types
Available on request
Lists all system types (name + API endpoint) in Aprimo Marketing Operations.
Response format: the response carries pre-rendered markdown blocks intended to be displayed verbatim.
Parameters: none.
Returns:
| Field | Type | Description |
|---|---|---|
count | integer | Number of system types (precomputed for the llm). |
items | array of SystemTypeSummaryProjection | The system types. |
items[].systemTypeName | string (optional) | The system type's name. |
items[].uri | string (optional) | The API endpoint for this system type. |
update_allowed_child_pick_list_options
Available on request
Updates the allowed child pick list options for a parent pick list item, by the extended attribute's integer ID and the parent pick list item's integer ID, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the updated allowed-child list.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
eaId | string | Yes | The parent extended attribute's integer ID. |
parentPicklistItemId | string | Yes | The parent pick list item's integer ID. |
body | string | Yes | JSON object with the updated allowed-child relationship data (PM wire names, e.g. {"allowed": [1, 2, 3]}). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
listName | string (optional) | The list's name/identifier, when returned by the wire (named selection lists only -- EA pick-lists and allowed-child-lists don't carry one). |
description | string (optional) | The list's description, when present. |
count | integer | Number of items (precomputed for the llm). |
items | array of SelectionListItemProjection | The list's items. |
items[].itemId | integer | The item's integer value (PM's itemId). |
items[].resourceId | string (optional) | Resource-bundle key for the item's display label -- not human-readable on its own (see ResourceTools' get_resource to resolve it). |
items[].displayValue | string (optional) | Display value identifier. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
items[].systemName | string (optional) | Optional system (code) name for this item. |
items[].color | string (optional) | Optional css color for this item. |
update_pick_list_options
Available on request
Updates the pick list options for an extended attribute, by the attribute's integer ID, in Aprimo Marketing Operations. Requires confirmed=true after showing the user the exact payload. Returns the updated pick list.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
eaId | string | Yes | The extended attribute's integer ID. |
body | string | Yes | JSON object with the updated selection list data (PM wire names, e.g. {"items": [...]}). |
confirmed | boolean | No | Must be true to proceed. Omit (or false) to get a confirmation gate error, then call again with confirmed=true after the user has explicitly approved the payload. |
Returns:
| Field | Type | Description |
|---|---|---|
listName | string (optional) | The list's name/identifier, when returned by the wire (named selection lists only -- EA pick-lists and allowed-child-lists don't carry one). |
description | string (optional) | The list's description, when present. |
count | integer | Number of items (precomputed for the llm). |
items | array of SelectionListItemProjection | The list's items. |
items[].itemId | integer | The item's integer value (PM's itemId). |
items[].resourceId | string (optional) | Resource-bundle key for the item's display label -- not human-readable on its own (see ResourceTools' get_resource to resolve it). |
items[].displayValue | string (optional) | Display value identifier. |
items[].sequence | integer (optional) | Sort sequence, when set. |
items[].active | boolean | Whether this item is active. |
items[].systemName | string (optional) | Optional system (code) name for this item. |
items[].color | string (optional) | Optional css color for this item. |
Related
- Aprimo MCP Server — configuration, connection details, and authentication
- MCP Tool Permission Map — the Aprimo permissions that make each tool visible to your agent
- REST API vs. MCP — choosing the right integration approach for your agent