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.
search
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\"]}}"
}]
}