Self-learning MCP servers with Hebbian synapse networks, adaptive error memory, code intelligence, trading intelligence, marketing intelligence, gaming intelligence, and security operations. Multi-package monorepo with IPC, REST API, webhooks, and cross-brain communication.
Brain Ecosystem exposes 18 tools across self-monitoring, attention control, benchmarking, and browser automation domains. While tool names follow verb_noun conventions and descriptions are present, there are critical gaps: (1) Parameter descriptions are sparse or missing entirely, tools like brain_self_observe, brain_strategy_status have {} inputs but no documentation of what they return or why an LLM would call them; (2) Output schemas are not documented anywhere in the provided source, making it impossible for LLMs to know what fields to expect or plan downstream calls; (3) Many descriptions lack depth, brain_benchmark_run is 118 chars but doesn't explain what 'pass/fail' means or why an agent would use it vs brain_benchmark_score; (4) No error handling guidance visible, tools like brain_browser_execute accept complex nested action arrays with minimal constraint documentation; (5) Tool composition is unclear, brain_focus_set modifies state but brain_focus_status is read-only, yet no guidance on when to use each or what side effects occur. The browser tools (brain_browser_run, brain_browser_execute) lack safety guardrails, timeout specs, or failure recovery hints. Most tools return 'READ_ONLY' or 'WRITE' risk labels but no descriptions of what happens on failure or how to retry.
Get historical benchmark results to track improvement over time.
Run the SelfMod benchmark suite — tests code generation quality across 10 tasks of varying difficulty. Returns pass/fail for each task with timing info.
Get the current benchmark score — shows pass rate of the latest run for each task, plus improvement trend over time.
List all available benchmark tasks with their difficulty and target files.
Execute a scripted sequence of browser actions (navigate, click, type, screenshot, etc.).
Start an autonomous browser task. The agent navigates, reads pages, fills forms, and extracts data using LLM-guided decisions.
Output schemas are completely undocumented. No tool describes what fields it returns, what types those fields are, or what LLMs should expect. This breaks composition, an LLM cannot chain brain_focus_set → brain_focus_status because it doesn't know what brain_focus_status returns.
Empty input schemas ({}) with no explanation of return behavior. brain_self_observe, brain_self_improvement_plan, brain_strategy_status, brain_benchmark_score, brain_benchmark_tasks, brain_focus_status, brain_browser_status, brain_browser_shutdown all have zero parameters but their descriptions don't explain what they fetch or compute. An LLM cannot determine when to call these vs similar tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 43 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Gracefully shut down the browser agent, closing all pages and releasing resources.
Get the current status of the browser agent (running tasks, pages open, etc.).
List all experiments. Filter by status to see running, completed, or aborted experiments.
Get the focus timeline — what topics Brain has been paying attention to over time, and what context switches happened.
Manually direct Brain attention to a specific topic. Increases its attention score and urgency, making related research engines work harder on it.
Get Brain attention status: current work context, top topics by attention score, urgent topics, engine weights, and context switch history. Shows what Brain is paying attention to right now.
Get self-improvement plan: actionable suggestions Brain has generated based on observing its own performance patterns.
Get self-observation insights: patterns Brain has detected about its own behavior and performance. Filter by type and limit results.
Get self-observation statistics: how Brain monitors its own behavior, performance metrics, and operational patterns.
View adaptation history: past parameter changes made by the adaptive strategy engine. Filter by strategy name.
Revert a specific strategy adaptation. Rolls back a parameter change and records the reason.
Get adaptive strategy status: all strategies with their current parameters, performance metrics, and revert rates.
Descriptions are often generic or incomplete. 'Get the current benchmark score' (45 chars) tells the LLM almost nothing, what is being scored? Is this a single number or a structured object? How does it differ from brain_benchmark_run? Similar vague descriptions on brain_focus_history, brain_browser_status, brain_browser_shutdown.
No error handling guidance. Tools like brain_browser_execute that take complex nested action arrays (navigate, click, type, screenshot, scroll, wait, extract) have no documentation of what happens if a selector doesn't match, a page load times out, or JavaScript execution fails. No recovery hints.
Parameter descriptions are missing or minimal. brain_focus_set.intensity is described as '0-3 (default: 2)' but doesn't explain what intensity means semantrically or how it affects Brain's behavior. brain_browser_execute.actions array accepts 'type', 'selector', 'value' but lacks constraints on what selector formats are valid or what value means for different action types.
Composition is unclear. brain_focus_set, brain_focus_status, and brain_focus_history are separate tools but their relationships are not documented. Does brain_focus_set immediately update brain_focus_status? Is there eventual consistency? Without this, LLMs cannot plan multi-step workflows reliably.
No pagination or result limiting documented for tools that return lists. brain_strategy_adaptations and brain_benchmark_history have limit parameters, but brain_self_insights describes a limit parameter yet doesn't state the default, maximum, or what happens when results exceed limits.
Destructive operations lack confirmation or dry-run support. brain_strategy_revert and brain_browser_shutdown are reversible/destructive (marked REVERSIBLE and WRITE) but have no warning in descriptions, no dry-run option, and no explicit guidance on consequences. An LLM might call these destructively without realizing.