Most citation features stop at attaching a URL, which proves nothing about whether the sentence is in it. Re-fetching the page and fuzzy-matching each claim against the actual text is a different and much stronger guarantee — a claim either survives that check or it does not. The confidence tier is the practical companion: it tells you whether the index can answer before you spend a fetch. If large indexes start reporting LOW confidence wrongly, the candidate cap is the setting to raise.
An MCP server for grounded retrieval with verification attached. You index URLs into MongoDB; answers built from that index carry inline claim markers naming the source fingerprint and the chunk within it. A separate tool re-fetches each cited source and fuzzy-matches the claim against the real text, so verification is an independent check rather than the model's own opinion.
- `acg_run_workflow` runs the whole pipeline in one call — search, auto-index if confidence is low and a URL was supplied, ground, verify, audit — and returns the answer with per-claim verification results and an audit footer
- `acg_check_indexed` returns a confidence tier of HIGH, MEDIUM or LOW before any network call, so you only fetch a new page when the index genuinely cannot answer
- `acg_index_url` fetches, chunks by sentence, embeds and stores a page; `acg_crawl_and_index` does a whole documentation site with background task support, tracked by `acg_crawl_status` and `acg_crawl_list_tasks`
- `acg_search_sources` returns matching chunks with scores for building your own answer; `acg_list_sources` and `acg_count_sources` inspect the index
- `acg_generate_grounded_text` attaches claim markers to text, and `acg_verify_claims` checks marked text against the cited sources — which makes a verify-only pass over text generated elsewhere possible
- `acg_build_var` emits the machine-readable audit record, listing every claim, its source fingerprint and the relationships between claims
- `acg_reset_database` clears everything, and requires an explicit confirmation flag
Python 3.11 or higher and a MongoDB instance, local or Atlas. Install into a virtual environment with `pip install -e .`, which puts `acg-mcp` on the path; MCP clients should be pointed at the absolute path of that binary rather than relying on the shell. `MONGO_URI` is required, `MONGO_DB` defaults to `acg_protocol`, and `ACG_VECTOR_MAX_CANDIDATES` caps how many embedded chunks a query scans — raise it if a large index starts returning false LOW confidence. Atlas Vector Search is optional; without an embedding model it falls back to keyword search. A one-shot CLI mode runs the full pipeline without any MCP client.
One command plus a key — acg-mcp, then supply credentials
