Search
Tools for keyword search across the DAM, search suggestions, and image similarity search.
This page covers 4 tools, 1 of them 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_search_field_value_suggestions | On request | Gets field-value autocomplete suggestions for Aprimo given partial input text and a set of field ids, grouped by language. |
get_search_phrase_suggestions | On request | Gets phrase-level search-box suggestions for Aprimo for a piece of input text (e.g. as the user types a search query). |
search_aprimo | Default | Searches Aprimo assets by keyword with optional filters. |
start_image_similarity_search | On request | Starts an asynchronous Aprimo job that searches for images similar to the image at a given URL, and returns the job's id. |
get_search_field_value_suggestions
Available on request
Gets field-value autocomplete suggestions for Aprimo given partial input text and a set of field ids, grouped by language. Use to power metadata-field autocomplete.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
input | string | Yes | The partial text typed by the user to get suggestions for. |
fieldIds | array of string | Yes | The field ids (32-char hex / GUID) to generate suggestions from, e.g. from list_field_definitions. |
languageIds | // Bug fix: DAM's suggestion endpoint unconditionally loops over languageIds with no null-check // (an immediate nre, the same for every field/input, confirmed via direct dam-repo trace -- see // docs/internal/pm-dam-qa-followups.md) -- there was never a working "omit for all languages" // path to begin with. Kept nullable/optional at the C# signature level (not a non-nullable // required parameter) deliberately -- confirmed live that the MCP sdk's own parameter binding // rejects a call that omits a non-nullable required parameter with a generic "error occurred // invoking" message before this method body (and its validation check below) ever runs. Nullable // + the explicit check below is what actually produces the clean "at least one language id is // required" message a caller can act on. List<string> | No | The language ids (32-char hex / GUID) to search within. Required -- DAM has no "all languages" default for this; get language ids from list_languages. |
fuzziness | string | No | Optional fuzziness (edit-distance) setting for the suggestion match. |
numberOfSuggestions | integer | No | Optional maximum number of suggestions to return per language. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer | |
items | array of LanguageSuggestionsPayload | |
items[].languageId | string | |
items[].suggestions | array of SuggestionPayload | |
items[].suggestions[].text | string | |
items[].suggestions[].score | number (optional) |
get_search_phrase_suggestions
Available on request
Gets phrase-level search-box suggestions for Aprimo for a piece of input text (e.g. as the user types a search query). Use to power search-as-you-type suggestions.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | Yes | The input text to generate phrase suggestions for. |
maxSuggestions | integer | No | Optional maximum number of suggestions to return. |
languageIds | array of string | No | Optional language ids (32-char hex / GUID) to search suggestions within. Omit to search all configured languages. |
Returns:
| Field | Type | Description |
|---|---|---|
count | integer | |
suggestions | array of string |
search_aprimo
In the default tool list
Searches Aprimo assets by keyword with optional filters. Returns structured JSON data for each matching asset. Supports filtering by date range (created/modified) and file type in addition to keyword search. Display format: For each result, show the title in bold, then list the deep link, content type, file type, dates, preview URI (as a plain URL, never as an HTML img tag), and custom fields as bullet points underneath. Separate results with a blank line. Important: Always display all returned results and all custom fields for every result. Never summarize, truncate, or omit results or fields. Custom fields display: For each custom field, show only the label and value as "label: value". Do not show the id, fieldName, or dataType — those are internal metadata for follow-up tool calls, not for the user. If the user asks for specific custom fields (e.g. "show keywords", "include the status"), pass their terms via includeFields — matching is case-insensitive and partial, so "keyword" matches a field labeled "Keywords". At the end, always show the search results page link. Use this tool for finding images, documents, videos, and other digital assets — not for asking questions (use ask_content_coach for questions). Do not use ask_content_coach as a fallback. Examples: query="product brochure", query="logo" limit=5 sort="title_asc", query="banner" createdAfter="2026-01-01", query="card" fileType="png", query="report" modifiedAfter="2026-03-01" modifiedBefore="2026-03-15" sort="modified_desc".
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The exact search keywords. Only include the relevant search terms — no filler text, instructions, or conversational phrasing. Extract only the core search terms the user wants to find. Bad: 'find me some product brochures', 'can you search for logos', 'I need banner images'. Good: 'product brochure', 'logo', 'banner image'. If the term is pluralized, use its singular form. Important: If the user refers to Aprimo by name (e.g. 'Find Aprimo PNGs'), do not include 'Aprimo' as a keyword — it is the system name, not a search term. Use '*' as the query to match all assets when the user's intent is to browse or filter without a specific keyword. |
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). |
sort | string | No | Sort order for results. Options: "relevance" (default), "modified_desc", "modified_asc", "created_desc", "created_asc", "title_asc", "title_desc", "popularity". Use "modified_desc" when the user wants the newest/latest, "created_desc" for recently added, "title_asc" for alphabetical, "popularity" for most popular. |
createdAfter | string | No | Filter to assets created on or after this date (ISO 8601 format, e.g. "2026-01-15"). Use for queries like "created last week" or "added after January". |
createdBefore | string | No | Filter to assets created on or before this date (ISO 8601 format, e.g. "2026-03-01"). Use with createdAfter for a date range. |
modifiedAfter | string | No | Filter to assets modified on or after this date (ISO 8601 format, e.g. "2026-03-01"). Use for queries like "updated recently" or "changed this month". |
modifiedBefore | string | No | Filter to assets modified on or before this date (ISO 8601 format, e.g. "2026-03-15"). |
fileType | string | No | Filter by file extension (e.g. "jpg", "pdf", "png", "mp4", "docx"). Use when the user specifies a file type like "find me PDF reports" or "show png logos". |
includeFields | string | No | Optional comma-separated list of custom field terms to include for each result. Matching is case-insensitive: an exact match on field id, or a substring match on fieldName or label. Examples: "keywords", "status", "brand,campaign". Omit to return all custom fields. |
Returns:
| Field | Type | Description |
|---|---|---|
context | string | |
total_count | integer | |
count | integer | |
offset | integer | |
has_more | boolean | |
next_offset | integer (optional) | |
searchResultsLink | string (optional) | |
items | array of SearchAprimoItem | |
items[].title | string | |
items[].deepLink | string (optional) | |
items[].customFields | array of SearchAprimoFieldValue | |
items[].customFields[].id | string | |
items[].customFields[].fieldName | string (optional) | |
items[].customFields[].label | string (optional) | |
items[].customFields[].dataType | string (optional) | |
items[].customFields[].value | string (optional) | |
items[].createdDate | string (optional) | |
items[].modifiedDate | string (optional) | |
items[].contentType | string (optional) | |
items[].fileExtension | string (optional) | |
items[].previewUri | string (optional) |
start_image_similarity_search
Available on request
Starts an asynchronous Aprimo job that searches for images similar to the image at a given URL, and returns the job's id. Important limitation: the DAM rest API documents no endpoint to retrieve this job's results (no poll/status/result endpoint exists for this job type) — this tool can only confirm the job was accepted, not report matches. This modifies data (creates a job). Tell the user about this limitation before using it.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The URL of the image to search for similar images to. |
maxResults | integer | No | Optional maximum number of results the job should collect. |
userAgent | string | No | Optional user agent to use when fetching the image at the URL. |
sift | string | No | Optional sift (feature-matching) options for the search. |
pHash | string | No | Optional perceptual-hash matching options for the search. |
creatorEmail | string | No | Optional email address of the user the job is created on behalf of. |
disableNotification | boolean | No | When true, suppresses job-completion notifications. Omit for the endpoint's default. |
earliestStartDate | string | No | Optional ISO-8601 timestamp; the job will not start executing before this time. |
priority | string | No | Optional job priority: "High" or "Medium". |
Returns:
| Field | Type | Description |
|---|---|---|
jobId | string | |
note | string |
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