dbt docs have LLM-friendly URLs. Always append .md to get clean markdown instead of HTML.
URL Pattern
| https://docs.getdbt.com/docs/dbt-cloud-apis/service-tokens
| https://docs.getdbt.com/docs/dbt-cloud-apis/service-tokens.md
| https://docs.getdbt.com/reference/commands/run
| https://docs.getdbt.com/reference/commands/run.md
Quick Reference
| Single page
| Add .md to any docs URL
| Fetch specific documentation
| Page index
| https://docs.getdbt.com/llms.txt
| Find all available pages
| Full docs
| https://docs.getdbt.com/llms-full.txt
| Search across all docs (filter by keyword first)
Fetching a Single Page
WebFetch: https://docs.getdbt.com/docs/path/to/page.md
Always add .md to the URL path.
Finding Pages
Step 1: Search the Index First
Use llms.txt to search page titles and descriptions:
WebFetch: https://docs.getdbt.com/llms.txt
Prompt: "Find pages related to [topic]. Return the URLs."
This is fast and usually sufficient.
Step 2: Search Full Docs (Only if Needed)
If the index doesn't have results, use the script to search full page content:
~/.claude/skills/fetch-dbt-docs/search-dbt-docs.sh <keyword>
# Examples
~/.claude/skills/fetch-dbt-docs/search-dbt-docs.sh semantic_model
~/.claude/skills/fetch-dbt-docs/search-dbt-docs.sh "incremental strategy"
~/.claude/skills/fetch-dbt-docs/search-dbt-docs.sh metric dimension # OR search
# Force fresh download (bypass 24h cache)
~/.claude/skills/fetch-dbt-docs/search-dbt-docs.sh metric --fresh
Then fetch individual pages with .md URLs.
Common Mistakes
| Fetching HTML URL without .md
| Always append .md to docs URLs
| Searching llms-full.txt first | Search llms.txt index first, only use full docs if no results
| Loading llms-full.txt entirely | Use the search script to filter, then fetch individual pages
| Guessing page paths | Use llms.txt index to find correct paths