Context Packs

What a Context Pack is

A Context Pack is a named, curated collection of documentation that you can search and chat with — and expose to AI coding agents over MCP. You add sources (docs pages, files, whole doc sites), and ContextCove cleans → chunks → embeds them so retrieval is fast and answers are grounded with citations.

A pack has:

  • a name and description (the description is how an AI agent routes a question to the right pack — name the product + list the topics it covers),
  • an optional goal (what to focus on — e.g. "current App Router, not Pages"),
  • its documents (the sources you added).

1. Create a pack

Dashboard → New Context Pack → give it a name. Open it to add content.

You can rename it (click the title), edit the description (the Edit link, or Generate one from the content via AI), and set a goal (click the Goal area) — all inline on the pack page.


2. Add content — the five ways

Open a pack → Add. The top bar offers several on-ramps. Pick by what you have:

| You have… | Use | Notes |
|---|---|---|
| Markdown text in hand | Paste | Paste or drag a .md/.txt file into the editor → Save and Ingest. |
| A document (PDF, Word, PowerPoint, Excel, Markdown) | Upload file | Converted to markdown server-side. ≤15 MB. |
| Files in Google Drive | Import from Drive | Pick files via Google Picker; only picked files are shared. |
| A whole docs site | Import docs (llms.txt / sitemap) | The big one — see §3. |
| A single web page | URL | Coming soon. |

2a. Paste

Paste markdown (or drag a .md/.txt/.mdx file in). Add a title and an optional source URL (so citations link somewhere real), then Save and Ingest. Very large pastes are split into parts automatically.

2b. Upload file

Drag or pick a PDF / DOCX / PPTX / XLSX / MD / TXT file. ContextCove converts it to markdown and ingests it. The page URL is a synthetic cove://file/… (it's a file, not a web page), so it won't be re-fetchable on Refresh.

2c. Google Drive

Import from Drive opens the Google Picker. Pick files; ContextCove fetches just those (Google Docs export to markdown, Sheets/Slides convert). Your Drive token is used for that one import and never stored.


3. Import a whole docs site (Import docs (llms.txt / sitemap))

This is the fastest way to build a real pack — point it at a site's machine- readable doc feed and it ingests every page, each keeping its real URL (so citations are clickable and Refresh can re-pull them).

Three feed types are accepted (paste the URL, or upload the file):

| Feed | What it is | Example |
|---|---|---|
| llms-full.txt | The whole docs concatenated as one markdown file | https://nextjs.org/docs/llms-full.txt |
| llms.txt | A markdown index of doc links (each page fetched) | https://docs.stripe.com/llms.txt |
| sitemap.xml | The site's sitemap; every <loc> page is fetched | https://playwright.dev/sitemap.xml |

How to find a feed: try {docs-domain}/llms.txt, /llms-full.txt, then /sitemap.xml. Most modern dev-tool docs publish at least one.

Filtering — "Only include" / "Exclude paths"

Feeds (especially sitemaps) often list pages you don't want — other languages, changelogs, a giant auto-generated API reference. The two filter fields take comma-separated URL substrings:

  • Only include paths — keep a page only if its URL contains one of these. e.g. include: /run/docs/ to pull just one product from a big site.
  • Exclude paths — drop a page if its URL contains one of these. e.g. exclude: /de/, /es/, /fr/ to skip translated pages from a sitemap; or exclude: /reference/ to drop a reference tail.

Filters are remembered — when you Refresh, the feed re-runs with the same filter, so new pages come in and excluded ones stay out.

Upload a feed file instead of a URL

If you grabbed the feed by hand (or edited it to trim it), use the dialog's Upload file tab. Optionally give the Source URL (the canonical feed URL) so Refresh stays automatic; omit it and Refresh just re-fetches the pages already in the pack.

Tip: big feeds (hundreds of pages) take a few minutes — the dialog shows"Harvesting…". Re-running is cheap: unchanged pages are skipped.

4. Keep a pack fresh — Refresh

The Refresh button (top-right of a pack) re-pulls its sources:

  • Feed-based packs (added by URL) re-read the feed — picking up changed and newly-added pages (with your saved filter applied).
  • Other packs re-fetch each page they already contain.
  • Unchanged pages are skipped (content-hash), so Refresh is cheap.

(Uploaded files and pasted clips aren't re-fetchable — re-add those by hand.) Scheduled/automatic refresh is on the roadmap; for now it's a button.


5. Use a pack

  • Ask a question box on the pack page → grounded, cited chat over that pack.
  • Global chat routes across all your packs (using each pack's description).
  • MCP — connect ContextCove to your AI agent (Claude Code, Cursor, Windsurf, VS Code, …) with a ccv_ API key; the agent gets list_packs, search_packs, ask_pack. See **Connect over MCP** for per-tool setup.

6. (House account only) Official starter packs

If you're the ContextCove house account, the pack page also shows "Make this an official starter pack" — set vendor / category / slug and mark it official (it joins the public catalog). Curation workflow: contextcove-api/docs/starter-packs-guide.md.


Quick reference — which import for which source

Whole docs site, has llms-full.txt    Import docs  paste the llms-full.txt URL
Whole docs site, has llms.txt only    Import docs  paste the llms.txt URL
Whole docs site, only a sitemap       Import docs  paste sitemap.xml + exclude noise (/de/, etc.)
Just part of a big site               Import docs  URL + "Only include" that path
A PDF / Word / Slides / Sheet         Upload file
Files in Google Drive                 Import from Drive
Some markdown you already have        Paste