Search Jamf Documentation
jamf_docs_searchSearch Jamf product documentation to find articles matching keywords, with filters for product, topic, doc type, version, and language, returning titles, snippets, and links.
Instructions
Search Jamf documentation for articles matching your query.
This tool searches across all Jamf product documentation including Jamf Pro, Jamf School, Jamf Connect, Jamf Protect, Jamf Now, Jamf Safe Internet, and more. Results include article titles, snippets, and direct links.
Args:
query (string, required): Search keywords (2-200 characters, or one Chinese, Japanese or Korean character)
product (string, optional): Filter by product ID (use jamf_docs_list_products to see all)
topic (string, optional): Filter by topic. Common: enrollment, profiles, policies, packages, scripts, patch, apps, security, filevault, sso, identity-provider, inventory, reports, api, network. See jamf_docs_list_products for the full list of 40 topic IDs.
docType (string, optional): Filter by document type: documentation, release-notes, training, solution-guide, glossary, getting-started
version (string, optional): Filter by version (e.g., "11.13.0") or "current", at most 50 characters
language (string, optional): Documentation language/locale (default: en-US)
limit (number, optional): Maximum results per page 1-50 (default: 10)
page (number, optional): Page number for pagination 1-100 (default: 1)
maxTokens (number, optional): Maximum tokens in response 100-50000 (default: 5000)
outputMode ('full' | 'compact'): Output detail level (default: 'full'). Use 'compact' for brief, token-efficient output
responseFormat ('markdown' | 'json'): Output format (default: 'markdown')
Returns: For JSON format: { "total": number, "query": string, "results": [...], "tokenInfo": { "tokenCount": number, "truncated": boolean, "maxTokens": number }, "pagination": { "page": number, "pageSize": number, "totalPages": number, "totalItems": number, "hasNext": boolean, "hasPrev": boolean }, // Set when a filter matched nothing and was removed, or could not be applied. "filterRelaxation"?: { "removed": [string], "original": { "": string }, "message": string }, // Set when a result is at a version other than the one asked for. "versionNote"?: string, // Set when no page has a phrase the query quotes in 「」, 『』, 「」 or « » as written: // the query was searched again with those marks read as no quotes, and "results" are // what that found. Also set, with no results, when that found nothing either. "queryNote"?: string, // Set when page was past the last page, and the last is shown instead, or when // limit and maxTokens make more pages than page accepts: it then says what // reaches the rest. "paginationNote"?: string, // How "results" are ordered, and by whom. Absent when "results" is empty. "relevanceNote"?: string, // Pages outside the product documentation, matched on title and ranked // separately from "results", which carry no score to rank them against. // Omitted when none matched. "otherSources"?: [{ "title": string, "url": string, "source": string }], // Queries to try instead, when "results" is empty. "suggestions"?: [string], // When "results" is empty and language is not en-US, as not all documentation is // in it, or the query has Chinese, Japanese, Korean or Thai words and the documentation in // language is not written in them: which documentation to search instead, and how. "localeNote"?: string, // Only on a page that is one result cut to fit; see the Note on paging. "truncatedResult"?: { "title": string, "estimatedTokens": number } }
For Markdown format: A formatted list of search results with pagination and token info.
Examples (common query → recommended filters):
"Configure SSO with Okta in Jamf Connect" → query="SSO Okta", product="jamf-connect", topic="sso"
"Set up FileVault encryption" → query="FileVault encryption", product="jamf-pro", topic="filevault"
"Patch macOS apps" → query="patch policy", product="jamf-pro", topic="patch"
"Smart group criteria" → query="smart group criteria", product="jamf-pro", topic="reports"
"Automated Device Enrollment workflow" → query="ADE prestage", product="jamf-pro", topic="enrollment"
"Shared iPad in a classroom" → query="shared iPad classroom", product="jamf-school", topic="education"
"Jamf Protect custom analytic" → query="custom analytic", product="jamf-protect", topic="protect-analytics"
"Jamf Pro REST API authentication" → query="API role bearer token", product="jamf-pro", topic="api"
"Extension attribute scripts" → query="extension attribute script", product="jamf-pro", topic="extension-attributes"
"Paginate through results" → query="policy", page=2
Errors:
"Search for "" failed: ..." (isError) if the search could not be completed: learn.jamf.com could not be reached, timed out or answered with an error, or a configured search backend failed. This is not a "no results": the search did not complete, so the reply cannot say whether anything matches. The message says whether trying again may help. Pages outside the product documentation that did match follow it, in a second text block.
"Invalid option: expected one of ..." (an input validation error) if product, topic, docType or language is not one of the values the input schema lists
Note: "No results found" is not an error. It means the search ran and nothing in the product documentation matched; in JSON that is "total": 0, with "suggestions" and any "otherSources".
Note: Results are ranked by relevance. Use filters and pagination to navigate large result sets. A page holds up to limit results, as many as fit maxTokens, and the next page starts at the first that did not fit. Every result is on exactly one page, but which page depends on limit and maxTokens, so keep both the same while paging; the markdown footer names them beside the next page when they are not the default, and structuredContent carries limit and maxTokens. A result larger than maxTokens on its own is alone on its page with its snippet cut to fit; only that page has tokenInfo.truncated, and truncatedResult.estimatedTokens is what the whole result costs. If limit and maxTokens make more pages than page accepts (100), page 100 offers no next page and paginationNote says what reaches the rest. Most results carry a mapId + contentId pair; pass both to jamf_docs_get_article to fetch that article directly instead of resolving its URL. The pair is omitted when a result comes from a source that does not resolve one — fall back to the URL in that case, unless the result is external (see the next Note).
Note: A result with "external": true is not a page of the documentation but one Jamf's search lists beside it, such as a course in the Jamf Training Catalog (trainingcatalog.jamf.com), at the rank the search gave it. jamf_docs_get_article cannot read it: open its url in a browser. It has no mapId + contentId pair. Jamf classifies a Training Catalog course as training content, so its docType is "training" and docType "training" returns it; any other docType, or a specific version, leaves it out.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-100, default: 1) | |
| limit | No | Maximum number of results per page (1-50) | |
| query | Yes | Search keywords to find in Jamf documentation: 2-200 characters, or one Chinese, Japanese or Korean character | |
| topic | No | Filter by topic. Common: enrollment, profiles, policies, packages, scripts, patch, apps, security, filevault, sso, identity-provider, inventory, reports, api, network. See jamf_docs_list_products for the full list of 40 topic IDs. | |
| docType | No | Filter by document type: documentation, release-notes, training, solution-guide, glossary, getting-started | |
| product | No | Filter by product: jamf-pro, jamf-school, jamf-connect, jamf-protect, jamf-now, jamf-safe-internet, jamf-insights, jamf-rapididentity, jamf-trust, jamf-routines, self-service-plus, jamf-app-catalog, jamf-account, jamf-security-cloud, elevate, composer, jamf-parent, jamf-teacher, jamf-setup-reset, jamf-assessment, title-editor, jamf-infrastructure-manager, jamf-adcs-connector, jamf-pki-proxy, jamf-migrate, jamf-remote-assist, jamf-cloud-distribution-service, healthcare-listener | |
| version | No | Filter by version (e.g., "11.13.0") or "current", at most 50 characters | |
| language | No | Documentation language/locale (default: en-US). Options: en-US, ja-JP, zh-TW, de-DE, es-ES, fr-FR, nl-NL, th-TH, it-IT, pt-BR, zh-CN | |
| maxTokens | No | Maximum tokens in response (100-50000, default: 5000) | |
| outputMode | No | Output detail level: "full" for detailed output or "compact" for brief output | full |
| responseFormat | No | Output format: "markdown" for human-readable or "json" for machine-readable | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | ||
| limit | No | ||
| query | Yes | ||
| filters | No | ||
| hasMore | Yes | ||
| results | Yes | ||
| maxTokens | No | ||
| queryNote | No | ||
| totalPages | Yes | ||
| suggestions | No | ||
| versionNote | No | ||
| otherSources | No | ||
| totalResults | Yes | ||
| relevanceNote | No | ||
| paginationNote | No | ||
| truncatedResult | No | ||
| filterRelaxation | No | ||
| truncatedContent | No |