Skip to content

Knowledge

Reference for the 9 CryptoComply MCP tools in the Knowledge family.

Tools in this group

knowledge_citations

Read-only: yes.

Show the source spans one concept's claims rest on: for each [cN] marker in its body, the client's own sentence, where in the document it sits, and which document that is. Use this to answer with a quotation rather than a paraphrase, and to check a claim that looks wrong — if the span does not say what the concept says, the concept is the problem. Pass ref for a single marker. A span whose document is no longer held still reads, with on_file false.

Returns {concept_id, title, count, citations: [{ref, span, locator, source, document_path, document_title, document_url, on_file, presence, claim_verdict, reviewed}]}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • concept_id (Annotated[str, Field(description=KNOWLEDGE_CONCEPT_ID)], required) — (no description)
  • ref (Annotated[str | None, Field(description="One citation marker to return alone, e.g. 'c3'. Omit for every span behind the concept.")], optional) — (no description)

knowledge_concept_preview

Read-only: no.

Rewrite one concept with the current prompts — or with a candidate version of them — and return the result without saving it, beside what the bundle serves today. This is how a prompt change is judged before it governs anything: change the text, try it on the concept it was meant to improve, compare, and only then make that version active. The material is the documents the concept already cites, so the comparison is like for like. Costs a model call, which is recorded against the organization.

Returns {concept_id, body_md, current_body_md, description, fact_count, citation_count, flags, prompts}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • concept_id (Annotated[str, Field(description=KNOWLEDGE_CONCEPT_ID)], required) — (no description)
  • order_of_work_version (Annotated[int | None, Field(description='Version id of the order of work to try instead of the active one.')], optional) — (no description)
  • authoring_spec_version (Annotated[int | None, Field(description='Version id of the authoring specification to try instead of the active one.')], optional) — (no description)

knowledge_gaps

Read-only: yes.

Report what the knowledge base does not account for: material the last authoring pass could not place, concepts it wrote but could not settle — sources contradicting each other — and transported documents no concept cites at all. Use before relying on the bundle for something that leaves the building, and when material is known to exist but no answer draws on it. Each of these can be a correct outcome, so the tool reports and does not judge: a brand guide belongs in no compliance concept.

Returns {left_out: [{item, code, detail}], needs_review: [{concept_id, title, reason}], uncited_documents: [{path, title, source}], last_authored_at, in_progress}. last_authored_at/left_out are the last finished pass; when in_progress is true a pass is running right now and has not yet had a chance to place everything.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)

knowledge_index

Read-only: yes.

List what a client's knowledge base holds — the client concept, the risk domains, the engagement's projects, findings and deliverables, and the references behind them. Use this first when the user asks what a client has on file, or before searching: it names every folder and every concept, so a missing AML program reads as 'not on file' rather than 'the client has none'. The tree differs per client, so read the folders from here rather than assuming a fixed set, and pass section to list one in full.

Returns {markdown, sections: [{name, concept_count, description}]}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • section (Annotated[str | None, Field(description=KNOWLEDGE_SECTION)], optional) — (no description)

knowledge_log

Read-only: yes.

Show what changed recently in a client's knowledge base: what was added, updated or removed, newest first. Use when the user asks what is new, whether the material has been refreshed, or when an answer depends on how current it is.

Returns {markdown, window_days}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • days (Annotated[int, Field(ge=1, le=3650, description='How many days back to report.')], optional) — (no description)

knowledge_read

Read-only: yes.

Read one concept of a client's knowledge base by its id from knowledge_index or knowledge_search. Returns the text with its citations, so an answer can quote the span of the client's own document a fact rests on. Long concepts come back a window at a time: when truncated is true, call again with offset set to the returned next_offset to continue.

Returns {concept_id, concept_type, title, description, markdown, chars_returned, total_chars, next_offset, truncated, resource, status, stale_after}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • concept_id (Annotated[str, Field(description=KNOWLEDGE_CONCEPT_ID)], required) — (no description)
  • offset (Annotated[int, Field(ge=0, description='Character offset to start from. Use the prior next_offset.')], optional) — (no description)
  • max_chars (Annotated[int, Field(ge=500, le=50000, description=KNOWLEDGE_MAX_CHARS)], optional) — (no description)

knowledge_runs

Read-only: yes.

Show how the knowledge base was built and where it had trouble: one row per run of each stage — transport (the client's material copied in), authoring (the concepts written from it), audit (those concepts checked) — newest first, with the counts and the per-item issues each run recorded. Use this when an answer looked wrong or incomplete, when material is in Drive but not in the bundle, or before trusting a bundle that was refreshed recently: a run can succeed and still have left something out, and issues is where that says so.

Returns {runs: [{stage, status, started_at, finished_at, source, processed, added, updated, unchanged, skipped, removed, failed, error_code, issues}]}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • stage (Annotated[str | None, Field(description='Restrict to one stage: transport, author or audit. Omit for all three in time order.')], optional) — (no description)
  • limit (Annotated[int, Field(ge=1, le=50, description='How many runs to return, newest first.')], optional) — (no description)

Read-only: yes.

Search a client's compliance documents — policies, procedures, risk assessments, reference guidance — by keyword or phrase. Use to answer questions from the client's own documentation ('what is their EDD threshold?', 'do they have a sanctions screening procedure?'). Ranks title and description matches above body matches and returns a matched fragment per hit, never the full text: call knowledge_read with a concept_id from the results to read a document.

Returns {count, limit, offset, has_more, results: [{concept_id, concept_type, title, description, snippet, rank}]}. If concept_type is given and matches nothing this client's bundle actually holds, the response instead carries {count: 0, results: [], concept_type_options: [...]} naming the values that do exist.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • query (Annotated[str, Field(description=KNOWLEDGE_QUERY)], required) — (no description)
  • concept_type (Annotated[str | None, Field(description=KNOWLEDGE_CONCEPT_TYPE)], optional) — (no description)
  • limit (Annotated[int, Field(ge=1, le=100, description=LIMIT)], optional) — (no description)
  • offset (Annotated[int, Field(ge=0, description=OFFSET)], optional) — (no description)

knowledge_source_read

Read-only: yes.

Read one of the client's own documents as they wrote it, from the material the knowledge base was built out of. Use it when a citation is not enough — to read the paragraph around a span, to check whether a concept left something out, or to answer from a document no concept covers. Nothing here is our wording: the text is the client's export, character for character. Take path from knowledge_citations or knowledge_gaps. Long documents come back a window at a time, the same way knowledge_read pages a concept.

Returns {path, title, source, text, chars_returned, total_chars, next_offset, truncated, url, outcome, declined_reason, modified_at, edited_by}.

Parameters

  • organization_id (Annotated[int, Field(description=ORGANIZATION_ID)], required) — (no description)
  • path (Annotated[str, Field(description=KNOWLEDGE_DOCUMENT_PATH)], required) — (no description)
  • offset (Annotated[int, Field(ge=0, description='Character offset to start from. Use the prior next_offset.')], optional) — (no description)
  • max_chars (Annotated[int, Field(ge=500, le=50000, description=KNOWLEDGE_MAX_CHARS)], optional) — (no description)