Search Documentation
search_docsSearch indexed markdown docs with hybrid semantic and keyword matching to get the best-matching excerpts plus titles and source links. Use for runbooks, RFCs, and onboarding prose, not code.
Instructions
Hybrid (dense semantic + BM25 keyword) search over indexed markdown documentation, fused with RRF. Returns EXCERPTS, not whole documents: each hit is the best-matching passage plus its neighbouring sections, carrying the document title, heading breadcrumb, project, file, and source link when available. When a hit covers only part of its document an Excerpt: line says which sections you got and how many exist — read the named file directly when you need the rest, because the passage may not be the document's full answer. The top hit is usually right but not always; scan the alternatives before concluding. Use for questions answered by prose docs (runbooks, RFCs, onboarding, business docs), not code. For code use search_code. Optional audience restricts results to visibility labels (e.g. ["internal"], ["client","public"]); omit to search every audience the endpoint is allowed to see. Some deployments enforce an audience ceiling — there, audience can only narrow within it, never widen past it. Results are filtered by a semantic-similarity floor, so a question the corpus does not cover returns nothing rather than the nearest unrelated page; treat an empty result as "not documented". Two floors apply: min_score (default 0.45) for long-form prose, and min_score_code (default 0.6) for markdown that ships inside code repositories (README, CLAUDE.md, design notes) — those are written as overviews and score deceptively well against questions they do not answer, so they are held to a stricter bar. A Last updated ... ago line marks a document untouched for over a year: docs checked in beside code go stale quietly, so prefer a recent source when they disagree, and verify against the code before relying on it. Absence of that line means recent OR unknown age, not verified-current. The reported score is a fusion rank, not a similarity — use it to order hits, not to judge how good a match is.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | Specific group, or omit to search all known groups. | |
| limit | No | Max results. Default 8. | |
| query | Yes | Natural-language documentation query. | |
| project | No | Restrict to a single project (directory basename), or omit for all. | |
| audience | No | Restrict to these visibility labels (e.g. ["internal"], ["client","public"]). Omit to search every audience this endpoint is allowed to see. Un-labelled docs count as "internal". If the server enforces an audience ceiling, this can only narrow within it, never widen past it. | |
| min_score | No | Relevance floor as a semantic cosine (default 0.45). Hits below it are dropped, so a question the docs do not cover returns nothing instead of the closest unrelated page. Raise toward 0.6 to demand near-exact matches; pass 0 to disable. Applies to long-form prose docs; markdown that ships inside code repositories uses min_score_code instead. | |
| min_score_code | No | Relevance floor for markdown that lives in code repositories (README, CLAUDE.md, design notes), default 0.6. Higher than min_score because such files are written as overviews and score deceptively well against questions they do not answer. Pass 0 to disable for this kind only. |