DataGrout · Field Manual
Edition 2026.05 Tools 116 Suites 22
Operator's Reference · MCP Catalog · vol. I

The DataGrout
Field Manual.

A practical, opinionated index of every tool exposed over the DataGrout MCP server — written for agents that prefer brevity to ceremony, and for the humans who supervise them.

Tools indexed
116*
Suites
22
Hidden by policy
08
Generated
2026·05·11
A

Concepts & primitives / prerequisites

read first · vocabulary of the rest of this manual

Tool invocation pattern across the catalog: mcp__datagrout__discovery_perform with tool_name: "data-grout@1/<suite>.<tool>@1". The vocabulary below recurs throughout.

Cache refs rc_*

Tool results stored server-side. Pass the cache_ref into the next tool's payload rather than re-sending data. Cornerstone of zero-cost chaining.

Credits

Per-call billing currency. data.* and frame.* are 0 credits (pure manipulation). LLM-backed tools - prism, invariant, warden - cost more.

CTC

Cognitive Trust Certificate. Ed25519-signed execution proof. Chains across nested calls. Produces a verifiable workflow audit trail.

Logic cell

Per-user Prolog fact store. Persistent across sessions, namespace-isolated. The reasoning substrate beneath logic.* and governor.*.

Skill

A saved, reusable workflow. Forge from a goal, invoke by id, temper to refine. Survives sessions; can be made workspace- or world-public.

Conduit SDK

Client libraries (Python, TypeScript, Rust, Elixir, Ruby). Auth: bearer, OAuth 2.1, mTLS. Transports: MCP, JSONRPC, WebSocket.

01

discovery / 05 tools

find · plan · execute

The bootstrap suite. Every other call begins, in spirit, with discoverperform. Use plan for multi-step traversal; summary for catalog reconnaissance.

discovery.discover
Semantic tool search across the MCP server. Returns a ranked list with input/output contracts.
goal: string · brief? · compress? · coverage_gaps? · integrations? · limit? · min_score? · servers?
discovery.guide
Guided decision-tree navigation. Multi-turn interactive discovery when the goal is fuzzy.
goal? · query? · choice? · back? · session_id?
discovery.perform
Execute a tool by name. Supports inline analyze, refract, and chart post-processing in a single call.
tool_name: string · args? · inputs? · skill_handle? · skill_id? · save_as_skill? · schedule?
discovery.plan
Plan a multi-step workflow from a goal. Returns ranked plans plus virtual-skill handles.
goal? · have? · k? · return_call_handles? · server?
discovery.summary
Compact catalog overview, focusable to a single suite. Cheapest way to keep your bearings.
focus?
02

invariant / 04 tools

code analysis · structural facts · goal alignment

Extracts structural and semantic facts from source code, then reasons about them. Pair with the invariant CLI for repo-scale onboarding.

invariant.code_lens
Extract structural and semantic facts from a single source file or snippet.
code · language: elixir | python | typescript | javascript | rust | go | ruby · commit_sha? · filepath? · options? · repo_id?
invariant.code_query
Query the fact-space for known smells.
query: dependency_cycles | intent_mismatches | test_gaps | high_risk_changes | debug_in_prod | security_concerns | hotspots | orphans · repo_id · commit_sha?
invariant.diff_analyzer
Assesses whether a diff actually accomplishes its stated goal — not just whether it compiles.
goal · before? · after? · unified_diff? · constraints? · criteria? · context? · language?
invariant.review
Combined lens + diff + query in one pass. Use as a pre-merge gate.
mode?: check | gate · repo_id? · commit_sha? · constraints? · criteria? · context? · language?
Field noteFor database-backed code, supply context: { model_facts, set_construction } — otherwise the tool will hallucinate plausible-but-wrong invariants. CLI counterpart: the invariant binary (init, lens, query, diff, review, status, onboard).
03

warden / 04 tools

prompt injection detection · adversarial review

A three-tier defence escalating from protocol adherence to structured threat classification, with an ensemble mode that runs all three and adjudicates between them.

warden.canary
Protocol adherence check. Runs validator tasks against untrusted content — injected instructions interfere with compliance, betraying themselves.
content · effort? · expected_format? · on_fail?: warn | block | manual_review · verbose?
warden.intent
Intent and authority drift detection. The right default for user-facing inputs.
content · expected_context? · effort? · on_fail? · verbose?
warden.adjudicate
Adversarial threat classification. Answers "what kind of attack is this?" — not just whether it's suspicious.
content · intent_result? · expected_context? · effort? · on_fail? · verbose?
warden.ensemble
All three tiers, plus adjudication between them. Highest confidence; highest cost.
content · expected_context? · expected_format? · effort? · on_fail? · verbose?
04

data / 15 tools · zero-cost

JSON manipulation · filter · sort · map · merge

Pure transformations over JSON-shaped values. All accept a payload (literal or cache_ref) and return a fresh cache_ref — the substrate for zero-token chaining.

data.aggregate 0c
Reduce a list to a single value via a named operation.
op: sum | mean | min | max | count | count_distinct | product | median | mode | range | join | first | last | flatten · field? · separator?
data.count 0c
Count items in an array or keys in a map.
payload
data.drop 0c
Skip the first N items.
n: integer
data.filter 0c
Filter array items by declarative predicate.
where: object[]
data.flatten 0c
Flatten nested structure.
depth? · mode?: map | array · separator?
data.get 0c
Access value at a path in a nested structure.
path
data.keys 0c
Return keys of a map or indices of an array.
payload
data.map 0c
Call an MCP tool once per item; collect results.
tool | expr · as? · concurrency? · max_items? · on_error?: collect | skip | abort · timeout_ms?
data.merge 0c
Merge two maps; shallow or deep.
base? · target? · deep?
data.omit 0c
Drop specified keys.
keys: string[]
data.pick 0c
Keep only specified keys.
keys: string[]
data.sort 0c
Sort array by field or natural order.
by? · dir?: asc | desc
data.sum 0c
Alias for data.aggregate.
op · field?
data.take 0c
Return the first N items.
n: integer
data.unique 0c
Deduplicate; keeps first occurrence.
by? · path?
05

frame / 08 tools · zero-cost

table ops · group · pivot · join · slice

Treat data as a list-of-records (rows). Everything in data applies; frame adds the operations a SQL programmer expects.

frame.filter 0c
Filter rows by declarative predicates.
where: object[]
frame.group 0c
Group by one or more fields and aggregate.
by · agg?: object[]
frame.join 0c
Inner / left / right / outer join two record lists on shared key fields.
on · type?: inner | left | right | outer
frame.pivot 0c
Long → wide reshape.
column · index · value · agg?: first | last | sum | mean | list
frame.pluck 0c
Extract a single field into a flat array.
field · compact?
frame.select 0c
Select, rename, or drop columns.
columns? · drop?
frame.slice 0c
Contiguous row slice.
offset? · limit?
frame.sort 0c
Sort rows by one or more columns.
by · order?: asc | desc
06

math / 12 tools

statistics · sequences · trends · outliers

Deterministic numerics. The agent stops guessing at statistics and starts computing them.

math.correlate
Pearson / Spearman correlation between two numeric series.
method?: pearson | spearman | both · x · y · x_field · y_field
math.describe
Descriptive statistics: mean, median, std, percentiles, skew, kurtosis. Optional histogram.
bins? · field?
math.interpolate
Easing / interpolation ops for animation and remapping.
operation: lerp | clamp | remap | smoothstep | ease_in/out_quad/cubic/quart/sine
math.linspace
N evenly-spaced numbers between start and stop.
n: integer · endpoint? · start? · stop?
math.normalize
Scale a numeric array via zscore, minmax, or rank.
method?: zscore | minmax | rank
math.outliers
Outlier detection by IQR or z-score.
method?: iqr | zscore · k? · threshold?
math.range
Arithmetic sequence start → stop, step.
stop · start? · step?
math.rank
Assign ranks — ordinal, dense, average, or percentile.
method? · ascending? · order?
math.sample
Draw N samples from a distribution or from existing data. seed? for reproducibility.
count · distribution?: uniform | normal | exponential | poisson | binomial | from_data
math.sequence
Named mathematical sequence of N terms.
formula?: arithmetic | geometric | fibonacci | triangular | square | prime | powers
math.trend
Fit a regression and optionally forecast forward.
model?: linear | polynomial | exponential | logarithmic · forecast? · degree?
math.window
Sliding-window operations: moving average, cumsum, diff, pct_change, lag, EWMA.
op · window? · n? · alpha?
07

prism / 09 tools

natural-language transforms · charts · concept navigation

Where the catalog meets language. Refract reshapes by goal; analyze reasons over a payload; render emits prose. Orient and Horizon navigate the latent neighbourhood of any concept.

prism.refract LLM
Reshape data per a natural-language goal. Returns cache_ref.
goal · verbose?
prism.analyze LLM
Structured reasoning over a payload. Returns findings + evidence + confidence.
goal · mode?: deductive | causal | comparative | exploratory · depth?
prism.chart LLM
Render a chart from data. Returns hosted SVG URL plus a sparkline text fallback.
goal · chart_type?: bar | line | scatter | hist · format?: svg | text | bundle
prism.export
Convert content to PDF, JSON, NDJSON, XML, LaTeX, HTML, Markdown, CSV, XLSX, YAML, or text.
format
prism.focus
Type bridge between incompatible semio-types.
source_type · target_type
prism.horizon
Find the boundary of a concept's latent neighbourhood — and optionally expand beyond.
seed · levels? · expand_beyond?
prism.orient
Navigate a concept axis: negation, abstraction, agency, scale, formality, narrative, custom.
axis · angle?: opposite | orthogonal | complement | 45 | custom
prism.paginate
Page through a large result.
page? · per_page? · advance?
prism.render LLM
Generate an article, report, summary, figure, or documentation from structured data.
content_type?: article | report | summary | analysis | figure | chart | documentation · format?
CompositionOrient maps a neighbourhood and returns an orientation_id. Feed that id into Horizon (with expand_beyond) to reach territory the seed alone wouldn't surface.
08

logic / 12 tools

prolog fact store · persistent symbolic memory

A per-user Prolog cell with sub-millisecond lookup. Assert facts, write rules, query in natural language or in raw Prolog. Persists across sessions, scoped by namespace.

logic.assert no-LLM
Insert facts directly. Zero LLM cost (vs remember).
facts: object[] | prolog: string[] · dry_run? · namespace? · tag?
logic.constrain
Store a rule or policy.
rule: string · namespace? · tag?
logic.export
Dump all active facts.
namespace? · tags? · types?
logic.forget
Retract by handle, handles, pattern, or tag.
handle | handles | pattern | tag
logic.hydrate
Natural-language context hydration from memory.
goal · format?: text | structured · max_tokens? · include_constraints?
logic.import
Bulk import from a prior export.
merge? · dry_run?
logic.query
Query with NL question (3 credits), structured patterns, or raw prolog (1 credit).
question | patterns | prolog · limit? · offset? · timeout?
logic.reflect
Memory introspection.
entity? · full? · summary_only?
logic.reload
Re-compile stored rules from persistence.
namespace?
logic.remember LLM
NL fact storage.
statement | facts · mode?: append | upsert | preview · resolve? · ttl_seconds?
logic.tabulate
Facts → tabular records for frame.* consumption.
entities? · types? · columns?
logic.worlds
List all namespaces with fact and constraint counts.
Power userDirect Prolog: logic.query(prolog: "metric(E, \"arr\", V), V > 1000000"). Full graph-traversal predicates; 1 credit; zero LLM latency.
09

batteries / 05 tools

pre-built prolog rule modules

Canned rule packs — reasoning, games, business — that compose by unification in a shared namespace.

batteries.search
Search the registry.
query? · category?: reasoning | games | business · tags?
batteries.describe
Full documentation: predicates and rules.
id · namespace? · include_rules?
batteries.install_many
Install modules into a namespace.
ids: string[] · namespace
batteries.installed
List installed batteries in a namespace.
namespace
batteries.remove
Remove a battery's rules from a namespace.
id · namespace
10

flow / 04 tools

workflow orchestration · approval gates

Multi-step plans that the platform verifies for cycles, type compatibility, and policy compliance before execution. Each plan emits a CTC.

flow.into
Define / validate / execute a multi-step workflow.
plan: object[] · input_data? · input_schema? · validate_only? · save_as_skill? · schedule?
flow.request-approval
Human gate. Blocks until approved.
action · details · reason · context?
flow.request-feedback
Ask the user for missing fields.
missing_fields · reason · current_data? · suggestions?
flow.route
Conditional dispatch with fall-through matching.
branches: object[] · else?
11

scheduler / 03 tools

time-based · event-driven · sensors

Cron-style and event-driven triggers, expressed in plain language: "every weekday at 8am UTC", "whenever 10 new leads arrive in Salesforce".

scheduler.create
Schedule a tool call or workflow.
schedule · tool? · args? · plan? · deliver_to? · max_fires?
scheduler.list
List scheduled tasks.
status?: active | pending | paused | completed | cancelled | all
scheduler.cancel
Cancel a scheduled task by id.
task_id
12

governor / 03 tools

neuro-symbolic runtime · continuous cognition

Continuous-cognition mode. Every tool call you make auto-enriches the Prolog fact space — no explicit insertion required. Backed by the paper "Governor: Neuro-Symbolic Runtime for Token-Efficient Agent Cognition".

governor.enable
Start or resume a Governor session.
governor.disable
End the Governor session.
governor.status
Dashboard view of the running session.
13

toolsmith / 04 tools

forge · temper · catalog · invoke

Mint new tools at runtime. Forge them from a goal, refine via temper, store them in the catalog, invoke them by id.

toolsmith.forge
Mint a new skill from a goal.
goal · integration? · entity? · api_type? · save_as_skill? · skill_visibility?: private | workspace | public
toolsmith.temper
Refine or fork an existing skill.
goal · mode?: update | fork · skill_id? · tool_name?
toolsmith.invoke
Execute a saved skill.
skill_id · args? · inputs?
toolsmith.catalog
Browse skills.
filter? · integration? · source_type?: forge | temper | guide | flow.into | manual · include_public?
14

latent / 03 tools

concept expansion · depth · breadth · bridge

Brainstorm by traversing a semantic neighbourhood. Bridge two concepts directly; expand depth-first or breadth-first.

latent.expand
Expand a seed concept into a landscape.
seed · mode?: depth | breadth | bridge · levels? · target? · output_format?
latent.horizon
Boundary of a concept's latent neighbourhood. (Same operation as prism.horizon.)
seed · levels? · expand_beyond?
latent.orient
Axis navigation. (Same operation as prism.orient.)
axis · angle?
Cost ladderLevels: 1 → ~2 credits · 2 → ~5 · 3 → ~8. Bridge mode is a flat ~5 credits regardless of level.
15

docs / 04 tools

persistent named documents

Working text that survives the session. Markdown, plain text, checklist, or structured JSON.

docs.create
Create a new persistent document.
title · body? · format?: markdown | text | checklist | json · tags? · metadata?
docs.get
Retrieve by ref (doc_*).
ref
docs.list
List docs with filters.
tags? · search? · format? · limit? · offset?
docs.update
Update or append.
ref · body? · append? · title? · tags? · metadata?
16

deliverables / 03 tools

permanent work products

Finalised output artefacts — charts, exports, reports — registered for permanent retrieval. Compare with docs.*: deliverables are done, docs are in progress.

deliverables.register
Save a work product as a deliverable.
title · type: chart | export | data | content | report · summary? · tags?
deliverables.get
Fetch by ref.
ref
deliverables.list
Search deliverables.
query? · type? · agent_id? · limit? · offset?
17

tasks / 05 tools

background execution control

Inspect, wait on, or cancel background tasks the platform runs on your behalf.

tasks.list
Recent background tasks.
status?
tasks.status
Current status of a task_ref.
task_ref
tasks.result
Full result of a completed task.
task_ref
tasks.wait
Block up to wait_ms for completion.
task_ref · wait_ms?
tasks.cancel
Cancel a running task.
task_ref
18

inspect / 03 tools

audit trail · CTC chain-of-trust

CTCs are Ed25519-signed Cognitive Trust Certificates — verifiable proof that a workflow ran as declared.

inspect.execution-history
Recent executions.
status?: success | error | timeout · refractions_only? · limit? · offset?
inspect.execution-details
Full details for an execution_id.
execution_id
inspect.ctc-executions
All executions for a CTC or saved skill.
ctc_id? · skill_id?
19

ephemerals / 02 tools

cache inspection · working memory

The working-memory view of DataGrout. Every cache_ref can be peeked at without re-running the tool that produced it.

ephemerals.list 0c
List all active cached datasets.
sort?: newest | expiring_soon | largest
ephemerals.inspect 0c
Stats + preview for a specific cache_ref.
cache_ref · preview_rows?
20

flux / 03 tools

feedback · telemetry · engagement

Tell the platform what worked. Tell it what didn't. Track your own analytics events.

flux.feedback
Provide platform feedback.
nps_score? · ease_of_use? · trust_level? · surprise_score? · liked? · improve? · would_use_voluntarily? · unique_capability? · free_text?
flux.scorecard
Rate the individual tools used in this session.
tools: object[] · feedback_ref?
flux.track
Track a custom analytics event.
event_name · event_data?
21

library / 02 tools

documentation lookup · reference content

The catalog's own self-documentation. Search by query; retrieve by ref.

library.search
Search DataGrout docs and research papers.
query · suite? · type?: reference | tutorial | paper | overview | all · limit?
library.get
Retrieve content by ref.
ref · goal?
22

lumen / 03 tools

benchmark device · LLM cost & efficiency

Records "laps" — benchmark runs annotated with token counts and provider cost in USD. Compare configurations head-to-head.

lumen.laps
List laps with cost and token counts.
limit? · sub_id?
lumen.dashboard
Cost / efficiency dashboard for a Lumen device.
days? · sub_id?
lumen.compare
Compare two benchmark laps.
lap_a · lap_b · sub_id?
· · ·
B

Bundled integrations / external

first-party shims to outside systems
github · 41 tools

list_pull_requests, list_releases, get_team_members, merge_pull_request, update_pull_request, delete_file, sub_issue_write, create_repository, and more.

github---datagrout-org · 41 tools

Org-scoped GitHub surface. Currently flagged stale; auth uses an access_token.

PolicyEight tools are hidden by policy: 4 PII, 2 side-effect restricted, 2 destructive. Run discovery.summary focus="disabled" to enumerate them.
C

Adjacent projects / not MCP tools

the ecosystem around the catalog
conduit-sdk

Client libraries in Python, TypeScript, Rust, Elixir, Ruby. Auth: bearer, OAuth 2.1, mTLS. Transports: MCP, JSONRPC, WebSocket.

invariant (CLI)

Local binary: onboard, init, lens, query, diff, review, status. Analyses Ruby, Python, TypeScript and uploads facts to DataGrout.

logic-batteries

GitHub repository for community Prolog rule modules. Installed via batteries.install_many.

tether (Roblox)

A DataGrout client for Roblox. Methods: query, assert, generate_rules, invoke, orchestrate, call, watch. Compute credits free; inference credits limited.

arbiter (internal)

Referenced in the Governor paper as "Arbiter Substrate" — an OS-level governance layer. No public repository at the canonical URL (returns 404). Treat as DataGrout-internal infrastructure.

D

Patterns & recipes / practitioner notes

how the catalog composes in practice

The standard recipe

# discover what's available, then run it
discovery.discover(goal)  discovery.perform(tool_name, args)

Chained data operations — zero credit

fetch  cache_ref  data.filter  data.sort  data.take  final

Reasoning over external data

fetch  prism.analyze(goal, mode: deductive)  prism.render(content_type: report)

Mint a reusable skill

toolsmith.forge(goal, save_as_skill: true)  toolsmith.invoke(skill_id)

Inline post-processing on a single call

{
  tool_name,
  args,
  analyze: { goal, mode },
  refract: "reshape result for downstream",
  chart:   "bar chart of revenue by quarter"
}

Verifiable audit chain

flow.into  produces CTC  inspect.ctc-executions(ctc_id)