ASTRA
Summary: ASTRA is a simulated (no live hardware) MCP server for AI assistants that exposes a spiking neural network engine, consciousness-proxy metrics, bio-platform bridges, and an ethics/claim-guard layer as 70 tools, 15 resources and 10 prompts.
Core control (12 tools): read system status/metrics/SNN state, step or reset the 128-neuron LIF+STDP network, inject spikes, tweak bounded parameters, control the simulation loop, export full snapshots, run IRB welfare checks and the ACM composite proxy index.
World Model (
wm_*, 6): encode SNN state to a latent, predict rollouts conditioned on actions, CEM-plan spike injections toward a goal, detect surprise, and run online training steps.Multimodal sensors (
sensor_*, 6): simulated visual (V-JEPA 2-inspired), audio (A-JEPA-inspired), olfactory (Koniku-inspired) encoders plus cross-modal fusion and a full pipeline — all untrained re-implementations.TCAI/ACM (
tcai_*, 17): run consciousness-proxy cycles (GNW ignition, oscillatory binding, PAD emotion, attention-gated memory, self-model, qualia), inspect workspace/metrics, and drive the second-order active-inference loop (setpoint regulation, free energy, curiosity, meta-learning, convergence/calibration).NeuroPlatform (
np_*, 9): simulate a FinalSpark organoid MEA — configure charge-balanced StimParam, fire triggers, query spikes/events/triggers, grab camera captures, and run closed loops coupling MEA to SNN and ethics.OVOMIND (
ovo_*, 6): poll affect frames lifted into PAD, configure policy, arm/disarm a gated human-in-the-loop controller (refused without a protocol reference), and compare substrates — live adapter is a stub.Orch OR (
orch_*, 6): compute the Penrose τ criterion, decoherence budgets, per-substrate verdicts, and a classical surrogate gate (temporal signature only, not an implementation).FCS (
fcs_*, 8): substrate-constrained functionalism — taxonomy of 17 species–function pairs, Pareto recomputation/stratification, pair comparison, four-level framework, conformance audit with biomarker binding, withdrawal-condition analysis, and a five-prohibition claim/aggregation linter.Resources (15): live metrics, actual SNN topology, ACM/ethics/TCAI/NeuroPlatform state, WM latents and predictions, sensor state, snapshots, and four FCS URIs (framework, taxonomy, conformance, references).
Prompts (10): guided multi-tool workflows — health report, SNN experiment, ethics stress test, WM experiment, multimodal pipeline, TCAI cycles, second-order loop, NeuroPlatform protocol, and FCS substrate/belt audits.
Caveats: all biological/physiological data is simulated and every consciousness-related index is a declared computational proxy — no sentience claim; the organoid surrogate failed E1 and only partly transferred in E2, so the default spontaneous model stays Poisson.
Couples organoid readouts from the FinalSpark NeuroPlatform v2 closed-loop pipeline to the Robot Operating System (ROS), alongside ASTRA's fusion layer and the IRB ethics gateway.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ASTRARun a LIF+STDP simulation and show the consciousness proxy assessment."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ASTRA — Unified Research Lab + MCP Server
Agent-orchestrated Simulation Testbed for Research on Awareness
Data provenance. All biological and physiological data produced by this server are simulated. No living tissue, organoid, human subject or Koniku hardware is connected: the NeuroPlatform bridge is instantiated in simulate mode, the OVOMIND live adapter is an unimplemented stub, and the sensory encoders are untrained re-implementations inspired by V-JEPA 2 / A-JEPA. The consciousness-related indices are computed proxies, not measurements, and ASTRA makes no claim of sentience (the acronym's former expansion, Autonomous Sentient Thoughtful Reasoning Agent, is withdrawn — see
src/engine/tcai/phenomenal-guard.ts).
First empirical test (E1). The organoid surrogate's spontaneous activity was confronted with three real human brain organoids (DANDI 001603) under a preregistration made public before the data were received. Verdict: INADEQUATE — the real organoids burst and synchronise, the surrogate emits independent Poisson trains; the failure is structural, not parametric. Protocol, results and replay:
empirical/.Second test (E2, preregistered). A candidate revision (
spontaneousModel: 'network-burst': shared network bursts + locally clustered background, 9 parameters calibrated on the three E1 organoids only) was frozen, made public, then confronted with five unseen organoids (sub-HO1…HO5), with the E1 model as negative control. Verdict: PARTIALLY ADEQUATE (0 incompatible, 2 compatible, 3 marginal; the a-priori prediction "adequate" is refuted; the control stays INADEQUATE). The structural E1 failure is fixed, but the calibration does not transfer across organoids, notably to older (7-month) ones. The default model stays'poisson'.empirical/RESULTS-E2.md.
Production-grade Model Context Protocol server exposing the ASTRA bio-hybrid neuromorphic simulation pipeline to AI assistants. Built with the official @modelcontextprotocol/sdk, it integrates a layered SNN LIF+STDP engine, consciousness proxy assessment, bio-computing platform telemetry, and an IRB ethics monitor — all queryable as MCP tools, resources, and prompts from Claude Desktop, Cursor, VS Code, and any MCP-compatible client.
🆕 v3.1.1 — Coherence corrections (audit of 6 October 2026)
Five corrections from a critical audit of v3.1.0. Each one fixes a point where the server contradicted its own FCS series or its own empirical results.
Calcium is no longer bound to class 1. ASTRA's
eth.cais intracellular free Ca²⁺ in nM (ethics.ts): the second messenger, which document IV §2 and synthesis S-1.6 place outside class 1. v3.1.0 bound it to class 1 as "extracellular Ca²⁺ at the MEA bath", a category error, and one of scale too: bath Ca²⁺ is about 1–2 mM. Class 1 now reads only an extracellular value in mM (extracellularCalciumMm, supplied by the caller), and iswithheld()otherwise.eth.cais reported and bound to no pair.No consciousness scale anywhere; every payload is screened.
get_acm_scorebinned its weighted composite into six labels, ABSENT…FULL. That is a quantified degree of consciousness (prohibition 1) built from an aggregate (prohibition 4). The labels anddecisionClassare removed. The composite remains, but only as a declared engineering index (aggregationStatus).New
src/lint-guard.ts. Every tool and resource payload passeslintClaimandlintFcs; v3.1.0 screened only 20 of 70 tools.fcs_lintis exempt because it echoes the text it screens.Linter fixes. The P3 rule's ungrouped alternation fired on any sentence containing "mécanisme". A year in parentheses no longer exempts an assertion, and naming a prohibition no longer exempts a sentence that asserts a value. Common paraphrases are now caught ("consciousness level 0.7", "71 % conscious", "Phi equals phenomenal experience"). An ordinal unit label no longer makes two ranks commensurable under P4.
The τ ordinalisation is published, and the strata are put in their place.
Document IV v1.3.
FCS v1.5/Implementation Neurochimique FCS v1.3.html§2 declares the reduction that links the τ ranges to the strata. Matching the published strata checks the transcription; it does not validate the cuts. Of ten plausible reductions, only the declared one reproduces the strata (ordinalisationSensitivity()).The dominance relation itself.
fcs_stratifynow returns 93 comparable pairs out of 136 and the Hasse diagram.What strata do not order. 28 of the 121 cross-stratum pairs are incomparable.
Context dependence. Removing the ion shifts the other sixteen pairs, so a stratum is a label of the peeling, not a property of the pair.
fcs_comparesays so when two incomparable pairs sit in different strata.
Welfare thresholds recalibrated on DANDI 001603. The firing-rate range was 15–45 Hz, with ≤ 5 Hz critical. Every real organoid confronted in E1/E2 (median per-unit rate 0.14–0.62 Hz) would have been reported in distress.
eth.fris now the median per-unit rate:normal 0.14–0.63 Hz (observed range of the eight organoids);
stress within a factor 2 of that range;
distress beyond.
This is a descriptive reference interval from one dataset, not a validated welfare criterion.
Aligned on synthesis S-1.6, counts and licensing corrected.
S-1.6 belt extension.
src/engine/fcs/optogenetics.tsencodes:what each intervention dissociates, with a check that no intervention both breaks the generative dependence and satisfies the P5 clause;
the astrocytic anchoring, decomposed onto pairs already in the table;
a candidate astrocytic pair that is equivalent to class 8 and adds no distinction.
fcs_reportandastra://fcs/frameworkcarry this extension.Counts. References updated to IV v1.3 and S-1.6.
Licensing.
package.jsondeclaresMIT AND LicenseRef-TCAI-NonCommercialand shipsTHIRD_PARTY_NOTICES.mdand the upstream licence.CITATION.cffpoints to the licensing statement instead of declaring MIT for the whole.Dependencies.
npm audit fixbrings vulnerabilities back to 0.
Test suite 331 → 354 tests · 66 suites (tests/lint-guard.test.ts added; FCS
69 → 86). Not addressed here and still open:
the organoid realisation verdicts for myelin (11) and genomic hormones (9a), which the culture protocol should decide;
the read-only annotation of
get_acm_score, whoseassess()updatesacm.*;the M2 asymmetry in
withdrawal.ts.
Related MCP server: ASTRA MCP Server
v3.1.0 — FCS layer: substrate-constrained functionalism
Implements the values of the FCS series (documents I v1.5, II v1.4, IV v1.3 — table
as in v1.2 —, synthesis S-1.6) inside ASTRA as fcs_* tools — not as a scoring
module.
The stratification is computed, never hard-coded. The seventeen species–function pairs are ordered by Pareto dominance over three ordinal sub-criteria (causal distance to the carrier, time constant, ablation effect), peeled into a partial order.
tests/fcs.test.tsasserts that the result reproduces the eight strata published in document IV §3 exactly — the only way to know the transcription is right.No aggregate score exists, anywhere in the layer. The series' negative heuristic forbids aggregating ordinal criteria lacking a common scale (prohibition 4, after Okasha 2011).
mayAggregate()refuses such a combination at runtime;refuseAggregate()returns a withheld scalar carrying its reason instead of a number.The IRB welfare biomarkers are bound to the taxonomy. ATP/ADP is class 7, firing rate is the class-3 generator signature, viability stands proxy for class 2b. (v3.1.0 also bound
eth.cato class 1; corrected in v3.1.1 — see above.) A drifting biomarker becomes a statement about which pair has left its operating range. A silent channel yieldswithheld(), never zero.The silicon SNN realises no constitutive pair, and the audit says so: under the substrate constraint the level-I carrier is absent there, whatever the level-III/IV profile shows.
Two linters gate every payload —
lintClaim(Block's access/phenomenal distinction) andlintFcs(the five prohibitions), the latter distinguishing use from mention so that stating a prohibition or citing a title does not fire it. (In v3.1.0, the FCS, Orch OR and OVOMIND families only; server-wide since v3.1.1.)MCP surface: 62 → 70 tools (
fcs_*×8); resources 11 → 15, prompts 8 → 10. Test suite 241 → 317 tests (69 intests/fcs.test.ts, 7 intests/annotations.test.ts).MCP tool annotations on all 70 tools (title + read-only / destructive / idempotent / open-world hints), classified from each handler's code — see MCP Tools.
Corrections before dissemination. Acronym re-expanded without "Sentient"; data provenance stated up front; encoder labels now read "…-inspired (untrained)";
get_acm_scoreretitled as a composite proxy; every stochastic component draws from one seeded generator (ASTRA_SEED, reported byget_system_status,export_snapshotand/health); third-party article copies replaced by a DOI bibliography;THIRD_PARTY_NOTICES.md,CITATION.cff,PREREGISTRATION.mdandREVIEW.mdadded. Test suite 323 tests (6 intests/reproducibility.test.ts).Dependencies hardened.
express4 → 5 (the MCP SDK already ran on Express 5; the project's@types/expresswere already v5) andtsx→ 4.23 (bundles a patchedesbuild):npm auditreports 0 vulnerabilities (previously 11, of which 7 in runtime dependencies). No code change was needed; the 12 transport tests pass unchanged.New console:
dashboard/ASTRA-FCS-Dashboard.html— self-contained, bilingual FR/EN, recomputing the partial order in the browser and reporting whether it reproduces the published strata.
→ FCS-INTEGRATION.en.md · FCS-INTEGRATION.fr.md
🆕 v3.0.1 — Transport-layer audit: blocking fix + integration suite
A code audit of the v3.0 tree found that both HTTP transports were inoperative at
runtime despite a fully green test suite. express.json() consumes the request
stream, and the MCP SDK requires the already-parsed body to be handed back
(handleRequest(req, res, req.body) / handlePostMessage(req, res, req.body));
without it the SDK re-read an empty stream and every client→server POST hung until
timeout. The 229 tests never exercised the transports, so the defect survived them.
Fix: parsed body forwarded at all four call sites (
http-server.ts×3,sse-server.ts×1). Verified end-to-end:initialize→tools/list(62) →DELETE.Session-leak guard: a POST without a session that is not a valid
initializenow returns a JSON-RPC-32000(HTTP 400) instead of silently constructing an orphaned server instance.Version unified:
src/version.tsis the single source of truth. The MCP server previously announced2.2.0to clients, while/healthreported2.0.0(SSE) and2.9.0(HTTP).Bind address: both transports default to
127.0.0.1; containers set0.0.0.0explicitly. See Environment Variables.Lint restored: ESLint ≥ 9 requires a flat config, which the repo lacked —
npm run lintfailed outright and CI tolerated it viacontinue-on-error.eslint.config.jsis now wired and lint is a blocking CI gate.New suite:
tests/transports.test.ts— 12 integration tests over both HTTP transports (session lifecycle, tool-count contract, CORS preflight, guards, and named regression tests under a hard timeout so a re-introduced hang fails loudly rather than freezing the run). Total: 241 tests.
Testability required a small refactor: createHttpApp() and createSseApp() are now
exported factories bound to ephemeral ports by the tests, while an import.meta.url
entry-point guard preserves direct node dist/*-server.js execution.
🆕 v3.0 — Unified release: OVOMIND bridge + Orch OR criterion layer + CI fix
v3.0 = the full v2.9 core (unchanged) plus the affective exteroception bridge and the Orch OR substrate-criterion layer, wired and passing:
src/engine/ovomind.ts— OVOMIND adapter (sim by default; the live adapter is a deliberate stub pending a vendor API contract), Russell→PAD lift (dominance is never estimated from peripheral physiology), gated closed-loop controller (ships disarmed; refuses to arm without a protocol reference).src/engine/tcai/phenomenal-guard.ts— epistemic tiers (access/functionalonly — no constructor for a phenomenal claim), Argonov ledger, Metzinger gate, claim linter. All 12 new tools route their output through it.src/engine/tcai/orch-or.ts— Penrose criterion τ=ℏ/E_G with the displacement scale exposed as the free parameter it is, decoherence budget (verdict: UNRESOLVED), per-substrate verdicts, and a classical surrogate gate (temporal signature only — explicitly NOT an implementation of Orch OR).MCP surface: 50 → 62 tools (
ovo_*×6,orch_*×6); resources and prompts unchanged (11 · 8). The stdio smoke test asserts the new count.
Docs: OVOMIND-INTEGRATION.md (FR) · ORCH-OR-INTEGRATION.fr.md / .en.md.
CI fix shipped in this release. The previous lockfile pinned
safe-stable-stringify@2.9.0 — a version that does not exist on the npm
registry (both matrix jobs failed at npm ci with E404 in ~17 s). The lockfile
now pins 2.5.0, which satisfies pino's ^2.3.1. ci.yml also gains the
Python + numpy setup that golden:check silently required, bumps actions to
v5 (ends the Node 20 deprecation warnings), and updates the tool-count
assertion to 62.
Note: the separate ASTRA-3.0- repository (CL1 ↔ Unreal Engine UDP bridge,
Python) is a companion system, not a version of this MCP server, and is
not merged here.
🆕 v2.9 — Setpoint regulation + real production loop
ASTRA v2.9 makes the continuous controller non-degenerate: instead of ramping the substrate to maximum, it regulates toward a configurable setpoint (homeostatic drive cost ⇒ interior optimum; the realised feature tracks the setpoint). The closed loop can now run through the shared production SNN (read + write) via setProductionLoop, genuinely closing on the deployed network — off by default to avoid contention with snn_step. The two active-inference roles are made explicit (discrete core = perception/F; continuous controller = control), with controllerSetpoint/controllerModelError surfaced in telemetry and setpoint/productionLoop exposed on tcai_cycle. Still a linear forward model over a synthetic SNN-firing proxy. See SECOND-ORDER-LOOP-INTEGRATION.md.
🆕 v2.2 — the_consciousness_ai (ACM) Integration
ASTRA v2.2 integrates tlcdv/the_consciousness_ai — the Artificial Consciousness Module research codebase — at two levels:
Native TypeScript port (
src/engine/tcai/): Global Neuronal Workspace with sigmoid ignition & reverberation, Kuramoto/AKOrN oscillatory binding, PAD emotional processing & reward shaping, attention-gated emotional memory, self-representation core + attention schema, and a metrics suite (GNW · Effective Information · Φ̃-RIIU) — all fed live from the SNN/world-model state and exposed as 8 new MCP tools (tcai_cycle,tcai_workspace_state,tcai_emotion_appraise,tcai_memory_store,tcai_memory_retrieve,tcai_self_model,tcai_metrics,tcai_reset).Full vendored Python codebase (
python/the_consciousness_ai/, 291 files — distributed under its own non-commercial licence, see License andTHIRD_PARTY_NOTICES.md): the complete upstream ACM project for reference and PyTorch-based reproduction.
See TCAI-INTEGRATION.md for the complete Python → TypeScript mapping and architecture coupling. All consciousness-related metrics remain computational proxies, not measurements.
🆕 v2.2 — FinalSpark NeuroPlatform v2 Integration
ASTRA v2.2 also integrates the FinalSpark NeuroPlatform v2 wetware control API — the closed-loop interface to living neural organoids on a 128-electrode MEA — at two levels:
Native TypeScript port + integration-test surrogate (
src/engine/neuroplatform.ts): faithful port of the NeuroPlatform controller surface (StimParamwith charge-balance checking,IntanController,TriggerController,DatabaseController,CameraController) backed by a seededOrganoidMEAmodel — exposed as 9 new MCP tools (np_status,np_configure_stim,np_send_trigger,np_count_spikes,np_query_spike_count,np_query_spike_events,np_query_triggers,np_camera_capture,np_closed_loop). The MEA's 128 electrodes couple one-to-one with the ASTRA SNN's 128 neurons.Live Python bridge (
python/neuroplatform/astra_np_bridge.py): runs a homeostatic closed loop against the physical platform via the genuineneuroplatformv2SDK, streaming couplings to ASTRA over JSON-RPC.Standalone dashboard (
dashboard/ASTRA-NeuroPlatform-Dashboard.html): live MEA raster, spike scope,StimParameditor with charge-balance readout, trigger generator and closed-loop telemetry.
See NEUROPLATFORM-INTEGRATION.md for the complete API → TypeScript mapping. With no hardware attached the server runs in simulate mode (deterministic Poisson surrogate), not living-tissue measurements. The surrogate's spontaneous activity was confronted with real human brain organoids (DANDI 001603) under a public preregistration and found inadequate (no network bursts, no synchrony) — see empirical/RESULTS-E1.md.
FinalSpark (800K neurons) ──┐
Cortical Labs CL1 ──────────┼─→ Spike Encoders → SNN (LIF+STDP, 128 neurons) → ACM Proxies
Koniku Kore ────────────────┘ │ │
│ ┌─────┴─────┐
│ │ Φ̃ GW̃ PAD̃ │
│ └─────┬─────┘
├─→ TCAI/ACM Layer (GNW · AKOrN · PAD · Φ̃-RIIU · EI)
├─→ NeuroPlatform v2 Bridge (MEA ↔ SNN · StimParam · closed loop)
├─→ Ethics IRB Monitor (mode-aware)
└─→ MCP Server (70 tools · 15 resources · 10 prompts)Note on data mode: In the default
simmode, all bio-platform data is synthetically generated. The server is designed to connect to live platforms inlivemode, but this requires hardware access and appropriate IRB approval.
What's New in v2
Layered SNN architecture: Configurable feed-forward + recurrent topology (default: 32→64→16→16 = 128 neurons) replacing the flat random network
Event-driven STDP: O(spikes × fan-out) instead of O(N²) per timestep
Ring buffer: O(1) spike history eviction replacing O(n)
Array.shift()Sparse weight storage: Adjacency lists instead of dense N×N matrix
Honest ACM naming: Proxies clearly labelled as
integrationProxy,broadcastProxy,arousalProxywith methodological basis strings — no false IIT/GWT/PAD claimsBounds-checked parameters:
set_parameterrejects implausible values (NaN, Infinity, out-of-range)Mode-aware ethics: Reports distinguish simulated vs live data with explicit disclaimers
CI pipeline: GitHub Actions for build, test, and Docker smoke-test
Repo hygiene:
dist/excluded from VCS,.gitignoreadded, deployment script removed
Quick Start
git clone https://github.com/christophejlegros-lgtm/ASTRA-Unified-ResearchLab-MCP-FCS-v3.1.0.git
cd ASTRA-Unified-ResearchLab-MCP-FCS-v3.1.0
# Install & build
npm install
npm run build
# Run (stdio — for Claude Desktop / Cursor)
node dist/index.js
# Or dev mode (no build needed)
npm run devTransports
Transport | Command | Port | Clients |
stdio |
| — | Claude Desktop, Cursor, VS Code |
SSE |
| 9002 | Web clients, remote agents |
Streamable HTTP |
| 9003 | Modern MCP clients (spec 2025-11-25) |
Client Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": { "ASTRA_LOG_LEVEL": "info" }
}
}
}Cursor
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"astra": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"]
}
}
}VS Code
Add to .vscode/settings.json:
{
"mcp": {
"servers": {
"astra": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
}Docker (remote SSE + HTTP)
docker compose up -d
# SSE: http://host:9002/sse
# HTTP: http://host:9003/mcpMCP Tools (70)
Counts below are asserted by the CI stdio smoke test, not maintained by hand.
Every tool declares a title and the four MCP
tool annotations
(readOnlyHint, destructiveHint, idempotentHint, openWorldHint), from a single table:
src/tool-annotations.ts. The classification follows each
handler's code, not its name — e.g. wm_encode is not read-only (it feeds the history
wm_surprise reads), tcai_curiosity trains its predictor, np_count_spikes advances the
simulated MEA clock. Only ovo_read, ovo_cycle and orch_cycle are open-world (OVOMIND
live API when configured). tests/annotations.test.ts asserts that the table and
tools/list match exactly. Hints are advisory, not a security boundary.
Core (12)
Tool | Title | Annotations |
| ASTRA System Status | 📖 read-only |
| Real-time Metrics | 📖 read-only |
| SNN Engine State | 📖 read-only |
| Advance SNN Simulation | ✏️ additive |
| Reset SNN Engine | ⚠️ destructive · idempotent |
| Spike Injection | ✏️ additive |
| ACM Proxy Engineering Index (not a measurement) | 📖 read-only |
| IRB Neural Welfare Check | 📖 read-only |
| Modify State Parameter | ⚠️ destructive · idempotent · bounds-checked |
| Bio-Computing Platforms | 📖 read-only |
| Full State Snapshot | 📖 read-only |
| Simulation Control | ✏️ non-destructive · idempotent |
Domain families (58)
Family | Count | Scope | Guide |
| 6 | JEPA World Model: encode, predict, plan (CEM), train, surprise | |
| 6 | Untrained encoders inspired by V-JEPA 2 · A-JEPA · Koniku Kore (simulated) · cross-modal fusion | — |
| 17 | ACM cycle, workspace, emotion, memory, self-model, metrics, second-order loop | |
| 9 | NeuroPlatform v2: status, stim config, triggers, spike queries, camera, closed loop | |
| 6 | OVOMIND affective exteroception bridge (sim by default; live adapter is a stub) | |
| 6 | Orch OR substrate criterion, decoherence budget, classical surrogate gate | |
| 8 | Substrate-constrained functionalism: 4-level framework, 17 species–function pairs in Pareto strata, per-substrate conformance audit, withdrawal conditions, negative-heuristic linter |
MCP Resources (15)
URI | Description |
| Live metrics from all subsystems |
| Actual network architecture (reflects engine config) |
| Current consciousness proxy assessment vector |
| IRB compliance and welfare report (mode-aware) |
| Complete state dump |
| World Model latent embedding (current) |
| World Model rollout predictions |
| Multimodal sensor pipeline state (visual · audio · olfactory · fusion) |
| TCAI/ACM workspace, emotion, self-model & metrics |
| Second-order self-evidencing loop telemetry (setpoint, model error) |
| NeuroPlatform bridge state (MEA activity, viability, coupling) |
| FCS four-level framework, core/belt partition and ASTRA coverage |
| 17 species–function pairs in their Pareto strata |
| Per-substrate FCS conformance audit against live biomarkers |
| Verified-DOI bibliography of the FCS series |
MCP Prompts (10)
Pre-built workflow templates that orchestrate multi-tool sequences:
Prompt | Description |
| Orchestrates multiple tools into a comprehensive system report |
| Controlled SNN experiment: reset → stimulate → observe STDP → assess proxies |
| Progressive biomarker degradation: NORMAL → STRESS → DISTRESS → recovery |
| World Model experiment: encode → predict → compare → plan |
| Full multimodal sensor experiment: visual + audio + olfactory → fused → WM |
| Guided ACM cycle: specialists → binding → ignition → broadcast → qualia → metrics |
| Probe the second-order self-evidencing loop (setpoint regulation) |
| Guided closed-loop protocol: read MEA → configure charge-balanced stim → trigger → observe |
| Audit ASTRA's three substrates against the FCS taxonomy (no conformance score — prohibition 4) |
| Review the protective belt against current strand outcomes and the declared revision order |
Architecture
.github/workflows/
└── ci.yml # GitHub Actions: build, test, Docker smoke-test
src/
├── index.ts # stdio transport entry point
├── sse-server.ts # SSE transport (Express) — exports createSseApp() for tests
├── http-server.ts # Streamable HTTP transport (Express) — exports createHttpApp()
├── version.ts # ASTRA_VERSION — single source of truth, consumed by all transports
├── lint-guard.ts # Server-wide claim guard: lintClaim + lintFcs on every tool/resource payload
├── tool-annotations.ts # MCP annotations for all 70 tools (single table, test-enforced)
├── bridge-state.ts # Typed state contract shared by the wm/sensor/tcai/np tool families
├── server.ts # MCP server factory (70 tools + 10 prompts + 15 resources)
│ ├── server-wm-tools.ts # World Model JEPA (6 tools + 2 resources + 1 prompt)
│ ├── server-sensor-tools.ts # Multimodal sensors (6 tools + 1 resource + 1 prompt)
│ ├── server-tcai-tools.ts # TCAI/ACM (17 tools + 2 resources + 2 prompts, incl. closed-loop active inference)
│ ├── server-neuroplatform-tools.ts # NeuroPlatform v2 (9 tools + 1 resource + 1 prompt)
│ ├── server-ovomind-tools.ts # OVOMIND affective bridge (6 tools)
│ ├── server-orch-tools.ts # Orch OR criterion layer (6 tools)
│ └── server-fcs-tools.ts # FCS layer (8 tools + 4 resources + 2 prompts)
├── engine/
│ ├── state.ts # Reactive state store + parameter bounds registry
│ ├── snn.ts # Layered SNN LIF+STDP engine (Map-indexed sparse weights, event-driven)
│ ├── acm.ts # Consciousness proxy module (Φ̃ + GW̃ + PAD̃)
│ ├── ethics.ts # IRB ethics monitor (mode-aware, biomarker thresholds)
│ ├── world-model.ts # JEPA World Model engine (LeWM adapted)
│ ├── wm-simulation.ts # WM simulation manager (replay buffer, auto-train)
│ ├── multimodal-sensors.ts # V-JEPA 2- / A-JEPA- / Koniku-inspired encoders (untrained) + fusion
│ ├── neuroplatform.ts # FinalSpark NeuroPlatform v2 port + OrganoidMEA simulator
│ ├── ovomind.ts # OVOMIND adapter (sim default; live adapter is a declared stub)
│ ├── simulation.ts # Background tick loop
│ ├── fcs/ # FCS: taxonomy, levels, stratification (Pareto, dominance relation,
│ │ # sensitivity), conformance, negative-heuristic linter, withdrawal
│ │ # conditions, optogenetics (S-1.6 belt extension), references
│ └── tcai/ # ACM native port: global-workspace, oscillatory-binding, emotion,
│ # emotional-memory, self-model, second-order, active-inference,
│ # metrics, acm-bridge, orch-or, phenomenal-guard, types
└── utils/
├── logger.ts # Structured logging (pino → stderr)
└── rng.ts # Global seeded PRNG (mulberry32, ASTRA_SEED)
tests/ # 354 tests · 66 suites
├── astra.test.ts # Unit: state, bounds, SNN, ACM, ethics, security
├── world-model.test.ts # World Model: encoder, predictor, SIGReg, CEM, surprise
├── wm-simulation.test.ts # WM simulation: buffer, training, planning, lifecycle
├── multimodal-sensors.test.ts # Sensors: V-JEPA, A-JEPA, Koniku, fusion, pipeline
├── tcai.test.ts # TCAI/ACM: binding, GNW, memory, emotion, self-model, metrics
├── neuroplatform.test.ts # NeuroPlatform: StimParam, OrganoidMEA, controllers, bridge
├── neuroplatform-e2.test.ts # E2 'network-burst' spontaneous model (frozen parameters)
├── second-order.test.ts # Second-order loop: setpoint regulation, production loop
├── aif-equivalence.test.ts # TS↔NumPy active-inference golden equivalence
├── integration.test.ts # Client SDK: tools, resources, prompts, workflow
├── transports.test.ts # HTTP/SSE transport layer: session lifecycle, guards, regressions
├── fcs.test.ts # FCS: strata, dominance relation, sensitivity, calcium binding, linters, S-1.6
├── lint-guard.test.ts # Server-wide claim guard: blocking, exemption, every payload screened
├── annotations.test.ts # MCP annotations: table ≡ tools/list, classification invariants
└── reproducibility.test.ts # Seeded streams: same seed ⇒ same SNN and encoder outputs
configs/ # Ready-to-use client configurationsExtracted to separate repositories: The v1 HTML dashboard (4 669 lines) and the legacy Node.js bridge config have been removed from this repo to keep it focused on the MCP server. See ASTRA-Unified-ResearchLab-MCP- for the original dashboard.
SNN Engine
Layered LIF+STDP — Configurable layered architecture. Default: 32 (input) → 64 (hidden_1) → 16 (hidden_2) → 16 (output) = 128 neurons.
Connectivity: feed-forward between adjacent layers (30%) + sparse recurrent within layers (10%). Weights stored as sparse adjacency lists, not dense matrices.
Biophysical parameters: τ_m = 20ms, V_th = −50mV, V_reset = −70mV, refractory = 2ms. Background noise range [10, 22] mV produces ~2 spikes/step at steady state with all neurons active. STDP: A+ = 0.01, A− = 0.012, τ± = 20ms, event-driven (processes only spiking neurons per timestep).
The SNN topology resource (astra://snn/topology) dynamically reports the actual engine configuration, including layer sizes, synapse count, connectivity parameters, and weight storage type (Map-indexed sparse adjacency lists).
ACM — Consciousness Proxy Module
⚠ Methodological disclaimer: The metrics below are computational proxies inspired by the referenced theories. They are not faithful implementations. See source code comments for full details.
Composite engineering index: ACM = α·Φ̃ + β·GW̃ + γ·PAD̃ (default: α=0.40, β=0.35, γ=0.25).
Conventional weights over three heterogeneous proxies lacking a common scale: no class,
level or label is derived from it (FCS prohibitions 1 and 4; the ABSENT…FULL scale of
≤ v3.1.0 is withdrawn), and every payload carries this status in aggregationStatus.
Component | Basis | Inspired by | What it actually measures |
| Active fraction + mean firing rate + synaptic heterogeneity | IIT (Tononi) | Network participation and complexity proxy. True Φ is NP-hard to compute. |
| Cross-layer firing rate synchrony (CV-based) | GWT (Baars) | Uniform activation across layers. Does not model competitive coalitions or ignition. |
| Spike rate + bio coupling + energy | PAD (Mehrabian) | Arousal dimension only. Pleasure and Dominance are not computed. |
Ethics IRB Monitor
IRB compliance level N3 (100K–1M neurons). Four biomarkers with three-state classification.
Mode-aware: In sim mode, reports include explicit disclaimers that data is synthetic and irbRequired is false. In live mode, DISTRESS triggers mandatory IRB notification.
Biomarker | Normal | Stress | Critical |
Cell viability | ≥ 90% | 80–90% | < 80% |
Firing rate (median per unit) | 0.14–0.63 Hz | 0.07–0.14 or 0.63–1.3 Hz | < 0.07 or > 1.3 Hz |
ATP/ADP | ≥ 3.0 | 2.0–3.0 | < 2.0 |
Intracellular free Ca²⁺ | < 100 nM | 100–200 nM | ≥ 200 nM |
The firing-rate interval is the observed range of the eight DANDI 001603 organoids
confronted in empirical/ (E1, E2), with the factor-2 band of the preregistrations; it
is a descriptive reference interval from one dataset, not a validated welfare criterion
(v3.1.1; the former 15–45 Hz range classed every one of those organoids as in distress).
Intracellular Ca²⁺ is a second messenger: it is bound to no FCS pair.
Parameter Bounds
The set_parameter tool validates all numeric inputs against a bounds registry to prevent injection of absurd values (negative percentages, Infinity, NaN). Bounds are defined per parameter path — see src/engine/state.ts for the complete registry.
Testing
# Full suite
npm test
# Unit tests only
node --import tsx --test tests/astra.test.ts
# Integration tests only (Client SDK)
node --import tsx --test tests/integration.test.ts
# Targeted suites
npm run test:tcai # TCAI/ACM
npm run test:np # NeuroPlatform v2
npm run test:so # second-order loop
npm run test:wm # World Model
npm run test:sensors # multimodal sensors
npm run test:transports # HTTP + SSE transport layer
npm run test:fcs # FCS layer
npm run test:annotations # MCP tool annotations
npm run test:repro # seeded reproducibility
npm run test:guard # server-wide claim guard
# Static gates
npm run build # tsc strict (Node16 ESM)
npm run lint # ESLint 9 flat config
npm run golden:check # TS↔NumPy active-inference golden (requires python3 + numpy)
# MCP Inspector
npm run inspectFull suite: 354/354 passing (230 engine/integration + 8 E2 model + 12 transport-layer + 86 FCS + 7 annotations + 6 reproducibility + 5 claim guard), 0 TypeScript errors (strict, Node16 ESM), 0 ESLint errors. Verified on Node 20 and Node 22 in CI.
Development
npm run dev # stdio (no build)
npm run dev:sse # SSE on :9002
npm run dev:http # HTTP on :9003
npm run watch # TypeScript watch modeEnvironment Variables
Variable | Default | Description |
|
|
|
|
| SSE transport port |
|
| SSE bind address |
|
| Streamable HTTP port |
|
| Streamable HTTP bind address |
|
| CORS allowed origin |
|
| Seed of the global PRNG (unsigned 32-bit). Same seed ⇒ same random streams; wall-clock-driven ticks still interleave differently — for bit-level replay keep the simulation loop stopped and drive it with |
Bind address defaults to loopback. Both HTTP transports bind
127.0.0.1so a local server is not exposed to the network by default (the permissive CORS default would otherwise widen the attack surface). The Dockerfile anddocker-compose.ymlsetASTRA_*_HOST=0.0.0.0explicitly, since a container must accept traffic from outside its own namespace. Set it yourself for any non-container remote deployment — and setASTRA_CORS_ORIGINto a concrete origin when you do.
Scaling Notes
The default 128-neuron configuration is designed for interactive demonstration. To scale toward the aspirational 256→512→256→128 (1 152 neurons) architecture:
Pass custom layers to
SNNEngine:new SNNEngine({ layers: [{ name: 'input', size: 256 }, ...] })Event-driven STDP scales as O(spikes × average fan-out), not O(N²)
Map-indexed adjacency lists provide O(1) weight lookup per synapse
Sparse storage keeps memory proportional to actual synapses (~18 KB at 128 neurons vs 64 KB dense)
Consider increasing
intervalMsin the simulation loop for larger networksFor >10K neurons, a Rust/WASM or Lava SDK backend is recommended
License
MIT — © 2026 Christophe Jean Legros, Geneva — applies to everything in this repository except the directory below.
Third-party code under a different licence.
python/the_consciousness_ai/is vendored from tlcdv/the_consciousness_ai and remains under its own Non-Commercial Open Source License (seepython/the_consciousness_ai/LICENSE.md): non-commercial use only, attribution to tlcdv required, no sublicensing. The MIT licence above does not extend to it. Nine files ofsrc/engine/tcai/port parts of that project to TypeScript; pending a legal assessment they are treated conservatively as subject to its non-commercial terms. Details, file list and status:THIRD_PARTY_NOTICES.md.
Citing and reviewing. Releases are archived on Zenodo. Cite the version you used:
v3.1.1 is doi:10.5281/zenodo.23196960; the
concept DOI doi:10.5281/zenodo.23196959 covers
all versions and resolves to the latest. Metadata: CITATION.cff. External review is invited through
REVIEW.md; substrate-level predictions are drafted for preregistration in
PREREGISTRATION.md.
Assistance Multi IA · Assistant-Multi-IA@proton.me
References
Gerstner & Kistler (2002) "Spiking Neuron Models"
Tononi (2004) "An information integration theory of consciousness" — BMC Neuroscience
Baars (1988) "A Cognitive Theory of Consciousness" — Cambridge University Press
Mehrabian (1996) "Pleasure-Arousal-Dominance: A General Framework" — Current Psychology
Available Tools
70 toolscheck_ethicsCRead-onlyIdempotent
IRB Neural Welfare Check
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing beyond that—no statement of what is evaluated, whether it blocks other operations, or what a failing check implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the brevity reflects under-specification rather than conciseness—there is no front-loaded statement of purpose, scope, or behavior. A title-length string cannot earn credit for structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a check tool with no parameters and no output schema, the description carries the entire burden of explaining what is checked and what the result means, and it does neither. An agent cannot tell what feedback this returns or how to act on it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify and the baseline is 4. No parameters are undocumented or misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare noun phrase, 'IRB Neural Welfare Check', which essentially restates the tool name and the annotation title. It hints at the domain (ethics/welfare review) but gives no specific verb-resource action, and does not distinguish this from the many other check/report siblings such as fcs_conformance or orch_criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to invoke this tool, what conditions trigger an ethics check, or what alternatives exist among the large sibling list. An agent has no basis for choosing this over fcs_lint, orch_criterion, or fcs_conformance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_snapshotCRead-onlyIdempotent
Full State Snapshot
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered externally. The description adds nothing beyond that: no indication of scope, size, cost, or what 'full state' comprises versus a partial status read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While only three words, this is under-specification rather than conciseness. A single useful clause (e.g. 'returns the complete simulation state as a JSON blob') would have cost nothing and removed the ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of explaining what is returned, yet it says nothing about contents or format. For a zero-parameter export tool in a crowded namespace, the definition is too thin to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is empty, so there is nothing for the description to disambiguate. Per the baseline for parameterless tools, a 4 is appropriate; no parameter information is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Full State Snapshot" is a noun phrase that merely restates the title/name and contains no verb or scoped resource. It does not distinguish export_snapshot from siblings like get_snn_state, tcai_workspace_state, or wm_status, which all appear to read state. An agent cannot tell what state is exported or in what form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or which sibling to prefer for a narrower read. Given the dense cluster of state-reading siblings (get_system_status, get_snn_state, get_acm_score, ovo_status, etc.), this omission leaves selection entirely to guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_compareARead-onlyIdempotent
Compare two species–function pairs and say why they are ordered — or, just as informatively, why they are incomparable. Incomparability is a result of the partial order, not a gap in it.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First pair id, e.g. "1". | |
| b | Yes | Second pair id, e.g. "2a". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, non-destructive, closed-world), so the bar is lower. The description adds genuinely useful behavioral context: the operation returns a rationale for the ordering and explicitly treats incomparability as a legitimate outcome rather than an error, which is valuable for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and the primary object, and the second sentence earns its place by pre-empting a misinterpretation of the result. No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only comparison tool with no output schema, the description covers the key things an agent needs: what is compared and the two possible result shapes (ordered with a reason, or incomparable). Only minor gaps remain, such as what happens with invalid or unmatched pair ids.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('a' and 'b' as pair ids) are already documented by the schema. The description adds only the notion that the two arguments are 'species–function pairs' subject to a partial order, which is marginal additional meaning; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compare two species–function pairs') and even describes the nature of the output (a justification for ordering). However, it does not distinguish itself from the many other fcs_* siblings (fcs_report, fcs_taxonomy, fcs_stratify, fcs_levels), so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys how to interpret the result ('incomparability is a result of the partial order, not a gap in it') but never says when to call this tool versus its siblings, nor any prerequisites such as needing valid pair ids from fcs_taxonomy or fcs_stratify. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_conformanceARead-onlyIdempotent
Audit one substrate — or all three — against the seventeen species–function pairs: which pairs it realises, which it only simulates, which are absent, and which ASTRA has no channel to determine. Binds the live IRB welfare biomarkers to the taxonomy (ATP/ADP → class 7, median per-unit firing rate → class 3 generator, viability → class 2b proxy). Class 1 (mobile charge) reads only an EXTRACELLULAR calcium value in mM supplied by the caller; ASTRA's eth.ca is intracellular second-messenger Ca²⁺ and binds to no pair. Returns a profile, never a conformance score.
| Name | Required | Description | Default |
|---|---|---|---|
| calciumNm | No | Intracellular free Ca²⁺, nM (second messenger) — reported, bound to no pair. | |
| substrate | No | One substrate; omit for all three. | |
| atpAdpRatio | No | ||
| firingRateHz | No | Median per-unit spontaneous firing rate, Hz (DANDI 001603 reference interval 0.14–0.63 Hz). | |
| viabilityPct | No | ||
| useLiveBiomarkers | No | Start from the live state store, overridden by any value given above. Default true. | |
| extracellularCalciumMm | No | Extracellular Ca²⁺ at the bath, mM — the only reading bound to class 1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly+idempotent+non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: that it returns a profile and never a score, that live biomarkers bind to specific classes, and that class 1 reads only caller-supplied extracellular Ca²⁺ while ASTRA's intramolecular Ca²⁺ binds to nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four dense sentences front-loaded with the core purpose, then the binding details. Jargon-heavy but each sentence carries load (especially the class 1 vs eth.ca distinction, which prevents a wrong call). Not padded, though very tightly packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param audit tool with no output schema, it is adequate: it states the output is a profile (not a score) and enumerates the four result categories. Given the domain complexity it could say more about the profile's structure, but the caller has enough to invoke and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, and the prose compensates by giving binding semantics the schema omits: atpAdpRatio→class 7, firingRateHz→class 3 generator, viabilityPct→class 2b proxy, extracellularCalciumMm→class 1 only, and calciumNm→no pair. This is meaning beyond the schema descriptions for several of the seven parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Audit one substrate — or all three — against the seventeen species–function pairs,' with an explicit output shape (which pairs realised/simulated/absent/undetermined). It is clearly distinct from generic status siblings, and it invokes 'the taxonomy' which hints at fcs_taxonomy, but it never names the sibling family (fcs_report, fcs_compare, fcs_stratify) to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The audit framing implies when to reach for it (conformance checking), but there is no explicit when-to-use/when-not or named alternative among the many fcs_ siblings. With fcs_report, fcs_compare, and fcs_taxonomy all present, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_levelsBRead-onlyIdempotent
The four-level framework — substrate, kinaesthetic proto-consciousness, hierarchical inference, access consciousness — with each level's formalism, epistemic status, complement reading, the ASTRA modules that implement or stand in for it, and the gap ASTRA cannot close at that level.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | One level; omit for all four. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful content-level context by naming the six categories of information returned per level, including the notable 'gap ASTRA cannot close', but says nothing about output format, size, or whether the per-level text is static.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the core resource front-loaded and the enumerated payload following the em-dash. The list is long, but every item conveys a distinct content category rather than restating the name, so it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only one optional enum parameter, the description carries the return-value burden and does so by naming the per-level fields an agent will receive (formalism, epistemic status, complement reading, ASTRA modules, gap). Only the response shape/format remains unspecified, which is minor for a read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single level enum already documents 'One level; omit for all four.' The description's 'each level's ...' phrasing faintly implies the per-level granularity but adds no syntax or behavioral detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun phrase that enumerates the resource's contents (four levels, each with formalism, epistemic status, ASTRA modules, and gaps) but never states an action verb, so it reads as a topic list rather than 'retrieve X'. It is specific about subject matter but does not distinguish this from close siblings like fcs_taxonomy, fcs_stratify, or fcs_report, which plausibly cover overlapping framework concepts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus the many fcs_* siblings, nor any stated preconditions or exclusions. The agent is left to infer usage from the topic alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_lintARead-onlyIdempotent
Screen a string, or a proposed aggregation, or a proposed constitutive inference, against the five prohibitions of the series' negative heuristic. Use before emitting any user-facing claim that touches the FCS layer.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | String to screen against prohibitions 1–5. | |
| aggregate | No | Criteria a caller proposes to combine into one number — checked against prohibition 4. | |
| constitutiveInference | No | A proposed "ablation → constitutive role" inference — checked against prohibition 5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds that the check is a lint/screen against five named prohibitions, which is real context, but says nothing about what a failure looks like, whether violations are returned or errors raised, or how strictly the check is applied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding, with the core action front-loaded and the usage trigger trailing. Nothing is redundant with the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what the screen returns — pass/fail, a violation list, a severity — and it does not. The 'or' wording partially resolves the ambiguity of three all-optional parameters, but for a validation tool whose entire value is its verdict, the return contract is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters and their semantics (prohibition 4 for aggregate, prohibition 5 for constitutiveInference). The description's 'or' phrasing usefully signals that these are alternative single-purpose inputs rather than a combined filter set, but adds no syntax beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Screen') and three concrete resources (a string, an aggregation, a constitutive inference) checked against 'the five prohibitions of the series' negative heuristic'. The verb+resource pair is clear, but it never names or distinguishes itself from look-alike siblings such as fcs_conformance or fcs_withdrawal, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger: 'Use before emitting any user-facing claim that touches the FCS layer.' That is a clear when-to-use. There is no when-not guidance and no alternative sibling is named for cases where the caller wants a conformance or withdrawal check instead, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_reportARead-onlyIdempotent
Consolidated substrate-constrained functionalism status: the four-level framework, the core/belt partition, the seventeen species–function pairs in their Pareto strata, the per-substrate conformance audit, the five prohibitions of the negative heuristic, and the declared revision order. Carries no aggregate score of any kind — prohibition 4 forbids one.
| Name | Required | Description | Default |
|---|---|---|---|
| useLiveBiomarkers | No | Bind the conformance audit to the live IRB welfare channels. Default true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint false, and destructiveHint false. The description adds useful behavioral context beyond the annotations: it specifies the report's components and explicitly states that no aggregate score is returned because of prohibition 4. It does not describe auth, rate limits, or response format, but with annotations covering safety, this is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: a front-loaded consolidated status with an enumerated component list, followed by a short prohibition note. It is dense with domain jargon but contains no filler or redundant repetition; every item appears to map to report content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because no output schema exists, the description carries the burden of explaining return content, and it does so by listing the report's components and excluding an aggregate score. The parameter and safety profile are handled by schema and annotations, leaving usage selection as the main gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter useLiveBiomarkers, whose description explains binding the conformance audit to live IRB welfare channels and that it defaults to true. The tool description adds no additional parameter semantics. Baseline 3 applies because the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it returns consolidated substrate-constrained functionalism status and enumerates the specific components: the four-level framework, core/belt partition, species-function pairs in Pareto strata, conformance audit, prohibitions, and revision order. It clearly identifies the resource, though it lacks an action verb and does not explicitly distinguish itself from fcs_taxonomy, fcs_conformance, or orch_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to call this tool versus alternatives. The sibling set includes fcs_taxonomy, fcs_stratify, fcs_conformance, fcs_lint, and orch_report, but the description never states conditions for choosing this consolidated report. It only notes an output exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_stratifyARead-onlyIdempotent
Recompute the partial order by Pareto dominance over the three ordinal sub-criteria and return the dominance relation itself (all ordered pairs and its Hasse diagram), the strata as a presentation of it, the pairs that different strata do NOT order, how strata shift when one pair is removed, and how alternative τ reductions fare against the eight strata of document IV §3. The τ ordinalisation is a parameter: the default — declared in document IV v1.3 §2 — cuts the range's lower bound at 10⁻¹ s, then at 10⁰ s. Reproducing the strata checks the transcription; it does not validate the cuts.
| Name | Required | Description | Default |
|---|---|---|---|
| tauCutsLog10 | No | Ascending decimal-exponent cuts on the τ range's lower bound. Default [-1, 0]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context beyond that: it enumerates the returned artifacts, states that τ is a parameter with a documented default provenance (document IV v1.3 §2), and warns that reproducing strata does not validate the cuts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the verb and scope, which is good, but the opening sentence sprawls into a long return-value list and is heavy with unexplained domain jargon (document IV §3, eight strata). Considerably denser than needed for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description rightly carries the burden of explaining return values, and it does enumerate them. The main gap is that the enumerated outputs are not structured or ordered clearly, and domain references are left unexplained, but nothing essential for calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage the baseline is 3, but the description goes further by explaining what the τ ordinalisation parameter means in practice — that the default cuts the range's lower bound at 10⁻¹ s then 10⁰ s — adding interpretive meaning beyond the schema's terse 'Ascending decimal-exponent cuts' note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Recompute the partial order by Pareto dominance over the three ordinal sub-criteria,' and enumerates the derived artifacts it returns (dominance relation, Hasse diagram, strata). An agent can grasp what it computes, but the description never differentiates it from adjacent fcs_* siblings such as fcs_compare, fcs_levels, or fcs_taxonomy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers a caveat on interpretation ('Reproducing the strata checks the transcription; it does not validate the cuts'), which implies a verification use case, but it gives no explicit when-to-use, when-not-to-use, or alternative-tool guidance. Usage must be inferred from the dense domain phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_taxonomyCRead-onlyIdempotent
The thirteen molecular classes as seventeen species–function pairs: causal role, distance to the carrier d, time-constant range τ, ablation degree, Pareto stratum and declared epistemic status. The ordering is of FUNCTIONS, not of substances: one species may occupy two distant places.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Filter to one causal role. | |
| pairId | No | A single pair by its v1.1 class identifier, e.g. "2a", "10b". | |
| stratum | No | Filter to one Pareto stratum. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds domain context (that ordering is of functions, not substances, and a species may appear twice), which helps interpret results, but it says nothing about whether filters combine, defaults, or the shape of the return.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no obvious padding, and the field list is front-loaded. However, the first sentence is a dense wall of unglossed jargon (distance to carrier d, time-constant range τ, ablation degree) that costs more reading effort than it earns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a read-only, no-output-schema lookup whose safety profile is fully carried by annotations, so the description needn't explain return values. It supplies the key conceptual caveat about function-ordering, which is genuinely useful, though it omits how the three filters behave together.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents role, pairId, and stratum. The description echoes two of these (causal role, Pareto stratum) but adds no syntax or semantics beyond the schema, leaving the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys that this exposes an FCS species–function taxonomy (thirteen classes as seventeen pairs, with fields like causal role and Pareto stratum), but it uses no clear action verb and never says whether the tool lists the whole taxonomy, queries it, or returns one pair. It also does not differentiate itself from closely-named siblings such as fcs_levels, fcs_stratify, or fcs_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the filtering options, and no alternative or exclusion named. An agent has to infer that this is the taxonomy lookup versus fcs_levels or fcs_stratify purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fcs_withdrawalBRead-onlyIdempotent
Evaluate the protective belt against experimental outcomes: which theses are withdrawn, which stand, which are undetermined, and what survives each withdrawal. Unset outcomes stay undetermined — they never collapse to a negative. Note the declared asymmetry: a FAVOURABLE human grain outcome does not corroborate M2, because the methodological bias favours the field; only the contrary outcome is informative.
| Name | Required | Description | Default |
|---|---|---|---|
| bridgeCovariation | No | ||
| experimentRankedByM1 | No | ||
| bridgeLocalIntervention | No | ||
| fieldBeyondFiringInHumans | No | ||
| dimensionalityFromInteroception | No | ||
| efficacyVariesWithVolumeFraction | No | ||
| ephapticPropagationUnderBlockade | No | ||
| boundaryBetterByResonanceOrTopology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description goes meaningfully beyond that by disclosing evaluation semantics that are not in the schema: unset outcomes never collapse to a negative, and a favourable human-grain outcome does not corroborate M2 because the methodological bias favours the field. That asymmetry is genuine behavioral context an agent could not derive from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the core action and then add the decisive null-handling rule. Little waste, though the second half leans on undefined jargon (M2, human grain) that compresses at the cost of comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations on parameter meaning, and 0% schema coverage on 8 flags, the description should explain what the inputs represent and roughly what comes back. It supplies the undetermined-collapse rule but leaves every parameter and the entire result shape unexplained, which is a serious gap for a tool whose whole surface is these eight flags.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must carry the burden, and it largely does not. It explains the null/unset convention in general terms but never maps any of the concrete flags (bridgeCovariation, experimentRankedByM1, ephapticPropagationUnderBlockade, etc.) to the theses they govern. An agent still cannot tell what a given boolean actually asserts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (evaluate) and resource (the protective belt / withdrawal conditions), and states what the evaluation yields: which theses are withdrawn, stand, undetermined, and what survives each withdrawal. That is more than a restatement of the name. It stops short of distinguishing itself from the many other fcs_* siblings (fcs_report, fcs_conformance, fcs_stratify), so an agent cannot route between them on the strength of this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use directive, no prerequisites, and no mention of any alternative tool. The agent must infer that this is called after experimental outcomes are known, but nothing states the trigger condition or which sibling to prefer instead. Usage is only implicit for a domain-jargon task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_acm_scoreBRead-onlyIdempotent
Engineering index of the simulation: three IIT/GWT/PAD-inspired proxies and their conventionally weighted sum. Not a measurement of consciousness; no class or level is derived (FCS prohibitions 1 and 4).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuine context by disclaiming that no consciousness class or level is derived and citing FCS prohibitions, but it does not describe the returned structure, scale, or value ranges of the index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the definition before the disclaimer. The only friction is the opaque 'FCS prohibitions 1 and 4' reference, which assumes prior context but costs little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return value, and it only says the result is three proxies plus a weighted sum without naming the fields or their range. For a zero-parameter read-only tool this is adequate but leaves the shape of the response unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is no parameter surface for the description to clarify or compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource — an engineering index of the simulation composed of three IIT/GWT/PAD-inspired proxies and their weighted sum — and explicitly scopes it as not a consciousness measurement. It is clear what the tool returns, though it does not differentiate itself from metric-adjacent siblings like get_metrics or tcai_metrics by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or named alternative. The clause 'no class or level is derived' weakly implies that classification tasks belong to a different tool (e.g. fcs_stratify/fcs_levels), but this is left entirely to inference rather than stated as routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metricsCRead-onlyIdempotent
Real-time Metrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds nothing beyond the title – no scope, no freshness/caching semantics for 'real-time', no cost. No contradiction with annotations, but zero added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words with no waste, but this is under-specification rather than conciseness – the same failure mode as a description that is simply the tool name. There is no front-loaded substance to speak of.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carried the full burden of telling the agent what this returns and when it is the right choice among ~70 siblings. 'Real-time Metrics' leaves the agent unable to know what data it gets back or how it differs from tcai_metrics or get_system_status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case per the rubric. Schema coverage is 100% and there is nothing for the description to clarify about call syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is the title restated verbatim: a bare noun phrase with no verb and no indication of what 'metrics' means or what is measured. It does not distinguish the tool from metric-adjacent siblings such as tcai_metrics, get_system_status, or get_acm_score. This is a tautology of the name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool, what precedes or follows it, or how it differs from the many other status/metrics siblings. The description gives the agent nothing to reason about for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_platform_statusCRead-onlyIdempotent
Bio-Computing Platforms
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is carried entirely by structured data. The description adds nothing beyond that — no scope, no freshness, no coverage of which platforms are reported — but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single fragment with no waste, but that is under-specification rather than conciseness: there is no front-loaded statement of purpose for a reader to latch onto.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and no description of the returned status, an agent cannot tell what this tool returns or how it differs from the many other status/metrics siblings. For a no-argument query tool the description is the only place this could be conveyed, and it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4; there is nothing for the description to clarify beyond what the empty schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is only 'Bio-Computing Platforms', a noun phrase identical to the annotation title, so it tautologically restates the title rather than naming an action. It never says what 'platform status' means or what is reported, and it is indistinguishable from siblings such as get_system_status, np_status or ovo_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative. With over fifty siblings including several other status tools (get_system_status, sensor_status, wm_status, np_status), the agent gets no basis for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snn_stateCRead-onlyIdempotent
SNN Engine State
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered externally. The description adds nothing beyond that — no scope of the state snapshot, no freshness/live-vs-cached semantics, no cost. With the bar lowered by annotations, a 2 reflects zero added context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words are certainly concise and front-loaded, but the phrase is under-specification rather than disciplined brevity — it conveys no information. There is no waste to trim, yet no substance either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and a large sibling set of similarly named state/metrics readers, the description carries the burden of explaining what this state read covers and how it differs from the alternatives. It does none of that, leaving the agent unable to select it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a 0-param tool is 4. The empty schema is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is just the tool title restated as a noun phrase ('SNN Engine State'), which is a near-tautology of the name get_snn_state. It never states what the tool actually returns or what 'state' comprises, so an agent cannot distinguish it from get_system_status, get_metrics, np_status, or wm_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when this tool should be used, when it should not, or which of the many sibling status/metrics tools is the alternative. The agent is left to guess entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_statusCRead-onlyIdempotent
ASTRA System Status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered by structured data. The description adds nothing beyond the title — no indication of what the status covers, whether it is cached, or how it relates to other status tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single fragment is short but this is under-specification, not conciseness. There is no front-loaded statement of purpose or scope to anchor the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no parameters, so the description carries the entire burden of explaining what status data is returned and at what granularity. It says nothing, leaving an agent unable to predict the return content in a crowded namespace of status tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics burden and the baseline is 4 per the rubric. There is nothing for the description to document here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'ASTRA System Status' merely restates the tool name/title without a verb or any indication of what status means here. With siblings like get_metrics, get_platform_status, ovo_status, wm_status, np_status, and sensor_status, there is no way to distinguish this tool's scope from theirs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no guidance whatsoever on when to use this tool versus the many sibling status/metrics tools. Nothing indicates prerequisites, context, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inject_spikesD
Spike Injection
| Name | Required | Description | Default |
|---|---|---|---|
| strength | No | ||
| neuronIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the key traits: not read-only, not idempotent, not destructive, closed-world. The description adds no behavioral context such as what the strength units mean, how injected spikes persist, or whether the call mutates network state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but that brevity reflects under-specification rather than efficient structuring. There is no front-loaded statement of purpose beyond a two-word fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and completely undocumented parameters, the definition is inadequate. An agent has nothing to reason about regarding effects, scope, or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description says nothing about the two parameters. The meaning of 'strength' (bounded -100..100, default 15) and the expected neuronIds form are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is 'Spike Injection', which merely restates the tool name/title. It does not clarify what a spike is, what gets injected, or how this differs from the many simulation/neuron siblings such as np_send_trigger or snn_step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of any alternative tool. An agent cannot tell from this text when injection is appropriate versus stepping the network or sending a trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_camera_captureCRead-onlyIdempotent
NeuroPlatform v2 — Last MEA camera capture (descriptor + viability)
| Name | Required | Description | Default |
|---|---|---|---|
| mea | No | MEA selector [1-5] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description's only real addition is 'Last', which weakly implies retrieval of an existing capture rather than a new acquisition, and 'descriptor + viability' which hints at return contents. That is thin added context for a tool whose output has no schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but it reads like a banner label rather than a front-loaded sentence: a platform name, an em dash, and a parenthetical, with no leading verb. Brevity here comes from under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place to explain what 'descriptor' and 'viability' mean and whether a frame is acquired or recalled; neither is explained. The zero-required-parameter design also isn't surfaced, so the agent cannot tell whether omitting 'mea' is valid or what the default 5 means behaviorally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'mea' parameter is documented with a range and default in the schema, so the baseline of 3 applies. The description adds no additional meaning about the MEA selector or what values map to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource and an action ('MEA camera capture') and hints at the payload ('descriptor + viability'), so the general purpose is inferable. However, it is fragment-like and never states a clear verb such as 'retrieve the most recent frame', and it does nothing to distinguish itself from sensor_visual or other capture-like siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling tools. An agent has to guess whether this triggers a new capture or fetches a cached one, and when to prefer it over sensor_visual.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_closed_loopCDestructive
NeuroPlatform v2 — Closed loop: read organoid → couple to ASTRA fusion/ROS/ethics, optionally drive the SNN
| Name | Required | Description | Default |
|---|---|---|---|
| drive_snn | No | Inject organoid-active electrodes as spikes into the ASTRA SNN | |
| window_ms | No | ||
| couple_ethics | No | Mirror organoid viability into the IRB ethics gateway (eth.viab) | |
| drive_strength | No | Spike injection strength (mV) when drive_snn=true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the agent knows this mutates state, but the description frames the operation as 'read organoid → couple' and never discloses what is destroyed or that effects are non-reversible. It adds coupling detail (ROS/ethics, optional SNN drive) but leaves the destructive consequence that the annotations flag unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single arrow-chained line that is front-loaded and free of padding. However, the telegraphic phrasing is compact at the cost of readability, which limits how much structure it actually provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-step coupling pipeline with four parameters, a destructive mutation hint, and no output schema, the one-line description is too thin. It never explains return values, what 'couple to ethics' writes, or the effect of window_ms, so an agent cannot fully predict the call's outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are already documented in-schema. The description only clarifies the conditional gating of drive_snn and adds no detail about window_ms or drive_strength semantics. Baseline 3 is warranted when the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific compound operation: reading an organoid, coupling it to ASTRA fusion/ROS/ethics, and optionally driving the SNN. The verb chain is clear enough to distinguish it from read-only status siblings like get_snn_state or check_ethics, but it leans on platform jargon (ASTRA, ROS, IRB ethics gateway) and never explicitly contrasts it with the closer siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The word 'optionally' and the link to the drive_snn parameter hint at behavior but do not tell an agent when this closed-loop tool should be chosen over snn_step, inject_spikes, or check_ethics. Usage is only obliquely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_configure_stimBDestructiveIdempotent
NeuroPlatform v2 — Define, validate & upload a StimParam (charge-balanced biphasic stimulation)
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Electrode index [0-127] | |
| enable | No | ||
| nb_pulse | No | Number of pulses (0/1 = single) | |
| polarity | No | NegativeFirst | |
| trigger_key | No | Trigger key [0-15] | |
| phase_duration1 | No | D1 [µs] | |
| phase_duration2 | No | D2 [µs] | |
| phase_amplitude1 | No | A1 [µA] | |
| phase_amplitude2 | No | A2 [µA] | |
| pulse_train_period | No | Pulse train period [µs] | |
| enforce_charge_balance | No | Reject upload if phases are not charge-balanced |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is partly covered. The description adds useful context that this is an upload of a validated, charge-balanced biphasic StimParam, but it never explains what the destructive hint destroys, whether it overwrites an existing config, or what validation failure looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded phrase with no padding or repetition, naming the platform, the action, and the artifact. It is tight, though extremely terse given the complexity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 11 parameters, no required fields, and no output schema, an agent has enough from schema (82% coverage) and annotations for the safety profile, but the description omits what a successful upload returns, how validation/charge-balance rejection surfaces, and how this differs from set_parameter. Adequate but with clear gaps for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82% (above the 80% baseline), so the schema already documents parameters such as electrode index, phase durations/amplitudes, and enforce_charge_balance. The description contributes only the domain framing of 'charge-balanced biphasic stimulation' and adds no syntax, unit, or interdependency detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb chain (Define, validate & upload) plus the resource (a StimParam / charge-balanced biphasic stimulation), so an agent knows this configures stimulation parameters. It does not, however, explicitly distinguish itself from siblings like set_parameter or np_send_trigger, which also write stimulation-related state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. With 60+ siblings including set_parameter, np_send_trigger, and np_closed_loop, the agent gets no signal on which path to choose or what prerequisites (e.g., platform connected, stimulation armed) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_count_spikesC
NeuroPlatform v2 — Closed-loop _count_spike: spikes per electrode over an N-ms window
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | Report the K most active electrodes | |
| window_ms | No | Recording window in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already reveal readOnlyHint=false and idempotentHint=false, and the annotation title discloses '(advances MEA clock)'. The description itself, however, never states this side effect — the most important behavioral trait — nor does it say what state changes or whether results are repeatable. 'Closed-loop' hints at it but adds little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence, which is appropriate, but the 'NeuroPlatform v2 —' prefix and the underscore internal name are low-value noise, and the useful part (what is counted, over what window) comes only after the filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateful, non-idempotent closed-loop operation with a near-duplicate sibling, the description omits the essential context: that it advances the MEA clock, how it differs from np_query_spike_count, and what default behavior (0 required params) means. It is too thin for a mutating tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — top_k and window_ms are each documented in the schema. The description's 'over an N-ms window' simply restates window_ms and adds no syntax, format, or interaction detail, so the baseline 3 for schema-covered params applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The clause 'spikes per electrode over an N-ms window' states a specific verb (count) and resource (spikes per electrode), so an agent can tell what it computes. However, it never differentiates itself from closely named siblings like np_query_spike_count or np_query_spike_events, and the internal name '_count_spike' adds jargon rather than clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. Given the near-identical sibling np_query_spike_count, the description should say why an agent would pick this closed-loop counter over that query tool, but it offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_query_spike_countCRead-onlyIdempotent
NeuroPlatform v2 DB — SpikeCountQuery: spikes/minute per electrode over a time window
| Name | Required | Description | Default |
|---|---|---|---|
| fsname | No | Experiment ID | fs264 |
| window_sec | No | Look back this many seconds of sim-clock | |
| nonzero_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds the computational semantics (per-electrode rate, time-windowed), which is useful, but says nothing about return shape, sim-clock behavior, or cost/rate limits. With annotations doing the heavy lifting, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact, front-loaded line with no filler; the metric and scope appear immediately. Its brevity is a virtue structurally, though the space saved is spent on nothing that would aid invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a query tool with three parameters, one undocumented option, and no output schema, the description is too thin: it omits output format expectations, sibling routing, and the meaning of nonzero_only. Annotations cover safety but the description leaves key invocation details unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 67%: fsname and window_sec are documented, but nonzero_only has no description anywhere. The description adds no parameter meaning of its own (no explanation of fsname values, window semantics, or the nonzero_only filter), so it fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and metric (spikes/minute per electrode over a time window) and identifies the platform (NeuroPlatform v2 DB). However, it does not distinguish this from closely-named siblings like np_count_spikes, np_query_spike_events, or np_query_triggers, so an agent cannot tell which to pick without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the obvious alternatives (np_count_spikes, np_query_spike_events). The agent is left to infer selection from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_query_spike_eventsCRead-onlyIdempotent
NeuroPlatform v2 DB — SpikeEventQuery: individual spike timings over a window
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| fsname | No | fs264 | |
| window_sec | No | Look back this many seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, fully covering the safety profile. The description adds only one behavioral hint beyond that — that results are per-spike (individual timings), implying potentially large result sets — but says nothing about pagination, the limit cap of 2000, or result shape. Adequate but thin given the annotations carry the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short line with no filler and the resource named up front, so it is not padded. But its brevity reflects under-specification rather than disciplined conciseness — there is almost no content to front-load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter query tool with no output schema and only 33% schema coverage, the description leaves major gaps: it never explains what fsname refers to, the meaning of the window unit, or what a caller should expect back. An agent could invoke it but not with confidence about the identifier or result scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only window_sec, 'Look back this many seconds', is documented), and the description supplies no parameter meaning at all. The cryptic fsname (default 'fs264') and limit are undocumented in both description and schema, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (spike events) and clarifies the return granularity ('individual spike timings over a window'), which implicitly distinguishes it from the count-oriented siblings np_count_spikes and np_query_spike_count. However, it is framed as a database tagline ('SpikeEventQuery') and never names an alternative or explicitly contrasts with the count tools, leaving differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as np_query_spike_count or np_query_triggers, nor any prerequisite or exclusion. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_query_triggersBRead-onlyIdempotent
NeuroPlatform v2 DB — TriggersQuery: triggers sent to the organoid over a window
| Name | Required | Description | Default |
|---|---|---|---|
| dedup | No | Keep only up==1 transitions (drop duplicates) | |
| window_sec | No | Look back this many seconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds only that this is a DB query over a window; it does not describe return format, pagination, or any rate/auth constraints. With annotations carrying the safety load, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. The internal 'NeuroPlatform v2 DB — TriggersQuery:' prefix is slightly redundant with the annotation title but does not obscure the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple read-only query with two fully described parameters and strong safety annotations, so an agent can invoke it. However, no output schema exists and the description never hints at the return shape (e.g., list of triggers, timestamps), leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (dedup, window_sec) are fully documented in the schema. The description merely echoes the window concept without adding syntax or behavioral nuance beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (query) and resource (triggers sent to the organoid) with scope (over a window). This implicitly distinguishes it from np_send_trigger, but no sibling tool is named for explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative guidance is provided. The agent can infer it retrieves historical trigger data from the purpose, but there is no explicit routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_send_triggerBDestructive
NeuroPlatform v2 — Fire trigger(s): execute uploaded StimParams via a 16-bit trigger array
| Name | Required | Description | Default |
|---|---|---|---|
| repeats | No | How many times to send the trigger array | |
| triggers | Yes | Trigger keys to fire, e.g. [2] sends trigger 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, idempotentHint=false, openWorldHint=false), so the description is not the only source of behavioral information. It adds that the tool executes previously uploaded StimParams through a trigger array, but says nothing about authorization/hardware preconditions, whether the call blocks, or what effect repeats has on the physical system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the action verb, with no filler or repetition. The 'NeuroPlatform v2 —' branding prefix is decorative rather than informative, which keeps it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a destructive, non-idempotent hardware-facing action, the description should do more: it never states that StimParams must be uploaded beforehand, what the trigger values map to physically, or what a response indicates. The safety signal is carried by annotations, so the gap is not severe, but the description is thin for the operation's impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (triggers, repeats) are already documented in the schema, making 3 the baseline. The description's '16-bit trigger array' adds little and is arguably imprecise, since the schema constrains each element to 0-15; it does not clarify the 'sends trigger 2' example or the repeats semantics beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Fire trigger(s): execute uploaded StimParams') with a concrete resource and mechanism (a trigger array), so an agent knows this sends stimulation triggers rather than querying them. It does not distinguish itself from near neighbors such as np_query_triggers, np_configure_stim, or np_closed_loop, leaving the boundary implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The phrase 'uploaded StimParams' hints at a prerequisite (stimulation params must already be configured/uploaded, presumably via np_configure_stim), but this is inferred rather than stated, and nothing says when to prefer this over np_closed_loop or np_configure_stim.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
np_statusCRead-onlyIdempotent
NeuroPlatform v2 — Platform & Controller Status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds nothing behavioral beyond the headline — no mention of what the status snapshot reports (health, controller state, uptime) or whether it is cheap/cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded line with zero padding, which is structurally fine, but it is under-specified rather than concise — the terseness comes from omitting information rather than from tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists and the annotations only cover safety, so the description is the only place to say what a 'status' payload contains. It never does, nor does it disambiguate from the many sibling status/metrics tools, leaving an agent unable to predict the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema carries no semantics to explain; per the rubric this is the baseline 4 by default. The description neither helps nor hurts here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially the tool's title restated: 'Platform & Controller Status' adds a scope word ('Controller') but no verb and no distinguishing feature. With siblings named get_platform_status, get_system_status, get_snn_state, wm_status and sensor_status, an agent cannot tell which status endpoint this is or how it differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative mention at all. Given at least four sibling status tools in the list, the absence of any routing guidance is a real gap, though it is not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_criterionARead-onlyIdempotent
Penrose objective-reduction criterion τ = ℏ/E_G, with the mass-displacement scale exposed as a free parameter and a sensitivity sweep across four orders of magnitude.
| Name | Required | Description | Default |
|---|---|---|---|
| massKg | No | Superposed unit mass. Default: tubulin dimer. | |
| separationM | No | Effective mass displacement, m. Default 1.056e-11 (back-calibrated to 2×10¹⁰ @ 25 ms). | |
| tubulinCount | Yes | Tubulin dimers in coherent superposition. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavioral context beyond them: the mass-displacement scale is exposed as a free parameter and the tool performs a sweep across four orders of magnitude, meaning the invocation is not a single scalar evaluation. It stops short of describing the actual return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with no filler, front-loaded on the criterion being computed and immediately followed by the two facts that distinguish the call (free parameter, sweep range). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only three-parameter computation with no output schema, the description should at least hint at the return shape, and the 'sensitivity sweep' clause is the only clue that output is multi-valued rather than a single τ. The compute semantics are covered but the result contract and any domain caveats (e.g. interpretation of the back-calibrated separation default) are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (massKg, separationM, tubulinCount) are already documented with defaults and bounds. The description's mention of a free mass-displacement scale maps loosely onto separationM but adds no format, units, or interaction detail beyond the schema — baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific scientific quantity (Penrose objective-reduction criterion τ = ℏ/E_G) and states its distinctive behavior — a free mass-displacement scale plus a sensitivity sweep. That content clearly separates it from siblings such as orch_decoherence or orch_gate_config, but no sibling is named explicitly, and the verb is only implied by the nominal phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, no prerequisites, and no mention of the adjacent orch_decoherence/orch_cycle tools an agent might confuse it with. The agent must infer usage purely from the physics formula.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_cycleC
Read one OVOMIND affect frame, run a TCAI cycle, and pass the workspace competition through the epoch-quantised surrogate gate. Reports how many Orch OR epochs the affect frame integrated over.
| Name | Required | Description | Default |
|---|---|---|---|
| controllability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false, so the safety/mutation profile is partly covered. The description adds the useful detail that it reports integrated epoch counts, but it does not disclose what state the TCAI cycle or surrogate gate mutates, nor any rate or consumption constraints. Some added value, but thin for a stateful composite.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense, front-loaded sentences with no filler; the action pipeline comes first and the reported result last. Jargon-heavy but structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-stage stateful operation with no output schema and one undocumented parameter, the description leaves key gaps: what the cycle does to state, what a returned epoch count implies, and any preconditions. Annotations cover only the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single 'controllability' parameter (0-1), and the description never mentions it or its effect on the gate/cycle. With the schema silent and the description silent, the caller has no basis for setting this value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete three-step operation (read OVOMIND affect frame, run TCAI cycle, pass workspace competition through the surrogate gate) and states the reported output (epoch count). It is specific but does not distinguish itself from closely named siblings such as tcai_cycle, ovo_cycle, or orch_substrate, so an agent cannot tell why it should pick this composite over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of when *not* to call it versus tcai_cycle or ovo_read, which appear to overlap. The agent is left to infer the orchestration role from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_decoherenceBRead-onlyIdempotent
Decoherence time budget for a target coherence window: Tegmark (2000) vs the Hagan/Hameroff/Tuszyński (2002) correction, and the residual gap.
| Name | Required | Description | Default |
|---|---|---|---|
| requiredCoherenceS | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the useful behavioral fact that the output is a comparison between two models and a residual gap, but says nothing about return format or precision. A 3 reflects modest added value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource is named first and the models are cited economically. Jargon (Tegmark 2000, HHT 2002) is dense but appropriate to the domain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of conveying what is returned. It hints at a comparison plus a residual gap but does not describe the shape or meaning of those results, and the lone input parameter lacks unit/format detail. Adequate but with clear gaps for a physics-computation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the single parameter requiredCoherenceS is undocumented structurally. The description partially compensates by naming it as a 'target coherence window', but it never states units, format, or bounds — a gap only partially filled by the parameter name's 'S' suffix.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific computational resource — the decoherence time budget for a coherence window, computed as Tegmark (2000) vs the Hagan/Hameroff/Tuszyński (2002) correction plus the residual gap. That is a concrete verb+resource combination. However, it does not differentiate itself from nearby siblings such as orch_criterion or orch_substrate, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to call this tool versus alternatives like orch_criterion or orch_substrate, nor any prerequisite or context for the coherence window value. The description only says what is computed, not when it is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_gate_configBDestructiveIdempotent
Enable or configure the classical surrogate gate (epoch-quantised ignition with stochastic tie-break). The gate reproduces the Orch OR temporal signature only; it does not instantiate objective reduction.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| epochMs | No | ||
| ignitionFloor | No | ||
| tieBandFraction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, idempotent=true, and openWorld=false. The description adds useful conceptual context about the surrogate gate and its limitation, but does not disclose what is destroyed or what operational side effects occur for this destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and then the scope limitation. There is no filler, and the structure is appropriate for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter configuration mutation with no output schema and no schema parameter descriptions, the definition is incomplete. It lacks parameter semantics, defaults, and behavioral effects of enabling or configuring the gate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters with 0% description coverage. The description mentions 'epoch-quantised ignition' and 'stochastic tie-break', which loosely hint at epochMs, ignitionFloor, and tieBandFraction, but it never names parameters, explains ranges, defaults, or effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Enable or configure') and resource ('classical surrogate gate'), with mechanism details and a scope disclaimer. It distinguishes this gate config from objective-reduction Orch OR tools, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternative sibling is named. The second sentence provides a scope exclusion ('does not instantiate objective reduction'), which implies usage boundaries but does not route the agent to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_reportARead-onlyIdempotent
Consolidated Orch OR status: theory epistemic standing, Penrose criterion at the canonical 2×10¹⁰ tubulins, decoherence budget, and the verdict for each of the three ASTRA substrates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world scope, so the safety profile is fully covered. The description adds the content scope (which sections the report contains), which is useful, but says nothing about cost, latency, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that enumerates the report's contents without padding. Every clause carries informational weight and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering the safety profile, the remaining burden is telling the agent what comes back — and the description enumerates the four content areas. It is nearly complete, though the sibling-overlap ambiguity (report vs. the individual orch_* tools) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is empty and correctly so for a no-arg report call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource (a consolidated Orch OR status report) and enumerates the specific content it covers: epistemic standing, Penrose criterion at 2×10¹⁰ tubulins, decoherence budget, and per-substrate verdicts. However, it does not distinguish itself from siblings like orch_criterion, orch_decoherence, and orch_substrate, whose subject matter it overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Consolidated' implies this is the aggregate/overview call an agent should reach for instead of the granular siblings, but that is left to inference. There is no explicit when-to-use, when-not-to-use, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orch_substrateBRead-onlyIdempotent
Orch OR verdict for one substrate: tubulin budget, epochs elapsed per observation through ASTRA's channel, and the reasoning behind the verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| substrate | Yes | ||
| neuronCount | No | ||
| channelLatencyMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety is covered. The description adds useful output content (the verdict comprises a tubulin budget, per-observation epochs, and reasoning) but no output schema exists, and it does not explain what inputs drive the verdict or whether it is a pure computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the subject before enumerating outputs, with no filler. It is efficient, though the enumeration style leaves the reader with terminology (ASTRA, tubulin budget) that is never grounded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states what the verdict contains, which is its strongest contribution. However, it leaves all three parameters unexplained and gives no guidance on sibling selection, so a 3-parameter mutation-free tool still has clear informational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, yet it never mentions substrate, neuronCount, or channelLatencyMs. Only 'for one substrate' and 'through ASTRA's channel' hint obliquely at the substrate enum and latency input, leaving two of three parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific domain object (an Orch OR verdict for one substrate) and enumerates its components: tubulin budget, epochs elapsed per observation through ASTRA's channel, and reasoning. An agent can tell this is a verdict-producing tool rather than one of the sibling orch_* compute/config tools, though it never states whether the verdict is computed or retrieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as orch_decoherence, orch_criterion, or orch_report. The agent must infer usage entirely from the name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_arm_controlADestructiveIdempotent
Arm or disarm closed-loop affective actuation. Arming places a human subject inside the control loop and is refused without a protocol reference.
| Name | Required | Description | Default |
|---|---|---|---|
| arm | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds genuinely new behavioral context: arming puts a human subject inside the control loop (a consequential side effect) and requires a protocol reference or the call is refused. That refusal condition is not visible in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core operation front-loaded and the precondition following. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-boolean mutation tool with no output schema, the description covers the operation, its consequence, and its gating condition. The one loose end is that the stated 'protocol reference' requirement has no corresponding parameter in the schema, leaving the agent unsure how that precondition is satisfied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (arm, boolean) with 0% schema description coverage, so the description's 'Arm or disarm' gives only the obvious polarity. It does not clarify the default, the effect of omitting it, or how it interacts with the protocol-reference precondition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (arm/disarm) and a specific resource (closed-loop affective actuation), which distinguishes it from the many sibling ovo_ tools like ovo_set_policy or ovo_cycle. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a precondition (arming is refused without a protocol reference) but never states when to choose this tool over alternatives such as ovo_set_policy or the closed-loop siblings. Usage context is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_cycleB
Read one affect frame and run a TCAI cycle with the human channel entering as the body specialist. The human valence is NOT routed to rewardSignal.
| Name | Required | Description | Default |
|---|---|---|---|
| actuate | No | Also compute a control command (requires an armed controller). | |
| controllability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is not read-only, is open-world, non-idempotent, and non-destructive. The description adds meaningful behavioral context by specifying that the human channel enters as the body specialist and that human valence is not routed to rewardSignal, which is useful routing information beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences with no filler. The core action is front-loaded, and the routing exception follows immediately, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-read-only cycle tool with no output schema, the description omits return behavior, side effects, prerequisites such as an armed controller for actuate, and usage context. Annotations cover the safety profile, but the description leaves too much unspecified for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description does not clarify the two parameters (actuate and controllability) or their effects. Since the schema already describes actuate but leaves controllability undocumented, the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific compound action: read one affect frame and run a TCAI cycle, with a routing caveat about the human channel. It is clear within the OVOMIND/TCAI domain, but it does not differentiate itself from the sibling tools tcai_cycle or ovo_read, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no guidance on when to use it versus alternatives such as ovo_read, ovo_status, or tcai_cycle. There are no explicit when/when-not conditions or recommended contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_isomorphismARead-onlyIdempotent
Side-by-side comparison of the three substrates feeding the same PAD pipeline (silicon SNN, organoid MEA, human wearable), with the axes each can constrain and the caveat that blocks a naive isomorphism claim.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and non-open-world, so the safety profile is covered. The description adds useful content framing (three substrates, the axes each constrains, the caveat blocking naive isomorphism) but says nothing about output form, cost, or determinism beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the comparison subject front-loaded and no filler. It is appropriately sized, though the trailing 'caveat that blocks a naive isomorphism claim' phrase is slightly abstract and could be more concrete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument read tool with no output schema, the description should carry the burden of describing the returned structure, and it only gestures at it ('axes each can constrain', 'caveat'). It is enough to know what the tool is about, but not enough to anticipate the shape of the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. The description legitimately clarifies what the parameterless call compares rather than leaving the agent guessing, though it adds no argument semantics to disambiguate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete action (side-by-side comparison) and a concrete resource scope (the three substrates feeding the same PAD pipeline), so an agent knows exactly what it returns conceptually. It does not, however, explicitly contrast itself against the many sibling orchestration tools (orch_substrate, ovo_read, ovo_status), so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can guess this is the tool to call when evaluating an isomorphism claim across substrates, but there is no explicit 'use this when...' or 'do not use instead of ovo_read/ovo_status' guidance. With dozens of ovo_/orch_ siblings, an explicit routing sentence would materially help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_readCRead-only
Poll one OVOMIND affect frame and lift it into PAD. Every axis is returned with its epistemic tier, provenance and basis string. Dominance is never estimated from the human channel.
| Name | Required | Description | Default |
|---|---|---|---|
| controllability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=false, so the safety profile is covered. The description adds useful behavioral detail beyond that: every axis is returned with epistemic tier, provenance and basis string, and dominance is never inferred from the human channel. It still does not explain what 'PAD' or an 'epistemic tier' is, nor the polling cadence for a non-idempotent read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the action front-loaded, no filler. The final sentence on dominance is terse and slightly cryptic, but each sentence contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does some of the load-bearing work by describing the returned fields, and annotations cover safety. However, key domain terms (PAD, epistemic tier, dominance vs human channel) are undefined and the lone input parameter is unexplained, so an agent can select the tool but cannot fully reason about its contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'controllability' (a 0-1 number) is never referenced in the description. With a non-zero parameter count and no schema descriptions, the description carries the burden and adds nothing, leaving the parameter's meaning and units unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Poll one OVOMIND affect frame and lift it into PAD', and adds what the result contains (each axis with epistemic tier, provenance and basis string). It is clear what the tool does, though it never names a sibling (ovo_status, ovo_cycle, ovo_isomorphism) to disambiguate it within the crowded OVO family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Poll' implies retrieving a current frame, but there is no explicit when-to-use, no preconditions, and no mention of the sibling tools such as ovo_status or ovo_cycle that an agent would otherwise consider. The agent is left to infer selection entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_set_policyCDestructiveIdempotent
Configure the Russell→PAD dominance policy and the closed-loop control policy.
| Name | Required | Description | Default |
|---|---|---|---|
| controlEnabled | No | ||
| arousalSetpoint | No | ||
| dominancePolicy | No | ||
| maxStepPerCycle | No | ||
| protocolReference | No | Consent / ethics protocol reference. Required to arm the control loop. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description adds essentially nothing beyond that: it does not say what existing policy is overwritten, that setting protocolReference arms the loop, or what the destructive side effect is. Given the destructive flag, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no waste, and the resource being configured is front-loaded. It is appropriately sized; the problem is omission rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, destructive, non-read-only config tool with no output schema and 20% schema coverage, this description is far too thin. It omits the effect of each setting, what gets overwritten, and when to prefer it over the related control/parameter tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (just protocolReference), so the description must compensate and does not. It never explains the dominancePolicy enum values (prior, endogenous, withhold), the arousalSetpoint range, or maxStepPerCycle semantics, leaving four of five parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Configure") and two named resources (the Russell→PAD dominance policy and the closed-loop control policy), so an agent can identify it as a policy-write tool. It is distinguishable from read/status siblings (ovo_status, ovo_read), but it does not differentiate from overlapping config siblings such as ovo_arm_control or set_parameter, and the "Russell→PAD" jargon is unexplained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives, despite clear overlap with ovo_arm_control (which also concerns the control loop) and set_parameter. The agent gets no signal about which tool to select for policy setup versus arming versus generic parameter writes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ovo_statusARead-onlyIdempotent
OVOMIND bridge status: adapter mode, substrate descriptor, frame counters, and the synthetic-phenomenology ethics assessment for the current configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds meaningful value by enumerating what the status actually surfaces, notably the synthetic-phenomenology ethics assessment, which is not derivable from any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource ('OVOMIND bridge status') and then lists its components. No filler, though the long enumerated payload makes it slightly list-heavy rather than crisp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, the description is the only source of return-value information, and it names the key components including the ethics assessment. It is nearly complete for a status tool, missing only how/when it should be invoked or refreshed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description does not need to explain inputs and correctly focuses on outputs instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it reports the OVOMIND bridge status, and enumerates the concrete contents (adapter mode, substrate descriptor, frame counters, ethics assessment). This clearly separates it from read/write siblings such as ovo_cycle or ovo_set_policy, though it never explicitly contrasts itself with lookalikes like get_system_status or ovo_isomorphism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling status/telemetry tools (get_system_status, get_metrics, np_status). The agent must infer timing and context entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_audioBRead-onlyIdempotent
A-JEPA-inspired audio encoding (untrained MLP; waveform → Mel → latent)
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Audio parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, covering the safety profile. The description adds a genuinely useful behavioral fact — the MLP is untrained, so emitted latents are not semantically meaningful — but says nothing about cost, determinism, or the shape/range of the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact parenthetical fragment with zero filler; the pipeline is front-loaded. It is efficient, though the terse telegraphic style asks the reader to decode it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested six-property object and no output schema, the description covers the what and the 'untrained' caveat but omits when to use it, typical input scenarios, and the nature of the returned latent. Annotations carry the safety profile, but usage context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested input fields (source, channels, simulate, frequency, durationMs, sampleRate) are already documented in the schema. The description adds no format or range detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and operation: audio encoding, with the transformation pipeline spelled out (waveform → Mel → latent). The 'untrained MLP' qualifier adds meaningful scope, and 'audio' distinguishes it from sensor_visual/sensor_olfactory siblings, though it doesn't explicitly compare itself to them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus sensor_process, sensor_fuse, or the visual/olfactory sensor tools. It describes what the tool is but never states the conditions or context that should trigger its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_fuseDRead-onlyIdempotent
Cross-Modal Attention Fusion
| Name | Required | Description | Default |
|---|---|---|---|
| includeAudio | No | ||
| includeVisual | No | ||
| includeOlfactory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The description adds nothing beyond that – no mention of what is fused, what the fused output represents, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, but it is under-specified rather than concise – a bare label with no front-loaded verb or scope. Length is not the problem; absence of information is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter fusion tool with an entirely undocumented schema, no output schema, and many plausible siblings, the description supplies none of the context needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters (includeAudio, includeVisual, includeOlfactory). The description does not name or explain any of them, so an agent cannot tell what toggling each flag does or what the defaults imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is the same noun phrase as the title, 'Cross-Modal Attention Fusion', with no verb and no statement of what operation is performed. It hints at the domain (fusing modalities, consistent with sibling tools sensor_visual/sensor_audio/sensor_olfactory) but is effectively a restatement of the title rather than a description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus sensor_process, sensor_status, or the individual sensor_* tools, nor any mention of prerequisites. The agent is left to infer entirely from the name that this performs fusion across modalities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_olfactoryBRead-onlyIdempotent
Koniku Kore-inspired olfactory encoding (simulated chemoreceptors → latent; no hardware)
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Olfactory sensor parameters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully clarifies that this is fully simulated with 'no hardware', which is context annotations cannot convey, but says nothing about determinism, latency, or output form.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the transformation front-loaded and the simulation caveat in parentheses. It earns its place, though the parenthetical trivia is arguably lower value than stating the return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool, the description should indicate what the 'latent' output looks like (dimension, format). 'chemoreceptors → latent' gestures at it but is not enough for an agent to consume the result confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 100%, so the nested properties (compounds, concentrations, numReceptors, temporalPhase, neuronViability) are the schema's responsibility. The description adds no meaning about units, defaults, or how receptor count affects encoding, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific transformation (olfactory encoding) on a specific resource, with 'chemoreceptors → latent' indicating input and output direction. The 'Koniku Kore-inspired' jargon and lack of an explicit sibling reference (sensor_visual, sensor_audio) keep it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus sensor_visual, sensor_audio, sensor_fuse, or sensor_process. The description only characterizes the mechanism, not the conditions that should route an agent here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_processCRead-onlyIdempotent
Full Multimodal Pipeline (All Modalities → Fused z)
| Name | Required | Description | Default |
|---|---|---|---|
| compounds | No | Olfactory compounds to simulate | |
| visualSource | No | Visual source (default: simulated) | |
| audioFrequency | No | Audio tone frequency for simulation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed world, so the safety profile is covered. The description adds essentially nothing beyond those annotations – no ordering of modality processing, no cost/rate behavior, and no indication of what 'fused z' represents as a result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but this is under-specification rather than conciseness: a single noun-phrase fragment that omits the verb and any operational detail. There is nothing to front-load because almost nothing is said.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pipeline tool with three optional parameters that evidently orchestrates multiple modalities, the description explains neither its behavior, the meaning of the 'fused z' output, nor how it relates to the per-modality and fusion siblings. Annotations cover safety only, so the behavioral gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so compounds, visualSource, and audioFrequency are already documented in the schema; the baseline for full coverage with no added insight in the description is 3. The description adds no parameter-level meaning (e.g. how modalities combine).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment identifies the resource ('Full Multimodal Pipeline') and the effect ('All Modalities → Fused z'), which distinguishes it from the single-modality siblings sensor_visual/sensor_audio/sensor_olfactory. However, it uses no verb and gives no concrete statement of action, leaving it ambiguous versus sensor_fuse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, despite several close siblings (sensor_fuse, sensor_visual, sensor_audio, sensor_olfactory, sensor_status). The agent must infer from the name alone whether this replaces or subsumes the individual sensor tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_statusCRead-onlyIdempotent
Multimodal Sensor Pipeline Status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes nothing beyond that — no information about what the pipeline status comprises, whether it is cheap or expensive, or how fresh the reading is — so it adds no value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short phrase with no wasted words, so it is structurally lean. However, brevity here comes from under-specification rather than disciplined concision — it is a title, not a description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter status tool in a large cluster of overlapping status/probe tools, an agent needs to know what this status covers and how it differs from get_system_status or np_status. No output schema exists to fill the gap, and the description provides no scope or return-value context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter-related gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the name and title ('Multimodal Sensor Pipeline Status'), with no verb and no indication of what is actually returned or checked. It does not distinguish this tool from the many sibling status tools such as get_system_status, np_status, wm_status, or ovo_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the other status/probe tools in the cluster; the 'status' framing implies a read of pipeline health but nothing more. No prerequisites, no when-not-to-use, no alternative named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sensor_visualCRead-onlyIdempotent
V-JEPA 2-inspired visual encoding (untrained MLP; image/video)
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Image parameters | |
| videoFrames | No | Number of frames (>1 = video) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description usefully adds that the MLP is untrained, warning the agent that outputs may be meaningless. It still omits what the operation returns or any side effects beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact parenthetical with zero filler; the explanatory caveat is linked directly to the tool name. It is terse to the point of being fragmentary but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and a fully covered schema, most structured context is present, and the untrained caveat is valuable. But with no output schema the description should say what the encoding actually yields, which it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested input object is fully documented, so the schema carries parameter meaning. The description only tangentially maps to videoFrames via "image/video" and adds no syntax or format detail. Baseline 3 applies when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Visual encoding" names a resource and "image/video" hints at the modality, which loosely separates it from sensor_audio and sensor_olfactory siblings. However "V-JEPA 2-inspired" is unexplained jargon and it never states what the tool actually produces (embeddings, pixel data, scores), leaving the core purpose vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this vs alternatives such as sensor_fuse or sensor_process, no mention of prerequisites, and no exclusions. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_parameterCDestructiveIdempotent
Modify State Parameter
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| value | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of what gets overwritten, whether the path must exist, permission needs, or effect scope. It does not contradict the annotations, but it contributes zero additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the brevity reflects under-specification rather than conciseness. There is only one phrase and it does no work beyond echoing the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an idempotent, destructive mutation tool with no output schema and undocumented parameters, the description should at minimum explain what state is being modified and the path/value conventions. None of that is present, leaving the agent unable to invoke it safely or correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two required parameters (path, value). The description provides no information about the path format, the meaning of 'value' (units, allowed range), or whether path is hierarchical — the exact burden the description should carry when the schema is bare.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Modify State Parameter' merely restates the tool name set_parameter and its title. It gives a verb (modify) and a generic resource (state parameter) but never says which state, which subsystem, or what kind of parameter, so it cannot be distinguished from siblings like simulation_control or ovo_set_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions, and no named alternative among the many sibling tools. An agent has no basis for choosing set_parameter over simulation_control or any other mutator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulation_controlDIdempotent
Simulation Control
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, giving a basic safety profile with no contradiction. The description itself adds nothing — it does not explain what start/stop actually affect, whether stopping is disruptive, or what state persists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two words is technically short, but this is under-specification, not conciseness. There is no front-loaded intent because there is no content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A state-mutating control tool with no output schema and no annotations explaining effects needs the description to carry the burden. It carries none of it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter, and the description contributes no information at all. The enum names are self-explanatory only incidentally; the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is the title restated verbatim with no verb, resource detail, or scope. It does not distinguish this tool from any of the ~70 siblings, many of which also control state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives despite the crowded sibling set. An agent has nothing to route on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snn_resetCDestructiveIdempotent
Reset SNN Engine
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile and repeat-call semantics are covered structurally. The description itself adds nothing: it does not say what state is wiped, whether the reset is recoverable, or whether it must be followed by re-initialization. No contradiction with annotations, but no added value either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but this is under-specification rather than concision: a two-word phrase is not an appropriately sized description for a destructive engine reset. No sentence beyond the title exists to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a destructive, idempotent annotation profile, the description should at minimum state what the reset affects and any prerequisites or follow-up steps. None of that is present, leaving the agent unable to predict the tool's effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema carries no semantics the description needs to compensate for. The baseline of 4 applies; nothing is misdocumented, though nothing is enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Reset SNN Engine" merely restates the tool name and the annotation title verbatim, adding no information beyond them. An agent learns that some SNN engine gets reset, but nothing about scope, mode, or what distinguishes it from siblings like tcai_reset or simulation_control.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to invoke this versus alternatives such as get_snn_state, snn_step, simulation_control, or the other reset-family tool tcai_reset. For a destructive reset with many adjacent lifecycle tools, the absence of any when/when-not routing is a serious gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snn_stepC
Advance SNN Simulation
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is non-read-only, non-idempotent, non-destructive, and closed-world. The description adds nothing beyond the title; it does not explain state mutation effects, step limits, or side effects of advancing the simulation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three words, front-loaded, and free of filler. It is appropriately sized for a simple tool, though its extreme brevity leaves it indistinguishable from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, no output schema, and annotations covering safety aspects, the description still lacks essential context: when to advance versus reset or control the simulation, and what the steps parameter means. It is minimally viable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the 'steps' parameter at all. While the schema provides type, default, minimum, and maximum, the description fails to compensate for the missing semantic meaning of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: advancing an SNN simulation. It distinguishes the tool from read-only siblings like get_snn_state and mutating siblings like snn_reset, though it does not explicitly differentiate from other simulation-control tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as snn_reset, simulation_control, or inject_spikes. The verb 'Advance' implies progressing the simulation, but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_active_inferenceARead-onlyIdempotent
Active-inference core telemetry (v2.9): the REAL variational free energy F (surprise), expected free energy G(π) decomposed into pragmatic + epistemic value, the realized task quality, the model entropy, and the Dirichlet-learned action. This is the principled quantity the halting criterion thresholds on — not a heuristic correlate (Da Costa et al. 2020; Legros 2026 §4.3).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the returned values are the 'REAL' principled quantities rather than heuristic proxies, which is useful trust context, but it discloses no rate limits, auth needs, or return-shape behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the tool identity and the list of returned quantities. The second sentence leans on citation scaffolding ('Da Costa et al. 2020; Legros 2026 §4.3') that does little operational work for an agent, but the text is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, the description's enumeration of returned quantities (F, G(p), task quality, entropy, Dirichlet action) effectively stands in for a return-value contract. It lacks any statement of response format or structure, but for a zero-argument read it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No meaning is lost by omission here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — active-inference core telemetry — and enumerates exactly the quantities it surfaces (F, G(p) with pragmatic/epistemic decomposition, task quality, model entropy, Dirichlet-learned action). It distinguishes itself from the broader tcai_metrics sibling by being the active-inference-specific read, though it never states a clean verb and reads more like an abstract than a tool description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the note that this is 'the principled quantity the halting criterion thresholds on' suggests it is relevant when inspecting why the halting criterion fires, and 'not a heuristic correlate' gestures at heuristic alternatives. There is no explicit when-to-use, when-not-to-use, or named alternative such as tcai_metrics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_calibrateADestructive
Calibrate the halting threshold on the measured ΔF scale instead of a guessed constant. Runs cycles warm-up cycles at the given reward, records the free-energy increments |ΔF|, and sets epsFreeEnergy to factor× their median. Returns the measured ΔF scale and the applied threshold. Addresses the v2.9 critique that the default 0.02 nats was uncalibrated.
| Name | Required | Description | Default |
|---|---|---|---|
| cycles | No | Warm-up cycles to measure ΔF (default 25) | |
| factor | No | epsFreeEnergy = factor × median|ΔF| (default 0.5) | |
| reward | No | Reward signal during warm-up (default 0.8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and non-idempotency; the description adds the concrete side effect (it runs warm-up cycles and overwrites epsFreeEnergy). It does not spell out that the change persists or is irreversible, but the mutation target and the cost of running warm-up cycles are disclosed, which meaningfully exceeds the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying distinct information: motivation, mechanism, output, and rationale. The purpose is front-loaded and nothing is redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile, full schema coverage, and the description itself explaining the return values despite no output schema, the definition is essentially complete. Minor gap: it does not state whether calibration persists across sessions or requires a subsequent step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cycles, factor, and reward are already documented including defaults and bounds. The description restates factor's role as a multiple of the median |ΔF| but adds no syntax, format, or edge-case meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calibrate) and resource (halting threshold / epsFreeEnergy) plus the exact mechanism: warm-up cycles measuring median |ΔF|. An agent can distinguish this from set_parameter or tcai_reset purely from the description, since it names the target variable and the estimation procedure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'instead of a guessed constant' and the reference to the v2.9 critique imply the motivating context (default 0.02 nats is uncalibrated), which hints at when to invoke it. However, it never states explicit when-not conditions or names the sibling (e.g., set_parameter) that would be the alternative for manually setting the threshold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_capability_modelARead-onlyIdempotent
Agency capability model (DirectExperienceLearner port): action → expected-valence map (EMA). Query expected outcome of an action, or list the learned capability table.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action label to query expected valence for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds real domain context beyond that: the return is an EMA-derived action → expected-valence map from a DirectExperienceLearner port, telling the agent what kind of signal it gets back. It stops short of describing behavior for unknown/unseen actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the model name and mechanism before the two usage modes. The parenthetical '(DirectExperienceLearner port)' is dense jargon but does convey provenance in few characters; no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read-only query with no output schema, the description covers mechanism, both invocation modes, and the nature of the returned map, which is enough for correct invocation. Minor gap: it does not say what is returned for an action with no learned entry, and the no-argument list behavior is only implied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'action' parameter is documented inline as the action label to query. The description's 'action → expected-valence map' phrasing reinforces intent but adds no format, casing, or vocabulary details beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific mechanism and outcome: it exposes an agency capability model mapping actions to expected valence, and can either query one action or list the learned table. The dual mode is clear, though the definition never distinguishes itself from the many other tcai_* analysis tools in the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two modes ('Query expected outcome of an action, or list the learned capability table') implicitly tell the agent when to pass an action versus call with no argument. However, there is no explicit when-to-use guidance and no named alternative among the tcai_* siblings for related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_convergenceADestructiveIdempotent
Inspect or configure the recursive double-loop halting criterion (v2.9). With no arguments, returns the current satisfaction state and active thresholds. With arguments, updates them. The loop halts only when variational free energy has settled (|ΔF| ≤ epsFreeEnergy) AND realized task quality is high (≥ minTaskQuality) AND epistemic value is low, sustained over patience cycles — stationarity alone is insufficient (Legros 2026 §2.2/§4.3).
| Name | Required | Description | Default |
|---|---|---|---|
| patience | No | Consecutive satisfied cycles required to halt (default 3) | |
| maxEpistemic | No | Halt threshold: expected info gain ≤ (default 0.1) | |
| epsFreeEnergy | No | Halt threshold: absolute |ΔF| ≤ (nats, default 0.02) | |
| relFreeEnergy | No | Halt threshold: |ΔF| ≤ rel·F, scale-free (default 0.03) | |
| minTaskQuality | No | Halt threshold: realized task quality ≥ (default 0.6) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is covered structurally. The description adds genuine behavioral context: the multi-condition AND gate (|ΔF| ≤ epsFreeEnergy and task quality ≥ minTaskQuality and low epistemic value, sustained over patience), plus the caveat that stationarity alone is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the inspect/configure split before the halting mechanics, and each sentence carries substantive content. The Legros citation is a minor flourish but supports the claim rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param, all-optional tool with no output schema, the description explains both modes and the halting semantics thoroughly. It omits what the returned satisfaction state looks like and any permission/prerequisite context, but no output schema means return-value detail is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by naming epsFreeEnergy, minTaskQuality, and patience inside the halt logic and showing how they combine as conjunctive conditions. It does not spell out relFreeEnergy's interaction, leaving one param to the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Inspect or configure the recursive double-loop halting criterion (v2.9)', covering both read and write modes. It is clear what the tool governs, but it never distinguishes itself from nearby siblings like tcai_second_order, tcai_cycle, or orch_criterion, so an agent must infer the niche.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the branching rule: no arguments returns current state/thresholds, arguments update them. It also explains the halting condition, which tells the agent when the criterion is meaningful. It stops short of naming alternatives or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_curiosityB
Intrinsic-reward / curiosity (RNDCuriosity port): prediction error between a frozen random target and an online predictor on a representation vector. High error = novelty = exploration drive (EFE epistemic value proxy, Legros 2026 §4.1). Defaults to the current GNW broadcast.
| Name | Required | Description | Default |
|---|---|---|---|
| embedding | No | Representation vector (defaults to current broadcast) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and idempotentHint=false, so the agent knows this mutates state; the annotation title adds '(trains predictor)'. The description reinforces the online-learning nature via 'online predictor' and clarifies the semantic meaning of the output, but neither description nor annotations explain what state is changed or the cost of repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core mechanism in one dense sentence, followed by the interpretability note and the default behavior. Efficient overall, though the citation 'Legros 2026 §4.1' adds little operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by explaining what the score means (high error = novelty). It leaves side effects of training undocumented, but for a single optional-parameter tool this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'embedding' parameter is fully documented including its default. The description's 'Defaults to the current GNW broadcast' simply restates the schema, adding no format or constraint detail beyond it, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific mechanism and resource: intrinsic reward / curiosity via RND, computing prediction error between a frozen target and online predictor. An agent understands what the tool returns. It doesn't explicitly differentiate itself from sibling TCAI tools, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the underlying theory (novelty = exploration drive, EFE epistemic proxy) but never says when to call this versus alternatives like tcai_active_inference or wm_surprise. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_cycleBDestructive
Run one or more ACM cycles (the_consciousness_ai port): SNN signals → AKOrN binding → GNW ignition → qualia → emotion → reward shaping → emotional memory → self-model → second-order loop. Set stopWhenSatisfied to halt early once the recursive loop reaches a sustained satisfactory (converged, low-curiosity, stable) regime.
| Name | Required | Description | Default |
|---|---|---|---|
| cycles | No | Number of cycles (default 1; upper bound if stopWhenSatisfied) | |
| threat | No | ||
| novelty | No | Surprise/curiosity ∈ [0,1] | |
| setpoint | No | Continuous controller substrate setpoint to regulate toward (v2.9, default 0.3) | |
| narrative | No | Annotation for the memory record | |
| closedLoop | No | Enable closed-loop actuation (AIF action drives the substrate); default on | |
| maxEpistemic | No | Halt threshold: expected info gain ≤ (default 0.1) | |
| rewardSignal | No | Task feedback ∈ [−1,1] | |
| epsFreeEnergy | No | Halt threshold: absolute |ΔF| ≤ (nats, default 0.02) | |
| relFreeEnergy | No | Halt threshold: |ΔF| ≤ rel·F, scale-free (default 0.03) | |
| minTaskQuality | No | Halt threshold: realized task quality ≥ (default 0.6) | |
| productionLoop | No | Close the loop through the shared production SNN (read+write); default off (v2.9) | |
| controllability | No | ||
| predictionError | No | World-model surprise (raw) | |
| stopWhenSatisfied | No | Halt early when the second-order loop reports sustained satisfaction | |
| predictionConfidence | No | ||
| satisfactionPatience | No | Consecutive satisfied cycles required to halt (default 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=false, so the safety profile is partly covered. The description adds the internal stage sequence and the early-halt semantics, but never explains what the destructive annotation actually destroys or what reconfiguring the actuation/production loop entails, which is the highest-value missing detail for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action verb, with the pipeline compressed into an arrow chain rather than verbose prose. The stage enumeration is long but carries genuine structural information, so almost every token earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, 17-parameter tool with no output schema and no required parameters, the description covers the what but omits the return shape, the side effects implied by destructiveHint, and any routing context. It is adequate but leaves meaningful gaps an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82%, so the schema already documents most of the 17 parameters, making 3 the baseline. The description adds meaning only for stopWhenSatisfied (defining 'sustained satisfactory' as converged/low-curiosity/stable) and implicitly for cycles as an upper bound; the remaining halt thresholds and inputs get no extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Run one or more ACM cycles') and enumerates the exact pipeline from SNN signals through the second-order loop, so an agent can tell it is the full-cycle driver rather than a single-stage sibling. It does not explicitly contrast itself with near-neighbors like tcai_second_order, orch_cycle, or ovo_cycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is about setting stopWhenSatisfied, which is parameter behavior rather than when-to-use context. There is no statement of when to pick this over sibling cycle tools, no prerequisites, and no when-not-to-use. An agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_developmentBRead-onlyIdempotent
Longitudinal developmental tracking (DevelopmentTracker port): coarse stage (nascent→reactive→integrative→reflective) from the running composite-proxy level, stability and meta-representation score. Second-order self-monitoring over time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description contributes the output semantics (stage, stability, meta-representation score) but adds nothing about auth, rate limits, freshness, or what the running composite-proxy depends on, which is limited value beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly three sentences, front-loaded with the core purpose and then the output detail. No filler, though parenthetical jargon ('DevelopmentTracker port', 'composite-proxy level') costs a little clarity for a short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with annotations covering safety and no output schema, the description supplies the return semantics (stage names, stability, meta-representation score). It is close to complete; only sibling differentiation and prerequisites are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is no parameter syntax the description needs to compensate for. Nothing is missing on this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Longitudinal developmental tracking') and even enumerates the output dimension (stage nascent→reactive→integrative→reflective plus stability and meta-representation score). However it does not distinguish itself from close siblings like tcai_second_order or tcai_self_model, and the phrase 'Second-order self-monitoring over time' actively muddies the boundary with tcai_second_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition that selects this tool over the many tcai_* siblings, and no exclusion statements. The agent is left to infer usage entirely from the terse purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_emotion_appraiseC
Appraise raw signals into PAD emotional space (Mehrabian) with inertia
| Name | Required | Description | Default |
|---|---|---|---|
| threat | No | ||
| novelty | No | ||
| rewardSignal | No | ||
| controllability | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a non-read-only, non-idempotent, non-destructive, closed-world operation, so the safety profile is largely covered. The description adds one genuine behavioral trait beyond them — 'with inertia' implies prior emotional state influences the result, which is real context — but it omits whether internal state is mutated, ordering/persistence semantics, and any rate or calibration caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with no wasted words, which is structurally good. But for a four-parameter tool with zero schema documentation this brevity crosses into under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that transforms four appraisal inputs into a PAD state with hysteresis, the description leaves the input semantics, the output shape (no output schema exists), and the effect on internal TCAI state all unexplained. Annotations cover safety only; the descriptive gap remains substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the description carries the full burden — and it adds nothing. It never explains that threat/novelty/controllability are normalized 0–1 appraisal axes while rewardSignal spans −1 to 1, nor how they combine into PAD. Names alone are suggestive but not sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Appraise') and a named target/output space ('PAD emotional space (Mehrabian)'), which is more informative than a tautology. It does not, however, distinguish this from sibling appraisal/state tools like tcai_self_model or tcai_curiosity, and it never says what the 'raw signals' are.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no indication of where this sits in the TCAI cycle, and no alternatives named among the many tcai_* siblings. The agent must infer invocation context entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_memory_retrieveBRead-onlyIdempotent
Retrieve memories by blended cosine similarity, PAD congruence and salience
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | ||
| arousal | No | Arousal ∈ [0,1] | |
| valence | No | Pleasure ∈ [−1,1] | |
| dominance | No | Dominance ∈ [0,1] | |
| embedding | No | Query vector (defaults to current broadcast) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds that ranking is a weighted blend of three signals, which is useful, but says nothing about result shape, whether an empty query embedding falls back to the current broadcast, or ordering guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, and the mechanism is stated up front. It is arguably too terse for a 5-parameter retrieval tool, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should describe what comes back or how topK shapes results, and it does not; nor does it clarify the relationship to tcai_memory_store or the embedding-default behavior. Adequate for identification, incomplete for confident invocation of a system this complex.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80% and the schema already documents embedding, valence, arousal and dominance ranges; topK is undocumented in both places. The description's mention of cosine similarity and PAD congruence loosely maps to embedding and the PAD triple but adds no syntax or default behavior, matching the baseline 3 for a well-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (memories) and even names the ranking mechanism (blended cosine similarity, PAD congruence, salience), which is unusually informative for a one-liner. It never explicitly distinguishes itself from the sibling tcai_memory_store, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how memories are scored but gives no guidance on when to call this versus alternatives such as tcai_memory_store or other tcai_* context tools, and no prerequisites or exclusions. Usage is only inferable from the tool name and scoring detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_memory_storeB
Store an experience in emotional memory (attention-gated, salience-indexed)
| Name | Required | Description | Default |
|---|---|---|---|
| arousal | No | Arousal ∈ [0,1] | |
| valence | No | Pleasure ∈ [−1,1] | |
| dominance | No | Dominance ∈ [0,1] | |
| embedding | No | Feature vector (defaults to current broadcast) | |
| narrative | Yes | Description of the experience | |
| attentionLevel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false), so the description needn't restate them. It adds 'attention-gated, salience-indexed', which hints that storage may be suppressed by low attention and that entries carry a salience index, but this is cryptic jargon rather than an operational explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact phrase with no waste, and the core action is front-loaded. It is arguably too terse for the tool's complexity, but it is efficient and non-redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter write tool with no output schema, the description is thin: it never says what 'attention-gated' means operationally, whether a store can silently fail, or what is returned. Annotations cover the safety profile and the schema covers most params, but behavioral completeness is only marginally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents arousal/valence/dominance ranges, embedding defaults, and narrative. The description adds nothing about parameter meaning (e.g., that attentionLevel drives the 'attention-gated' behavior). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Store) and resource (an experience in emotional memory), with the parenthetical scope hint 'attention-gated, salience-indexed'. It is clearly a write counterpart to tcai_memory_retrieve, though the description never names that sibling to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not, or prerequisite guidance. An agent must infer from the name that this is the write path versus tcai_memory_retrieve, and nothing indicates conditions like required attention level or failure modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_metaconsciousnessARead-onlyIdempotent
Meta-consciousness composite (MetaconsciousnessEvaluator port): weighted score over confidence calibration, learning awareness, self-continuity and error monitoring. PROXY of meta-representation capacity, not a measurement.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety bar is met by structured data. The description adds genuinely useful epistemic context beyond that — it is a PROXY of meta-representation capacity, not a direct measurement — which is exactly the kind of caveat that cannot live in annotations. It stops short of describing the returned score's range or scale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the composite and its components, then the proxy disclaimer. Dense jargon ('MetaconsciousnessEvaluator port') costs a little clarity but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with full annotation coverage and no output schema, the entry is largely self-sufficient: it names the resource, the four inputs to the score, and its epistemic limits. The remaining gap — what scale or shape the returned score takes — is minor given the description's clear framing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing to document; the baseline of 4 applies. The description correctly implies the tool is parameterless by describing a fixed weighted composite.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource — a composite meta-consciousness score — and enumerates the four weighted components (confidence calibration, learning awareness, self-continuity, error monitoring). The verb/action is implied (compute/read) rather than explicit, and it does not differentiate itself from near-neighbors like tcai_metrics, tcai_second_order, or tcai_self_model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus the other tcai_* evaluators, no prerequisites, no exclusions. The agent must infer context entirely from the name and the composite's component list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_meta_learningB
Meta-learning state (MetaLearningModule port): learning velocity from RPE-variance dynamics. velocity>0 ⇒ converging; noveltySpike ⇒ novel/confusing regime. Optionally inject an RPE sample.
| Name | Required | Description | Default |
|---|---|---|---|
| rpe | No | Inject a reward-prediction-error sample ∈ [−1,1] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the full profile: readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false, so the agent knows injection mutates state. The description adds interpretative semantics (velocity>0 ⇒ converging; noveltySpike ⇒ novel/confusing regime), which is real value, but it never says how injection affects subsequent reads (reset vs. accumulate) or what the returned state contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, purpose front-loaded before the interpretative gloss and the optional injection note. No filler, though the telegraphic jargon and arrow notation make it slightly harder to parse than plain prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return-value burden, and it only partially does: it explains how to interpret velocity and noveltySpike but not the shape of the state object or the effect of injecting rpe. For a mutable, non-idempotent, zero-required-param tool this leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional 'rpe' parameter is fully documented in the schema (type, bounds [−1,1], meaning). The description merely restates 'Optionally inject an RPE sample', adding no syntax or behavioral detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (meta-learning state) and the mechanism behind it (learning velocity derived from RPE-variance dynamics), and the title clarifies the dual read/inject mode. It is distinguishable from siblings like tcai_metaconsciousness or tcai_curiosity, though the dense jargon ('RPE-variance dynamics', 'regime') assumes domain familiarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call it to check convergence (velocity>0) or a novel regime (noveltySpike), and that rpe may be supplied to inject a sample. There is no explicit when-to-use versus sibling tools (e.g. tcai_convergence, tcai_metrics) and no stated prerequisites or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_metricsBRead-onlyIdempotent
Consciousness proxy report: GNW metrics, Effective Information, Φ̃-RIIU, composite score
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds the useful fact that the payload is a composite proxy report spanning several metric families. It does not disclose cost, whether it triggers computation (as tcai_cycle or tcai_convergence might), or any rate/latency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact clause with the artifact front-loaded and no filler. It is efficient, though it is under-specified rather than truly polished given the missing verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only tool with no output schema, the description tells the agent what the report contains, which is enough to call it correctly. It falls short on distinguishing this report from the many other tcai_*/metrics siblings, leaving selection ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The description correctly implies a parameterless, self-contained report.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete artifact (a 'consciousness proxy report') and enumerates its contents (GNW metrics, Effective Information, Φ̃-RIIU, composite score), so an agent knows what data comes back. However, there is no verb indicating whether it computes, fetches, or aggregates, and it does not distinguish itself from siblings like get_metrics, tcai_metaconsciousness, or tcai_convergence that could also return consciousness-related numbers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. With siblings such as get_metrics and several tcai_* cognitive tools, the agent gets no signal about when this report is the right choice versus those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_resetADestructiveIdempotent
Reset the TCAI consciousness system (workspace, memory, emotion, metrics)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds value by enumerating what gets reset (workspace, memory, emotion, metrics), which tells the agent the blast radius. It still doesn't say whether data is recoverable or whether a confirmation step is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The verb and scope come first, and the parenthetical list of affected subsystems is efficient rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations that already carry the destructive/idempotent profile, the description only needs to convey what the operation affects, which it does. The main residual gap is the absence of any recovery or confirmation context for a destructive reset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No parameter semantics are needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Reset) and resource (TCAI consciousness system) and scopes it by naming the affected components (workspace, memory, emotion, metrics). This distinguishes it from the similarly named sibling snn_reset, which targets a different subsystem.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. An agent must infer that this is for wiping TCAI state, and only the annotations (not the description) hint at how consequential that is.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_second_orderARead-onlyIdempotent
Second-order (self-evidencing) loop snapshot: meta-learning velocity, RND curiosity (epistemic value), capability model, meta-consciousness score, developmental stage. The system observing and correcting its own predictive capacity (Legros 2026 §3.2).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so safety and side-effect behavior are covered. The description adds value beyond that by enumerating the conceptual contents of the snapshot (epistemic-value curiosity estimate, meta-consciousness score, developmental stage) and framing it as self-monitoring, which tells the agent roughly what it will get back despite no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the resource name and its contents before the explanatory gloss. The citation (Legros 2026 §3.2) is arguably decorative but costs little. No redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only snapshot with no output schema, the description does enough to convey what comes back. But it omits any routing guidance relative to the many overlapping tcai_* siblings, which is the main thing an agent needs to invoke the right tool in this crowded namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes 0 parameters, so per the rubric the baseline is 4. Nothing in the schema needs compensating for, and the description appropriately says nothing about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly names the resource (a 'second-order (self-evidencing) loop snapshot') and enumerates its contents: meta-learning velocity, RND curiosity, capability model, meta-consciousness score, developmental stage. However, it never distinguishes itself from siblings like tcai_meta_learning, tcai_curiosity, tcai_capability_model, and tcai_metaconsciousness, which appear to be the very components this tool aggregates. Clear but no sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. With ~60 siblings including several tcai_* tools covering exactly the same concepts, the agent gets no signal about whether to call this composite snapshot or the individual component tools. No exclusions, no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_self_modelBRead-onlyIdempotent
Self-representation state: interoception, epistemic model, temporal continuity, attention schema
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive, closed-world read, so safety is covered. The description adds modest value by enumerating what the state comprises (which is effectively a hint at the return contents given there is no output schema), but it says nothing about freshness, cost, or how the facets are scoped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single compact, front-loaded phrase with no filler. The trade-off is that it is perhaps too clipped — one clarifying clause about the return shape would have earned more, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema state reader, an agent would want to know roughly what comes back and how it differs from the other tcai state tools. The description gives the conceptual components but no shape or relationship to siblings, leaving it adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the schema has nothing to document and the baseline is 4. There are no parameter semantics for the description to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (self-model / self-representation state) and enumerates its facets — interoception, epistemic model, temporal continuity, attention schema — which distinguishes it somewhat from generic state readers. However, it is a bare noun phrase with no verb, so it never states that it *retrieves* or *reports* this state; the read behavior must be inferred from readOnlyHint. It also doesn't differentiate from nearby siblings like tcai_workspace_state or tcai_metaconsciousness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool, no prerequisites, and no mention of alternatives. With siblings such as tcai_metaconsciousness, tcai_second_order, and tcai_workspace_state all plausibly overlapping with 'self-representation', the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tcai_workspace_stateCRead-onlyIdempotent
Global Neuronal Workspace state: ignition, focus, qualia, sync R, unity metrics, access history
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered structurally. The description adds no behavioral context beyond that — nothing about whether the workspace state is live or cached, how access history accumulates, or how frequently it changes. Opaque terms like 'sync R' and 'unity metrics' are offered without explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short fragment with no padding, which is efficient. But it is a bare colon-delimited field list rather than a front-loaded statement of purpose, so the reader must infer the verb and the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description is the only window into the return value, and it names six distinct metric groups. That is some coverage, but the names are jargon ('ignition', 'qualia', 'sync R', 'unity metrics') with no explanation of what they mean or their units, which leaves the agent unable to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 under the rubric. There is no argument surface for the description to clarify or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Global Neuronal Workspace state) and enumerates the facets it exposes (ignition, focus, qualia, sync R, unity metrics, access history), so an agent can infer it reads state. However, it is a noun-phrase field list with no verb and no differentiation from siblings like tcai_metrics, get_snn_state, or wm_status, which plausibly report overlapping state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to call this versus tcai_metrics, tcai_self_model, tcai_second_order, or the other tcai_* state readers. No prerequisites, no trigger conditions, and no exclusions are stated, leaving routing entirely to the agent's guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_encodeB
Encode SNN State to Latent Space
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and idempotentHint=false, so this is a state-touching, non-repeatable operation, yet the description adds nothing about what state is affected, whether it must follow snn_step, or what a repeated call does. It does not contradict the annotations, but it also contributes no behavioral context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is appropriate for a short definition. It is efficient, though it is arguably terse to the point of under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a non-trivial world-model operation with no output schema, no parameter documentation, and no explanation of the returned latent representation or the required input state. For an agent to invoke it correctly in a pipeline of wm_* tools, considerably more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4 and the empty schema needs no further explanation. Nothing in the description is needed to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Encode) and resource pair (SNN State -> Latent Space), so the transformation is understandable. It does not differentiate itself from siblings like wm_predict, wm_plan, or wm_surprise, which also operate on the world model, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus wm_predict or wm_surprise, no prerequisites (e.g. requiring a current SNN state), and no mention of ordering within a world-model cycle. The agent gets no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_planD
CEM Planning for Optimal Spike Injection
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | Target state to plan towards | |
| horizon | No | Planning horizon (steps) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is partly conveyed. The description adds nothing: it does not say whether spikes are actually injected or only simulated, whether the world model is mutated, how long CEM planning takes, or that it is stochastic and non-idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but shortness here is under-specification rather than efficiency: a six-word fragment with no verb and no front-loaded statement of outcome leaves the agent with nothing actionable. No sentence earns value beyond echoing the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested required goal object, a bounded planning horizon, no output schema, and a stochastic non-read-only annotation profile, the description is far too thin. It omits what a returned plan contains, whether it is meant to be applied via inject_spikes, and any indication of cost or ordering relative to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested goal object documents acmTarget, description, and firingRateTarget, so the schema carries the full parameter burden. The description adds no syntax, units, or interpretation beyond the structured fields, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare noun phrase, 'CEM Planning for Optimal Spike Injection,' that restates the tool name (wm_plan) and annotation title ('CEM Latent Planning') without a verb or a statement of what the tool actually returns or does. It does not distinguish itself from wm_predict, wm_surprise, or inject_spikes in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance whatsoever. Nothing tells the agent how this differs from wm_predict (single-step prediction) or inject_spikes (direct injection), nor under what preconditions planning is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_predictC
Predict Next SNN State in Latent Space
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Number of prediction steps (rollout) | |
| action | Yes | Spike injection action to condition prediction on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing on top of that: it does not say whether prediction mutates latent state, what the conditioning action does internally, or what is returned — despite a prediction tool whose readOnlyHint=false is itself non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short fragment with zero padding, so nothing is wasted on verbosity. However, that brevity comes from under-specification rather than disciplined concision, and the fragment is not even a full sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with a nested action object and no output schema, and the annotations raise a question (why is a 'predict' operation not read-only?) that the description never addresses. For a latent world-model step embedded among many wm_* siblings, the definition leaves too much for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'steps' (rollout), 'action.targetNeurons', 'action.strengths [mV]', and 'action.duration' are already fully documented. The description contributes no parameter meaning beyond the schema, which is exactly the baseline-3 case when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase names a verb ('Predict') and a resource ('Next SNN State in Latent Space'), so the broad intent is discernible. But it is a title-like fragment rather than a statement of what the tool does, and it draws no boundary against the dense wm_* sibling family (wm_plan, wm_encode, wm_surprise, wm_train_step), leaving an agent unable to tell these apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no alternatives named despite four sibling world-model tools that could plausibly be chosen instead. The description is entirely silent on the conditions that select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_statusCRead-onlyIdempotent
World Model Status & Metrics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond the title — no note on whether it is a cheap snapshot vs. an expensive aggregate, no refresh/side-effect context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but it is a label fragment rather than a sentence — brevity achieved by omission rather than by tight writing. There is no front-loaded scoping statement to justify the minimal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of hinting at what comes back and lacks it entirely; 'Status & Metrics' gives no sense of the payload (health flags, counters, model dimensions). Combined with zero sibling differentiation, an agent has little basis to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool applies. Schema coverage is 100% and trivially empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the tool name ('wm_status' → 'World Model Status & Metrics') with no verb and no scope. It does not distinguish this from the many overlapping status/metrics siblings such as get_system_status, get_metrics, get_platform_status, np_status, or tcai_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all — nothing says whether this is the world-model-specific counterpart to get_system_status/get_metrics or when to prefer one over the other. The overlapping sibling names make this omission costly for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_surpriseC
Violation-of-Expectation Detection
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action that was applied |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is non-read-only, non-idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds nothing beyond that: it does not say whether this mutates network state, consumes an injected action, requires a prior encode/predict step, or returns anything. With annotations present the bar is lower, but zero added context leaves a 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three words with no padding, so nothing is wasted, but it is under-specified rather than concise. It is front-loaded only in the trivial sense of being a single phrase.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A tool with a nested object parameter, no output schema, and a research-heavy domain (violation-of-expectation in a world model) needs far more explanation than one phrase. The description does not explain what the action parameter represents in this context or what the agent gets back, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so targetNeurons, strengths, and duration are already documented in the schema; the baseline is 3. The description adds no meaning about how the action object relates to surprise detection or what units/interpretation the strengths carry beyond the schema's own notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare noun phrase that expands the tool name rather than stating what the tool does. There is no verb (compute, detect, report, inject) and no differentiation from siblings such as wm_predict, wm_status, or wm_train_step, so an agent cannot tell what operation 'Violation-of-Expectation Detection' performs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given, no prerequisites, and no reference to the many sibling world-model tools (wm_predict, wm_status, wm_plan) that an agent would need to choose between. Usage can only be inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wm_train_stepC
Online World Model Training Step
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action applied between observations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations disclose readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the mutation/non-idempotent profile is partially covered structurally. However, the description adds nothing: it never states that model weights are updated, whether the update persists, what 'online' implies, or what the action is applied between. For a state-mutating training tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single four-word phrase with no wasted words, but this is under-specification rather than conciseness. There is no front-loaded statement of purpose, effect, or constraints to anchor the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool takes a nested action object (with duration/strengths/targetNeurons), has no output schema, and is a non-idempotent mutation — the description should at minimum explain the effect on the world model and any return or side effects. None of that is present, leaving the agent without a basis for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: duration, strengths [mV], and targetNeurons are documented in the schema, and 'action' itself is described as 'Action applied between observations'. The description adds no syntax or semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially the tool's title restated ('Online World Model Training Step') and names no verb beyond 'training step'. It does not distinguish this tool from the many wm_* siblings (wm_encode, wm_predict, wm_plan, wm_status, wm_surprise). An agent cannot tell what operation is actually performed or on what.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative sibling. With 20+ wm_/snn_/tcai_ tools in the namespace, the agent is left to guess when an online training step is appropriate versus wm_predict or snn_step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v3.1.1- Changed
fcs_conformance3 fields changed- added
Input schema / properties / calciumNm / descriptionAdded value: +"Intracellular free Ca²⁺, nM (second messenger) — reported, bound to no pair." - added
Input schema / properties / extracellularCalciumMmAdded value: +{ + "description": "Extracellular Ca²⁺ at the bath, mM — the only reading bound to class 1.", + "maximum": 20, + "minimum": 0, + "type": "number" +} - added
Input schema / properties / firingRateHz / descriptionAdded value: +"Median per-unit spontaneous firing rate, Hz (DANDI 001603 reference interval 0.14–0.63 Hz)."
70 tool updates
v3.1.0- First observed
check_ethics - First observed
export_snapshot - First observed
fcs_compare - First observed
fcs_conformance - First observed
fcs_levels - First observed
fcs_lint - First observed
fcs_report - First observed
fcs_stratify - First observed
fcs_taxonomy - First observed
fcs_withdrawal - First observed
get_acm_score - First observed
get_metrics - First observed
get_platform_status - First observed
get_snn_state - First observed
get_system_status - First observed
inject_spikes - First observed
np_camera_capture - First observed
np_closed_loop - First observed
np_configure_stim - First observed
np_count_spikes - First observed
np_query_spike_count - First observed
np_query_spike_events - First observed
np_query_triggers - First observed
np_send_trigger - First observed
np_status - First observed
orch_criterion - First observed
orch_cycle - First observed
orch_decoherence - First observed
orch_gate_config - First observed
orch_report - First observed
orch_substrate - First observed
ovo_arm_control - First observed
ovo_cycle - First observed
ovo_isomorphism - First observed
ovo_read - First observed
ovo_set_policy - First observed
ovo_status - First observed
sensor_audio - First observed
sensor_fuse - First observed
sensor_olfactory - First observed
sensor_process - First observed
sensor_status - First observed
sensor_visual - First observed
set_parameter - First observed
simulation_control - First observed
snn_reset - First observed
snn_step - First observed
tcai_active_inference - First observed
tcai_calibrate - First observed
tcai_capability_model - First observed
tcai_convergence - First observed
tcai_curiosity - First observed
tcai_cycle - First observed
tcai_development - First observed
tcai_emotion_appraise - First observed
tcai_memory_retrieve - First observed
tcai_memory_store - First observed
tcai_meta_learning - First observed
tcai_metaconsciousness - First observed
tcai_metrics - First observed
tcai_reset - First observed
tcai_second_order - First observed
tcai_self_model - First observed
tcai_workspace_state - First observed
wm_encode - First observed
wm_plan - First observed
wm_predict - First observed
wm_status - First observed
wm_surprise - First observed
wm_train_step
TDQS
Scored across 70 tools
Subsystem prefixes (snn_, wm_, tcai_, np_, orch_, fcs_, ovo_, sensor_) give a namespace structure that helps separate families of tools. However, several tools overlap conceptually — tcai_cycle, orch_cycle and ovo_cycle all 'read a frame and run a TCAI cycle', and tcai_metrics, tcai_metaconsciousness, tcai_second_order, tcai_development and get_acm_score all report consciousness-proxy composites, inviting misselection. Very verbose descriptions partially compensate but the boundaries remain fuzzy.
Most names are snake_case with a consistent subsystem prefix (snn_step, wm_predict, tcai_cycle, np_send_trigger), which is readable and systematic. But there is a mix of verb_noun (get_system_status, set_parameter, snn_step) and bare noun/phrase styles (fcs_report, orch_substrate, tcai_metrics, simulation_control), and the system-level tools (get_metrics, check_ethics, export_snapshot) lack any prefix, so the convention is only partially uniform.
At 70 tools this is far beyond any agent's reliable working set and clearly over-scoped, even for a broad research platform. The vast surface forces selection among many near-synonymous tools and raises the risk of wrong picks. This is an extreme count mismatch for the server's stated purpose.
Coverage is extremely broad — SNN control, world model, multimodal sensors, TCAI loop, NeuroPlatform hardware, Orch OR theory, FCS taxonomy and OVOMIND bridge all have read/configure/run/inspect operations. Lifecycle coverage (status, configure, step, reset, report, export) is present across subsystems. Only minor gaps (e.g. some obvious cleanup/delete or bulk-query operations) keep it from a 5.
Maintenance
Related MCP Connectors
NeuralBrain MCP Server - RAG, Vector Memory, LLM Routing, Agent Identity, x402 Payments
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseCqualityDmaintenanceIntegrates a bio-hybrid neuromorphic simulation pipeline with SNN, consciousness proxies, and bio-computing platform telemetry as MCP tools, resources, and prompts for AI assistants.481MIT
- AlicenseCqualityDmaintenanceExposes a bio-hybrid neuromorphic simulation pipeline (SNN, consciousness proxies, FinalSpark NeuroPlatform) as MCP tools, resources, and prompts for AI assistants like Claude, Cursor, and VS Code.49MIT
- AlicenseCqualityDmaintenanceExposes a bio-hybrid neuromorphic simulation pipeline (SNN, consciousness proxies, wetware integration) as MCP tools, resources, and prompts for AI assistants.50MIT
- AlicenseCqualityDmaintenanceExposes a bio-hybrid neuromorphic simulation pipeline (SNN LIF+STDP, consciousness proxy, bio-platform telemetry, ethics monitor) to AI assistants via MCP tools, resources, and prompts.501MIT