---
schema_version: "1"
id: 188946e4ceea15e0fe604cdc405871cf66ef9a111a4b133da348f4aac76f6c2a
title: CRM Analytics MCP Server Tool Reference
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_mcp_tools.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_mcp_tools.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 70b5d4f390ee2fa61b7cbf2cc00f99b35ec8861fdb480c478e14b503d2dfc0e2
description: Read-only tools that let MCP-compliant AI clients discover apps, inspect schemas, run SAQL queries, and read dashboard and lens metadata.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# CRM Analytics MCP Server Tool Reference

Read-only tools that let MCP-compliant AI clients discover apps, inspect schemas, run SAQL queries, and read dashboard and lens metadata.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in Lightning Experience.</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available with CRM Analytics, which is available for an extra cost in <strong>Enterprise</strong>, <strong>Performance</strong>, and <strong>Unlimited</strong> Editions.</td></tr></tbody></table>

After you connect, you don't call these tools yourself. Ask your MCP-compliant AI client, such as ChatGPT, Claude, or Cursor, a question in natural language. The client selects the tools for the task.

For example, when you ask, "What were our top 10 accounts by revenue last fiscal year?", the AI client inspects the dataset schema, generates Salesforce Analytics Query Language (SAQL), and returns structured results with `execute_query`.

A typical query workflow is `list_datasets` to `get_dataset` (capture `currentVersionId`) to `get_xmd` (exact field names) to `execute_query`.

The Description / Inputs column notes required parameters. Other parameters are optional.

## Organization and Discovery Tools

External MCP-compliant AI clients use these tools to find folders (apps) that contain dashboards, datasets, and lenses, and to load full folder metadata.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:20%">
          <col style="width:30%">
          <col style="width:30%">
          <col style="width:20%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e110">Tool Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e113">Description / Inputs</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e116">Returns</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e119">Use When</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e110 "><code>list_folders</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e113 ">
              <p>Returns folders (apps) the connected user can access.</p>
              <p style="margin-bottom:0;">Inputs: <code>q</code> (search terms; the tool appends a wildcard to the
                last token), <code>scope</code> (<code>CreatedByMe</code>, <code>Mru</code>,
                <code>SharedWithMe</code>), <code>sort</code> (<code>Name</code>,
                <code>Mru</code>, <code>LastModified</code>,
                <code>LastModifiedBy</code>), <code>isPinned</code>,
                <code>pageSize</code> (1–200, default 25), <code>page</code>.
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e116 ">Folder objects with ID, label, description, template source, and
              permissions.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e119 ">You need folder IDs to scope later list calls, or you want an inventory of
              apps.</td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e110 "><code>get_folder</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e113 ">
              <p>Returns full metadata for one folder (app).</p>
              <p style="margin-bottom:0;">Inputs: <code>folderId</code> (required). Discover IDs with
                <code>list_folders</code>.
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e116 ">A folder object with label, description, template source, and
              permissions.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e119 ">You need complete metadata for a specific app.</td>

          </tr>
        </tbody>
      </table>

## Data and Schema Tools

External MCP-compliant AI clients use these tools to list datasets and retrieve the field names, data types, and labels required to generate valid SAQL.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:20%">
          <col style="width:30%">
          <col style="width:30%">
          <col style="width:20%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e246">Tool Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e249">Description / Inputs</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e252">Returns</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e255">Use When</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e246 "><code>list_datasets</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e249 ">
              <p>Returns datasets in an app or across the org.</p>
              <p style="margin-bottom:0;">Inputs: <code>q</code>, <code>folderId</code>,
                <code>datasetTypes</code> (<code>Default</code>, <code>Live</code>,
                <code>StagedData</code>, <code>Trended</code>), <code>scope</code>,
                <code>sort</code> (<code>Name</code>, <code>Mru</code>,
                <code>LastModified</code>, <code>TotalRows</code>,
                <code>CreatedDate</code>, <code>LastRefreshed</code>,
                <code>CreatedBy</code>, <code>LastQueried</code>,
                <code>ConnectionName</code>), <code>order</code>
                (<code>Ascending</code>, <code>Descending</code>),
                <code>includeCurrentVersion</code>, <code>pageSize</code> (1–200,
                default 25), <code>page</code>.
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e252 ">Dataset objects with names, types, and last-modified dates.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e255 ">You need dataset names and IDs before you inspect a schema or run a
              query.</td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e246 "><code>get_dataset</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e249 ">
              <p>Returns full metadata for a dataset, including current version information.</p>
              <p style="margin-bottom:0;">Inputs: <code>datasetIdOrApiName</code> (required).</p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e252 ">Dataset metadata including field names, data types, dimension and measure
              labels, and current version ID.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e255 ">You need <code>currentVersionId</code> before you call
              <code>get_xmd</code> or <code>execute_query</code>.
            </td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e246 "><code>get_xmd</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e249 ">
              <p>Returns extended metadata (XMD) for a dataset version, including exact field API
                names, data types, labels, and formatting.</p>
              <p style="margin-bottom:0;">Inputs: <code>datasetIdOrApiName</code> (required), <code>versionId</code>
                (required; 18-character ID that starts with <code>0Fc</code> from
                <code>get_dataset</code>), <code>xmdType</code>
                (<code>main</code> default, query-ready; <code>system</code>;
                <code>user</code>).
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e252 ">Extended metadata for the dataset version, including field API names, data
              types, labels, and display formatting.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e255 ">You need precise field API names so the client can build syntactically correct
              SAQL.</td>

          </tr>
        </tbody>
      </table>

## Query and Analysis Tools

External MCP-compliant AI clients use this tool to run SAQL against a CRM Analytics dataset and return structured results. The client generates SAQL from your natural-language request.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:20%">
          <col style="width:30%">
          <col style="width:30%">
          <col style="width:20%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e470">Tool Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e473">Description / Inputs</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e476">Returns</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e479">Use When</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e470 "><code>execute_query</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e473 ">
              <p>Executes a SAQL query against a CRM Analytics dataset.</p>
              <p style="margin-bottom:0;">Inputs: <code>query</code> (required; SAQL pipeline; load stage must use
                <code>"&lt;datasetId&gt;/&lt;currentVersionId&gt;"</code>; end with
                <code>q = limit q N;</code>), <code>queryLanguage</code> (locked to
                <code>Saql</code>), <code>timezone</code> (time zone in IANA format,
                for example <code>America/Los_Angeles</code>), <code>version</code> (SAQL version;
                omit for latest).
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e476 ">Structured JSON query results with rows, column metadata, and query execution
              details.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e479 ">You want grouped, filtered, or ranked answers from a dataset. Don't use this
              tool for metadata discovery.</td>

          </tr>
        </tbody>
      </table>

## Dashboard, Visualization, and Exploration Tools

External MCP-compliant AI clients use these tools to find dashboards and saved explorations (lenses) and to retrieve widget, step, filter, and query definitions.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:20%">
          <col style="width:30%">
          <col style="width:30%">
          <col style="width:20%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e562">Tool Name</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e565">Description / Inputs</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e568">Returns</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d183189e571">Use When</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e562 "><code>list_dashboards</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e565 ">
              <p>Returns CRM Analytics dashboards in an app or across the org.</p>
              <p style="margin-bottom:0;">Inputs: <code>q</code>, <code>folderId</code>, <code>type</code>
                (defaults to <code>Dashboard</code>; also <code>DashboardSnapshot</code>,
                <code>Component</code>—Component requires edit access and can return no
                results for view-only users), <code>templateApiName</code>,
                <code>mobileOnly</code>, <code>ids</code>, <code>scope</code>,
                <code>sort</code>, <code>pageSize</code> (1–200, default 25),
                <code>page</code>.
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e568 ">Dashboard objects with names, IDs, types, and app context.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e571 ">You need dashboard identifiers or want to browse prebuilt dashboards for an
              app.</td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e562 "><code>get_dashboard</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e565 ">
              <p>Returns full metadata for one dashboard, including widgets, steps, and
                filters.</p>
              <p style="margin-bottom:0;">Inputs: <code>dashboardIdOrApiName</code> (required).</p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e568 ">Full dashboard metadata including widgets, steps, filter configurations, and
              layout details.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e571 ">You need the full definition of a specific dashboard.</td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e562 "><code>list_lenses</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e565 ">
              <p>Returns saved explorations (lenses) the connected user can access.</p>
              <p style="margin-bottom:0;">Inputs: <code>q</code>, <code>folderId</code>, <code>scope</code>,
                <code>sort</code>, <code>pageSize</code> (1–200, default 25),
                <code>page</code>.
              </p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e568 ">Lens objects with names, IDs, and the datasets they reference.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e571 ">You need an inventory of saved explorations and the datasets that they
              use.</td>

          </tr>
          <tr class="">
            <td data-label="Tool Name" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e562 "><code>get_lens</code></td>

            <td data-label="Description / Inputs" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e565 ">
              <p>Returns full metadata for one lens, including the query definition and dataset
                reference.</p>
              <p style="margin-bottom:0;">Inputs: <code>lensIdOrApiName</code> (required).</p>
            </td>

            <td data-label="Returns" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e568 ">Full lens metadata including the query definition, visualization configuration,
              and dataset reference.</td>

            <td data-label="Use When" class="slds-cell-wrap" style="vertical-align:top;" headers="d183189e571 ">You need the query and visualization details of a specific lens.</td>

          </tr>
        </tbody>
      </table>