MCP tool reference
17 tools, generated from crates/mcp/schema/tools.json.
Available over both stdio and Streamable-HTTP transports (loopback-only). See the "connect your AI" guide to wire up Claude Desktop or another MCP-capable client.
add_research_log_entry
Record a search/source context entry in the research log for a session. The research log is what a human later checks to judge whether a search was reasonably exhaustive (GPS component 2) — junk filler is visible, not hidden.
Input schema
| field | required | type |
|---|---|---|
search_context | yes | string |
session | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
log_entry_id | yes | string (uuid) |
attach_evidence
Attach a piece of corroborating evidence (a source blob or an external record id) to an existing assertion. Strengthens — never substitutes for — human confirmation.
Input schema
| field | required | type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
assertion | yes | string (uuid) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
evidence | yes | evidence (tagged union)
|
Output schema
| field | required | type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
claim | yes | string | ||||||||||||
epistemic_status | yes | string | ||||||||||||
evidence_class | no | optional evidence_class
| ||||||||||||
id | yes | string (uuid) | ||||||||||||
next_step | yes | string | ||||||||||||
persona | yes | string (uuid) | ||||||||||||
source | yes | string (uuid) |
capture_assertion
Capture a new assertion (a claim about a persona, backed by a source). `research_context` is required, not optional metadata: the research log is a byproduct of every capture, per the GPS's reasonably-exhaustive-search component. Agent-origin assertions are always captured in the pending lane (epistemic status `pending confirmation`) — never immediately usable as fact until a human confirms them.
Input schema
| field | required | type | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
attached | no | array of AttachedEvidenceInput (tagged union)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
claim | yes | string | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
evidence_class | no | optional evidence_class
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kind | yes | kind (tagged union)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
persona | yes | string (uuid) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
research_context | yes | research_context
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
source | yes | string (uuid) |
Output schema
| field | required | type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
claim | yes | string | ||||||||||||
epistemic_status | yes | string | ||||||||||||
evidence_class | no | optional evidence_class
| ||||||||||||
id | yes | string (uuid) | ||||||||||||
next_step | yes | string | ||||||||||||
persona | yes | string (uuid) | ||||||||||||
source | yes | string (uuid) |
close_research_question
Close a research question once its line of inquiry is settled (answered, abandoned, or superseded). Does not delete anything — the question and its log remain.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
closed | yes | boolean |
end_research_session
End a research session. Does not close the parent research question — a question may span many sessions.
Input schema
| field | required | type |
|---|---|---|
session | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
ended | yes | boolean |
get_assertion
Read a single assertion by id, with its evidence class and epistemic status.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
claim | yes | string | ||||||||||||
epistemic_status | yes | string | ||||||||||||
evidence_class | no | optional evidence_class
| ||||||||||||
id | yes | string (uuid) | ||||||||||||
next_step | yes | string | ||||||||||||
persona | yes | string (uuid) | ||||||||||||
source | yes | string (uuid) |
get_person
Read a single concluded person (identity) by id.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
certainty | yes | string |
id | yes | string (uuid) |
personas | yes | array of string (uuid) |
get_persona
Read a single persona (a source appearance) by id.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
label | yes | string |
source | yes | string (uuid) |
get_research_log
Read the full research log for a research question, across all its sessions — the record a human checks for reasonably-exhaustive-search.
Input schema
| field | required | type |
|---|---|---|
question | yes | string (uuid) |
Output schema
| field | required | type | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
entries | yes | array of LogEntryView
|
get_research_question
Read a single research question by id.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
question | yes | string |
get_source
Read a single source by id.
Input schema
| field | required | type |
|---|---|---|
id | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
blobs | yes | array of string |
derived_from | no | ['string', 'null'] (uuid) |
id | yes | string (uuid) |
title | yes | string |
list_pending_assertions
List all agent-origin assertions currently awaiting human confirmation (the pending lane). Each result explains its epistemic status and the next step needed before it can support a proof argument.
Input schema
(object, no properties)
Output schema
| field | required | type | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | yes | array of AssertionView
|
list_proposals
List all proposed operations (redactions, exports) awaiting human disposition. Proposals are never auto-executed — a human must approve or deny each one.
Input schema
(object, no properties)
Output schema
| field | required | type | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
items | yes | array of ProposalView
|
open_research_question
Open a new research question — the GPS-reasoning unit of work. Every capture and log entry should trace back to a question; open one before starting a research session.
Input schema
| field | required | type |
|---|---|---|
question | yes | string |
Output schema
| field | required | type |
|---|---|---|
research_question_id | yes | string (uuid) |
propose_export
Propose exporting the full tree. This never executes directly — it only files a Proposal for a human to review and approve or deny. There is no tool that exports directly; this is the only export-adjacent tool available to an agent.
Input schema
| field | required | type |
|---|---|---|
destination_hint | no | ['string', 'null'] |
Output schema
| field | required | type |
|---|---|---|
message | yes | string |
proposal_id | yes | string (uuid) |
propose_redaction
Propose redacting (tombstoning) an event. This never executes directly — it only files a Proposal for a human to review and approve or deny. There is no tool that redacts directly; this is the only redaction-adjacent tool available to an agent.
Input schema
| field | required | type |
|---|---|---|
reason | yes | string |
target_event | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
message | yes | string |
proposal_id | yes | string (uuid) |
start_research_session
Start a research session under an existing research question. Sessions group the search/source log entries that justify a reasonably-exhaustive-search claim.
Input schema
| field | required | type |
|---|---|---|
question | yes | string (uuid) |
Output schema
| field | required | type |
|---|---|---|
session_id | yes | string (uuid) |