Skip to main content
toorow mounts a single governed MCP surface on the microkernel server (server/core/main.py). Every tool is declared: its profile, whether it reads or writes, and what it may touch are part of the declaration, not of the code that answers the call.
This page describes the surface and documents the tools you will reach first. It is not a listing of all 147 tools: the tool catalog a host receives at tools/list is generated from the server itself, and that catalog is the reference which cannot fall behind. Every tool named on this page is checked against the server registry by a conformance test.

1. Three profiles, one surface

A host does not see all 147 tools. It sees the profiles its session is entitled to, and nothing else. A tool that writes cannot be declared insights — the server refuses to assemble a surface where one is. 52 tools are declared confirmed write: each is refused before it runs unless a person is verifiably present at the host. Some of those additionally consume a single-use confirmation issued by a preceding prepare_* call, so the act and its authorisation cannot be the same request.

2. Reading what the platform already holds

get_daily_report

Canonical daily marketing metrics for a project, across every active connector.
The answer carries its own provenance: the pull that produced each row, the moment it landed, and the freshness of the data behind it. An agent that quotes a number from this tool can always say where the number came from.

get_report

Runs a saved report definition and returns its rows.
list_reports, get_report_versions and run_report_version cover the rest of the report lifecycle. A report version names the query intent and the default presentation; running it produces a new immutable Result.

get_data_quality_report

The state of the ten data-quality monitors for a project, or for one connector.
See Data Quality for what each monitor watches and what its findings mean.

get_source_capabilities

What one connected source can actually deliver: fields, supported grains, filter bounds.

3. Asking a new question: the analytical path

toorow has one governed analytical path, and these tools are its steps. Query intent becomes an immutable Result; a Result may become a Render; Renders may be composed into a Dossier; a Dossier version or a single Render may be handed out through a revocable Share. See Renders, Dossiers and Sharing.

explore_analyze_query

States a question against a Semantic View — governed measures, governed dimensions, a grain and a window — and executes it.
discover_analyze_matches and list_analyze_facets are the read-only tools that let an agent find which Semantic View and which governed names to ask for, before it asks.

execute_analyze_query_spec

Re-executes an existing Query Spec version. Same question, new data.

analyze_result

Opens an existing Result — its data, its definitions, its quality, its provenance, its freshness, and its reasoning path (or an explicit No AI path).

render_analyze_result

Turns a Result into a presentation, either from a saved Visualization Spec version or from a Chart Template version.

compose_dossier

Keeps what the model drew and wrote. Each figure is frozen server-side into an immutable Render, and the narrative blocks are stamped with their author — the model, or a person — in the same transaction as the Dossier version.
A block referencing a figure from another project fails the whole call: no partial Dossier is ever written.

4. Governed flows and configuration

flows_list

Lists datastreams and report configurations for a project.

flows_get

Retrieves one datastream or report definition.

flows_upsert

Creates or updates a datastream configuration. flows_validate checks a definition without writing it.

5. Connectors: installed, verified, activated

There is no per-connector tool. A connector is not a tool surface — it is a source the platform knows how to pull. Three read tools answer the three questions a host actually asks, and list_connectors enumerates the catalog.

get_connector_installation_status

Is this connector present in the running server?

get_connector_verification_status

Has this connector been proved against a real account?

get_connector_activation_status

Is this connector connected and pulling for this organization?

6. Context, insights and feedback

get_context_hub

The registered context of a project: what happened, when, and who recorded it. add_context_event records one. correct_context_event appends a correction and preserves the original wording — a correction never overwrites. withdraw_context_event withdraws one, auditably, and a withdrawal is not undone. search_context and get_context_adherence read.

preview_daily_insight / publish_daily_insights

Composes the daily narrative, then publishes it.
get_daily_insight_readiness says whether there is anything to publish, and retract_daily_insight withdraws a published one as an audited transition — never as a deletion.

submit_feedback

Records a rating and commentary against a trace, a report or a connector.
submit_analyze_feedback is the equivalent on the analytical path: it attaches the rating to the exact observation the reader was looking at.

Next Steps & Cross-References

Renders, Dossiers and Sharing

How an answer becomes a frozen figure, a document, and a revocable link.

Agent Rules

Review system instructions and constraints for tool execution.

MCP App Use Cases

Explore interactive MCP App UI widgets powered by tool outputs.

Host Integration

Connect Claude, ChatGPT or another MCP host to your workspace.