SearchUnify MCP Tools and Response Formats

SearchUnify MCP exposes core tools for search, filtering, analytics, and search client discovery. The login tool is available only through the /mcp-connect endpoint.

Tool Purpose
search

Runs a SearchUnify query and retrieves relevant results

login

Starts the tool-based login flow through /mcp-connect

get-filter-options

Retrieves available filters or facets for a query

analytics

Retrieves SearchUnify analytics reports

get-search-clients

Lists available SearchUnify search clients

Note: The login tool is available only through the /mcp-connect endpoint. It is not available on standard OAuth or header-based endpoints.

Use the search tool to run a SearchUnify query and retrieve relevant search results from the connected SearchUnify instance. The tool can return standard search results or enriched GPT context, depending on the configuration of the SearchUnify search client.

Supported parameters

Parameter Type Required Description
searchString string Yes

Query text to search for. Minimum 3 characters and maximum 100 characters. Can be a single word, phrase, or sentence.

pageSize integer No

Number of results per page. Minimum 1 and maximum 100. Default is 10.

page integer No

Page number for pagination. Minimum 1 and maximum 100. Default is 1.

sortBy string No

Field used to sort results. Allowed values are _score and post_time.

aggregations aggregations No

List of facet filters used to narrow results. Use values returned by get-filter-options.

versionResults boolean No

Determines whether versioned document results are used. Default is false.

Aggregation Object Schema

Use the following schema when passing filters to the aggregations parameter:

Copy

JSON

{
  "type": "_type",
  "filter": "document"
}

Field

Type

Description

type

string

Aggregation or facet key, such as _index, _type, or documentation_category.

filter string

Selected filter value.

Example Request

Copy
{
 "searchString": "configure search client",
 "page": 1,
 "pageSize": 10,
 "sortBy": "_score",
 "versionResults": false,
 "aggregations": [
   {
     "type": "_type",
     "filter": "document"
   }
 ]
}

Behavior notes

  • If the connected SearchUnify search client has GPT enabled, the tool returns enriched GPT context with links and descriptions.

  • If GPT is not enabled, the tool returns standard search hits with fields such as title, summary, and URL.

  • HTML tags are stripped from results automatically.

  • If versionResults is supported in the response, the primary document appears instead of separate versioned documents.

Sample Response

Copy
{
 "content": [
   {
     "type": "text",
     "text": "title: How to Configure Search Clients\nsummary: Learn how to set up and manage search clients in SearchUnify.\nurl: https://docs.searchunify.com/search-clients\n---\ntitle: Content Sources Overview\nsummary: A guide to adding and managing content sources.\nurl: https://docs.searchunify.com/content-sources\n---"
   }
 ]
}

login

Use the login tool to start the tool-based SearchUnify MCP login flow.

This tool is used when an MCP-compatible AI client connects through the /mcp-connect endpoint. It is useful in environments where the browser does not open automatically or where the client needs to display a login link directly in the chat.

Availability

The login tool is available only on the /mcp-connect endpoint.

It is not available on:

  • Standard OAuth endpoints

  • Header-based authentication endpoints

Supported Parameters

The login tool does not require any parameters.

Behavior

When invoked, the tool returns a connection link. The user opens the link, enters the required SearchUnify connection details, and completes login in the browser.

After successful login, the remaining SearchUnify MCP tools become available for the session.

Sample Response

Copy
{
 "content": [
   {
     "type": "text",
     "text": "Please present this login link to the user so they can connect their SearchUnify instance:\n\n[Connect SearchUnify](https://mcp.searchunify.com/mcp-connect/login?s=<session_id>)\n\nIf your client supports clickable links, render the markdown above. Otherwise show the plain URL so the user can copy it. After the user completes login in their browser, let them know you are ready to continue."
   }
 ]
}

User Login Fields

The user is asked to provide the following details on the SearchUnify MCP connection page:

Field

Description

Instance URL

SearchUnify instance URL

Search Client UID

UID of the search client that MCP should use

OAuth Client ID

Client ID generated from the SearchUnify API Client

OAuth Client Secret

Client Secret generated from the SearchUnify API Client

Important: For hosted SearchUnify MCP, the OAuth Client should use the MCP callback URL:

https://mcp.searchunify.com/su-callback

Recommended Use

Use login when:

  • The client connects to /mcp-connect.

  • The browser-based OAuth flow does not open automatically.

  • The AI client needs to display a login link inside the conversation.

  • The user needs to manually complete SearchUnify MCP login.

The /mcp-connect is specifically intended for tool-based login and returns a clickable connection link in the chat.

get-filter-options

Use the get-filter-options tool to retrieve available filters or facets for a search query. This tool is useful when the user wants to narrow a search by source, content type, category, product, index, or another configured facet.

Supported parameters

Parameter

Type Required Description
searchString   Yes

Query text to search for. Minimum 3 characters and maximum 100 characters.

aggregations   No

Existing filters used to retrieve contextual filter options for an already filtered query. Uses the same aggregation schema as the search tool.

Example Request

Copy
{
 "searchString": "case deflection",
 "aggregations": [
   {
     "type": "_index",
     "filter": "Documentation"
   }
 ]
}

Response structure

The tool returns an array of aggregation groups.

Each aggregation group can include the following fields:

Field Description
key

Internal key for the aggregation, such as _index or documentation_category.

label

Display label for the aggregation.

order

Sort order of the aggregation.

values

Array of available filter values.

Each item in values can include:

Field

Description

displayName

Display name of the filter value.

value

Internal value used when applying the filter.

contentName

Associated content source or content label, when available.

Sample Response

Copy
{
 "content": [
   {
     "type": "text",
     "text": "[{\"key\":\"_index\",\"label\":\"Content Source\",\"order\":1,\"values\":[{\"displayName\":\"Documentation\",\"value\":\"Documentation\",\"contentName\":\"Docs\"},{\"displayName\":\"Community\",\"value\":\"Community\",\"contentName\":\"Community\"}]},{\"key\":\"_type\",\"label\":\"Content Type\",\"order\":2,\"values\":[{\"displayName\":\"Document\",\"value\":\"document\",\"contentName\":\"Document\"}]}]"
   }
 ]
}

Recommended Usage Pattern

A common search refinement flow is:

  • Call get-filter-options with the user’s query.

  • Review the available filters.

  • Ask the user which filters to apply, if needed.

  • Pass the selected filters into the search tool through aggregations.

Example:

User: Search for SSO setup articles and show me the available filters.

Assistant: Calls get-filter-options.

Assistant: Presents available filters.

User: Limit it to documentation.

Assistant: Calls search with the selected aggregation.

It is recommended to use get-filter-options before search when an assistant needs to discover available filters and then pass selected filters into the search request.

analytics

Use the analytics tool to retrieve SearchUnify analytics reports.

This tool is intended for reporting workflows, search quality analysis, and content optimization use cases.

Supported Parameters

Parameter

Type Required Description
reportType string Yes

Type of analytics report to retrieve.

startDate string Yes

Start date of the reporting period in YYYY-MM-DD format.

endDate string Yes

End date of the reporting period in YYYY-MM-DD format.

count number Yes

Number of records to fetch. Minimum 1, maximum 500.

sessionID string No Optional session cookie/session ID filter for sessionDetails and sessionListTable.
pageNumber number No Page number for search classification reports. Minimum 1, maximum 10.
startIndex number No Pagination page for sessionDetails and sessionListTable. Minimum 1, maximum 10. Maps to the API startIndex.
sortByField string No Field used to sort analytics results. Supported values: count, click, search, case, page_view, support, end_date, start_date.
sortType string No Sort direction. Supported values: asc, desc.

Supported Report Types

Report Type

Description

searchQueryWithNoClicks

Search queries that returned results but did not receive clicks.

searchQueryWithResult

Search queries that returned results.

searchQueryWithoutResults

Search queries that returned zero results.

getAllSearchQuery

All search queries.

getAllSearchConversion

All search conversion data.

averageClickPosition

Average click position data per search query. Returns average click position, click count, search count, and session count.

sessionDetails

Session activity logs, including page views, searches, conversions, and case events.

sessionListTable

Session list table data.

tileDataContent

Content gap metrics, including failed searches, no-click searches, no-result searches, sessions, and daily averages.

tileDataMetrics1

Overview metrics for sessions/visitors, search users, unique users by device, and email-related session/user metrics.

tileDataMetrics2

Overview metrics for searches, clicks, conversions/cases, searches with results, searches without results, and unique searches.

Note: For `sessionDetails` and `sessionListTable`, if `sortByField` is set to `count`, SearchUnify MCP sends it as `click` to the underlying analytics API.

Example Request

Copy
{
 "reportType": "searchQueryWithoutResults",
 "startDate": "2026-04-01",
 "endDate": "2026-04-30",
 "count": 20
}

Sample Response

Copy
{
 "content": [
   {
     "type": "text",
     "text": "query: reset password\ncount: 42\n---\nquery: configure saml\ncount: 31\n---\nquery: search client uid\ncount: 18\n---"
   }
 ]
}

Recommended Use Cases

Use analytics to:

  • Identify zero-result queries.

  • Find searches that returned results but received no clicks.

  • Review popular search queries.

  • Analyze search conversions.

  • Review average click position.

  • Investigate session-level activity.

get-search-clients

Use the get-search-clients tool to list the search clients configured in the connected SearchUnify instance.

This tool is useful when the user or administrator does not know which Search Client UID to use while configuring SearchUnify MCP.

Supported Parameters

The get-search-clients tool does not require any parameters.

Behavior

The tenant is derived from the authentication credentials used to connect SearchUnify MCP.

The tool returns minimal information about available search clients, including the search client name and UID.

Response Structure

Each search client can include the following fields:

Field

Description

id

Search client ID.

name

Search client name.

uid

Search client unique identifier.

search_client_type

Type of search client, such as Web App or Salesforce. Available on supported SearchUnify admin versions.

Sample Response

Copy
{
 "content": [
   {
     "type": "text",
     "text": "[{\"id\":\"101\",\"name\":\"Documentation Search\",\"uid\":\"8f8b0c7e-0000-0000-0000-000000000000\",\"search_client_type\":\"Web App\"},{\"id\":\"102\",\"name\":\"Support Portal Search\",\"uid\":\"7d7a0b6d-0000-0000-0000-000000000000\",\"search_client_type\":\"Salesforce\"}]"
   }
 ]
}

Recommended Use

Use get-search-clients when:

  • The user does not know the Search Client UID.

  • An administrator needs to identify which search client to connect to MCP.

  • A developer wants to verify that the authentication credentials can access the expected SearchUnify instance.

  • The tool lists search clients configured in the connected SearchUnify instance. Each returned search client can include fields such as id, name, uid, and search_client_type.

Standard MCP Response Format

SearchUnify MCP tools return responses using the standard MCP content structure.

A typical response contains a content array. Each item in the array has a type and a text value.

Standard Response Example

Copy
{
 "content": [
   {
     "type": "text",
     "text": "title: How to Configure Search Clients\nsummary: Learn how to set up and manage search clients in SearchUnify.\nurl: https://docs.searchunify.com/search-clients\n---"
   }
 ]
}

Response Behavior

Successful tool responses use the standard MCP content array. The returned text can vary based on the SearchUnify search client configuration and the tool invoked.

Tool Selection Guide

Use the following guide to decide which tool to invoke:

User Intent

Recommended Tool

Search enterprise content

search

Discover filters before searching

get-filter-options

Apply selected filters to a search

search with aggregations

Start login through /mcp-connect

login

Find Search Client UID

get-search-clients

Retrieve zero-result queries

analytics with searchQueryWithoutResults

Retrieve no-click queries

analytics with searchQueryWithNoClicks

Retrieve all search queries

analytics with getAllSearchQuery

Retrieve conversion data

analytics with getAllSearchConversion

Example Workflows

Search with Filters

User asks: Find documentation about SSO and show only documentation results.

  1. Call get-filter-options with searchString = "SSO".

  2. Identify the relevant documentation filter.

  3. Call search with searchString = "SSO" and the selected aggregation.

  4. Return the filtered search results.

Tool-Based Login

User asks: Connect my SearchUnify instance.

  1. MCP client connects to the /mcp-connect endpoint.

  2. Call login.

  3. Show the returned connection link to the user.

  4. User completes login in the browser.

  5. Continue using search, get-filter-options, analytics, or get-search-clients.

Find a Search Client UID

User asks: Which Search Client UID should I use?

  1. Call get-search-clients.

  2. Review the available search clients.

  3. Select the correct UID based on the client name and type.

Search Analytics Review

User asks: Show me the top zero-result queries from April.

  1. Call analytics.

  2. Set reportType = searchQueryWithoutResults.

  3. Set startDate and endDate.

  4. Set count.

  5. Return the analytics results.