Skip to main content
For AI agents: a documentation index is available at https://docs.coverbase.com/llms.txt. This page is also available in markdown by appending .md to the URL.
The server exposes 11 tools. Eight of them are read dispatchers, one per domain, each covering many operations through a kind parameter. One returns reports, one performs every write, and one describes the rest. This shape is deliberate. An assistant handed sixty-five narrowly-named tools spends its context deciding between them and still picks wrong; eleven tools with explicit routes leave more room for your actual data.
You rarely need this page to use the server. Ask for what you want in plain language and the assistant picks the route. This is here for when you want to know exactly what it can reach, audit what an assistant did, or write a prompt that names a specific call.

Reads

Each read tool takes a kind and the identifiers that kind needs. All are read-only and scoped to your organization and your permissions.

query_vendors

Accepted parameters: kind, vendor_id, document_id, query, llm_query_terms, limit.

query_assessments

Accepted parameters: kind, assessment_id, eval_id, vendor_id, status, query, control_set_id, issues_only, unresolved_only, limit, full_text, analysis_offset. Reading a long AI analysis: eval_detail renders the AI’s reasoning whole up to a generous cap. If an analysis is longer than that, the response says so and names the follow-up call that returns the rest: pass full_text=true for every section at maximum length, or analysis_offset to page through the analysis from a given character. A capped response always announces itself, so a partial analysis is never presented as the complete reasoning.

query_findings

Accepted parameters: kind, finding_id, vendor_id, assessment_id, commitment_id, commitment_status, limit.

query_engagements_contracts

Accepted parameters: kind, vendor_id, engagement_id, contract_id, vendor_document_id, status, limit.

query_controls

Accepted parameters: kind, control_set_id, control_id, limit.

query_questionnaires

Accepted parameters: kind, questionnaire_id, questionnaire_type, vendor_id, intake_session_id, status, unanswered_only, pending_only, offset, limit.

Vendor intake in chat

How these fit together into a complete intake request, and why intake_steps is read before anything else runs.

query_radar

Accepted parameters: kind, vendor_id, query, llm_query_terms, include_common_related_terms, limit.

query_platform

Accepted parameters: kind, object_type, object_id, target_type, target_id, query, include_inactive, limit.

Reports

get_report(report_name, …) returns cross-cutting aggregations. Each report uses only some of the shared parameters.
control_flag_rates accepts format='csv' for a spreadsheet-ready export.

Writes

Every write goes through one tool: mutate(entity, action, data). The per-action parameters go inside data.
Every write requires confirm: true inside data. A first call without it returns a confirmation prompt and changes nothing. The assistant is expected to show you the proposed change and wait. See Roles and permissions.
A few of these carry behaviour worth knowing:

vendor / create refuses by default

Creating a vendor directly requires skip_intake: true in addition to confirm: true. Requests to add, buy, or start using a vendor are supposed to go through intake_session / create instead, which links or creates the vendor itself. Creating one first leaves a duplicate carrying no due diligence.The separate flag exists because a generic “yes, create it” is not the same as accepting that due diligence is being skipped.
Editing a control’s expectation, evaluation instructions, or evidence requirement changes how the AI judges it. Material edits create a new version rather than overwriting. Pair it with get_report(report_name="control_flag_rates") to find the controls worth tuning, and assessment / rerun to re-evaluate against the new instructions.
Clear a false positive with is_issue=false, resolve an issue, or attach review notes. This is the per-control correction, distinct from the whole-assessment sign-off in review / create.
There is no unarchive.
Writes reject unexpected keys in data and return the accepted set. Silently dropping a misspelled vender_id would turn a typo into a successful mutation that quietly omits the field you meant to set.

Discovery

mcp_capabilities() takes no arguments and returns a JSON document enumerating every route above with its parameters: name, type, required or optional, and default value. It’s the recommended first call when an assistant isn’t sure which route applies, and it’s always current, because it’s generated from the running server rather than maintained by hand.

Example prompts

Realistic phrasing for each workflow, and which calls it resolves to.

Canned prompts

Nineteen scripted workflows you can invoke by name.

Roles and permissions

How read-only versus read/write is decided, and how it maps to your Coverbase role.

Security and privacy

What we log, what we don’t retain, and how to revoke access.