get_grounding_result
Read the result of a content grounding scan started by check_content_grounding — the poll companion to it.
When to use: check_content_grounding returned status="running" (its ~20s inline wait elapsed before the scan finished). Poll this with the **scan_id** it gave you, roughly every 15-30 seconds; a fresh scan usually completes within 120-150 seconds. Do NOT call check_content_grounding again — that starts a second scan and charges again.
Which id to pass:
- `scan_id` — reads that exact scan. This is what you want when polling: it always reports the run you started, whatever its status.
- `content_id` (no scan_id) — reads the latest COMPLETED grounding for that document. Use it to ask "what is this document's grounding state right now" without starting a scan. It deliberately skips a scan that is still running, so it is NOT the right call for polling — you would get the previous result back marked complete.
It never starts a scan and never charges credits — it returns immediately with whatever the current state is.
The response envelope is identical to check_content_grounding's, so the same handling works for both.
Errors:
- Provide 'scan_id' or 'content_id' (400) — one of them is required.
- Not a valid UUID (400) — malformed scan_id or content_id.
- Scan not found (404) — no such grounding scan in your team.
- Content not found (404) — no such content in your team.
- scan_id and content_id refer to different content (400) — pass scan_id alone.
**Links:** present `link_url` to the user exactly as returned — copy it character for character. Never retype, shorten, or rebuild a link or the IDs inside it.Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "get_grounding_result"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scan_id | No | The scan id returned by check_content_grounding. Pass this when polling — it reads the exact run you started, whatever its status. Either scan_id or content_id is required. | |
| content_id | No | The content id returned by check_content_grounding. Passed alone, it reads the latest COMPLETED grounding for that document and skips any scan still running — so use scan_id, not this, when polling. Either scan_id or content_id is required. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | Every factual claim extracted from the document, with its verdict. Creator-only. | |
| status | Yes | running = poll get_grounding_result with this scan_id, do not re-scan. none = no scan has been run for this content yet. | |
| message | No | Present when the scan is still running, or when details are withheld. | |
| scan_id | No | The scan run. Null only if no scan has ever run for this content. | |
| summary | Yes | Claim counts. Present even when details_visible is false. | |
| findings | No | Actionable conflicts and gaps. Creator-only. | |
| link_url | Yes | Opens the document in Marcora with the grounding panel showing. | |
| content_id | Yes | The content item that was scanned. In content-submission mode this is the newly created item — keep it for polling and for follow-up calls. | |
| corpus_items | No | The context items this scan was actually grounded against, recorded at scan time. Creator-only. | |
| excluded_items | No | Context items this check did not read. Present only when at least one was skipped. Each entry has id, reason and source. reason is sync_lock (the item was being edited during the check) or library_token_budget (the reference library was larger than one check can read). source is context_item or project_brief. name is included only for the person who ran the check; everyone else, including the content's creator, gets ids only. | |
| coverage_reason | No | Why the check was incomplete; null when coverage_complete is true. library_catch_up = some context items were still being prepared, so re-run the check shortly. library_extraction_failed = some context items could not be prepared. library_token_budget = the reference library is larger than one check can read. | |
| details_visible | No | False when the caller is not the content's creator — findings, claims and corpus_items are then omitted. | |
| coverage_complete | No | False means some context items were not read, so a claim marked unsupported may still have support in an unread item. True does not by itself mean every context item was read: excluded_items lists any item the check left out, and it can be present even when coverage_complete is true. Before acting on gaps, check coverage_complete, coverage_reason and excluded_items. |