API reference

Five tools over a single (collection, version, locale) slice. Each call targets one slice; multi-slice queries are expressed as multiple tool calls. Six collections are available — tableau, admin, mulesoft, developer, architect, legacydeveloper.

list

Catalog of available content. Use this first to discover what slices the server is publishing right now, and to read each collection's retrieval hints and landmarks.

Input

{
  "collections": ["tableau"]   // optional allow-list; omit for all six
}

Output

{
  "collections": [
    {
      "collection": "tableau",
      "description": "Tableau product documentation: Desktop, Server, Cloud, Prep, ...",
      "versions": ["current", "next"],
      "versionLabels": {
        "current": "shipped/GA documentation — behavior available today",
        "next": "release-preview — upcoming, not-yet-shipped behavior"
      },
      "locales": ["de-de", "en-gb", "en-us", "es-es", "fr-ca", "fr-fr", "it-it", "ja-jp", "ko-kr", "nl-nl", "pt-br", "sv-se", "th-th", "zh-cn", "zh-tw"],
      "formats": ["text", "html", "markdown"],
      "extraFields": ["description", "filename", "guides", "product", "products", "taxonomyIds"],
      "retrievalHints": "Tableau documentation across desktop, server, cloud, ... Default to EXPANDING with bare `guides:` boosts ...",
      "landmarks": [
        { "slug": "server", "members": ["server_linux", "server_windows"] },
        { "slug": "api", "members": ["rest_api", "js_api", "metadata_api", ...] },
        { "slug": "desktop", "label": "Tableau Desktop and Web Authoring" }
      ],
      "fetchHints": "An id from a search/answer result fetches fine in the SAME slice ..."
    }
    // ...admin, mulesoft, developer, architect, legacydeveloper
  ]
}

versionLabels, landmarks, and fetchHints appear only on collections that have them. extraFields is a sampled, opportunistic set — collection-specific keys seen on results in addition to the standard id/url/title; not every document carries every listed field.

Ranked retrieval over a single (collection, version, locale) slice. Multi-slice queries are expressed as multiple tool calls.

Input

{
  "query":      "publish a workbook",  // required
  "collection": "tableau",     // required (one of the six; no default)
  "version":    "current",     // optional, default "current"
  "locale":     "auto",        // optional, default "auto" (detect query language)
  "page":       1,             // optional, default 1
  "pageSize":   12,            // optional, default 12
  "format":     "text"         // optional; omit to skip bodies (triage)
}

Scope by product with the +guides:<slug> filter inside query (e.g. "+guides:server calculated field"). Query operators: +term required, -term excluded, term* wildcard, term~1 fuzzy, term^10 boost; quote phrases to require adjacency. See each collection's retrievalHints for its slugs and idioms.

Output

{
  "results": [
    {
      "id": "07124862881193e7...",
      "url": "https://help.tableau.com/current/pro/desktop/en-us/calculations_calculatedfields.htm",
      "title": "Create Custom Fields with Calculations",
      "content": "...",          // present only when format is set
      "collection": "tableau",
      "version": "current",
      "locale": "en-us",
      // collection-specific extra fields (see list.collections[].extraFields):
      "filename": "pro/desktop/en-us/calculations_calculatedfields.htm",
      "product": "Tableau Desktop and Web Authoring",
      "products": ["Tableau Desktop", "Tableau Cloud", "Tableau Public", "Tableau Server"],
      "guides": "desktop",
      "taxonomyIds": ["92b87aca-1bd6-431d-aef1-06d7b5d8ef58"]
    }
  ],
  "totalCount": 42            // results are in ranked order, best match first
}

fetch

Direct lookup. Pass ids (typically chained from search or answer results) or urls, not both.

Input

{
  "ids":    ["..."],            // required: ids OR urls (not both)
  "urls":   ["https://..."],
  "format": "text",             // optional, default "text"
  "collection": "tableau",      // optional; pass the slice the ids/urls came from
  "version":    "current",      // optional; pass alongside collection
  "locale":     "ja-jp"         // optional; resolves a localized doc from its own slice
}

Output

{
  "documents": [
    {
      "id": "...",
      "url": "...",
      "content": "...",
      "title": "...",
      "collection": "tableau",
      "version": "current",
      "locale": "en-us"
    },
    // Per-document errors are returned alongside successful entries:
    { "id": "...", "error": "not_found", "available": { ... } }
  ]
}

answer

Synthesizes an answer over a single slice and returns it with citations. Ask in natural language; the server constructs the retrieval query for you.

Input

{
  "query":      "how do I publish a workbook?",  // required
  "collection": "tableau",     // required (one of the six; no default)
  "version":    "current",     // optional, default "current"
  "locale":     "auto",        // optional, default "auto" (grounding slice); answer language follows the question
  "cite":       true           // optional, default true
}

Output

{
  "answer": "...synthesized prose grounded in citations...",
  "citations": [ /* search-result-shaped, no body, no score */ ]
}

explain

Synthesizes an answer grounded in one specific document, identified by id (chained from a search / answer citation) or url. Use when you already know which document holds the answer.

Input

{
  "query": "does this article describe how to publish?",  // required
  "id":    "...",               // required: id OR url (not both)
  "url":   "https://...",
  "cite":  true                 // optional, default true
}

Output

{
  "explanation": "...synthesized prose grounded in the one document...",
  "citations": [ /* one entry, the grounded document */ ]
}

Slice-not-available errors

search and answer fail the entire call when the requested slice has no index. fetch and explain are document-level by design and instead return per-document not_found errors.

{
  "isError": true,
  "content": [{
    "type": "text",
    "text": "{\"error\":\"slice_not_available\",\"requested\":{\"collection\":\"mulesoft\",\"version\":\"current\",\"locale\":\"fr-fr\"},\"available\":{\"collections\":[\"admin\",\"architect\",\"developer\",\"legacydeveloper\",\"mulesoft\",\"tableau\"],\"versions\":[\"current\"],\"locales\":[\"en-us\",\"ja-jp\"]}}"
  }]
}