circuitarium-mcp
Click on "Install 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., "@circuitarium-mcpRun electrical rule checks on the CRUMB project and generate a BOM."
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.
Circuitarium MCP
Local electronics tools for MCP-capable assistants, with support for CRUMB save files and Logisim-evolution projects.
Circuitarium lets an MCP host inspect circuit files without pretending that static analysis is a running simulator. It can trace CRUMB nets, build BOMs, run electrical rule checks, analyze Logisim projects, and optionally ask Logisim-evolution to produce truth tables or run test vectors.
Release 0.3.1 includes 22 tools, nine read-only Resources, and four workflow
Prompts. The server is model-neutral: Codex, Claude Code/Desktop, VS Code,
LM Studio, Jan, or another local MCP host supplies the model and launches
Circuitarium over stdio. Circuitarium itself needs no OpenAI, Anthropic, or
local-model API key.
Quick start
You need:
Node.js 22 or newer;
an MCP client that can launch a local stdio server; and
a dedicated folder containing only the circuit files you want the client to access.
Windows, macOS, and Linux are covered by CI. CRUMB analysis and the static Logisim tools need neither simulator nor Java.
To install and start the local stdio server from a terminal:
npx -y circuitarium-mcp@0.3.1In an interactive terminal this prints a short status panel. In normal use, your MCP client runs the same command and keeps the server connected over stdio.
1. Add Circuitarium to your MCP client
Most clients ask for the same command, arguments, and environment variable:
Command: npx
Arguments: -y circuitarium-mcp@0.3.1
Environment:
CIRCUITARIUM_MCP_ROOT=/absolute/path/to/circuit-workspaceThe first launch can take longer while npm downloads the package. Later starts normally use npm's cache.
Replace the path with the smallest folder that should contain the .cru,
.circ, .vec, and .txt files available to the model. Do not point it at
your home directory or a drive root.
Copyable configurations are available for:
See the client setup guide for platform-specific examples and local-model guidance. The starter workspace recipe copies one synthetic CRUMB fixture plus the full-adder Logisim project into an isolated folder, so a first test does not require access to the rest of a source checkout. Restart or reload the client after adding the server.
Claude Desktop users can instead download
circuitarium-mcp-0.3.1.mcpb
directly and open it as a local bundle. The installer asks for a circuit
workspace and offers optional Logisim JAR and Java settings. The
release page
also includes checksums and the matching npm tarball.
2. Try a circuit with no simulator installed
Paste this into the connected client:
Use Circuitarium. Call
electronics_capabilities. Create the built-inbreadboard-ledfixture asdemo/first-led.cruwithout overwriting anything, analyze it, and runcrumb_check_design. Explain which findings are static inferences rather than simulation results.
Your client may ask you to approve creation of the synthetic file. The tool refuses to overwrite an existing path; on a repeat run, analyze the existing file or choose a new name.
A healthy connection creates a small synthetic file, recognizes its breadboard and LED, and reports two floating-terminal warnings. The fixture is independently authored and safe to redistribute; it is not a CRUMB asset.
3. Check the launcher from a terminal
These commands verify the published launcher without opening a server session:
npx -y circuitarium-mcp@0.3.1 --help
npx -y circuitarium-mcp@0.3.1 --version
npx -y circuitarium-mcp@0.3.1 doctor --smokeIf the bare npx -y circuitarium-mcp@0.3.1 command appears to wait, the server
is working as designed: it is waiting for an MCP host on stdin. Press Ctrl+C
and let the host launch the command itself.
Watch the terminal demo to see the source-checkout command runner inspect a synthetic fixture, build its BOM, and export its netlist. The public package exposes the MCP server, help, version, and doctor commands shown above.
Watch the MCP Inspector demo to see the server running in an independent MCP client, or read the reproducible 22-tool host verification and its sanitized evidence report.
Related MCP server: JLCEDA Codex MCP Bridge
What you can do
Area | Current capabilities |
General electronics | Discover available backends, validate portable experiment descriptions, and plan what evidence is needed to verify circuit claims |
CRUMBLE / CRUMB | Discover, inspect, validate, and compare Unity-era |
Logisim-evolution | Discover and inspect |
Cross-model work | Preserve workspace-relative project references and raw-byte SHA-256 digests so another model can confirm it is reading the same artifact |
CRUMBLE—Circuit Representation & Universal Model Bridge for Laboratory Electronics—is the unofficial CRUMB-specific integration inside Circuitarium. The simulator-neutral tools keep CRUMB-specific assumptions out of future adapters.
The current surface breaks down into three neutral electronics_* tools,
thirteen crumb_* tools, and six logisim_* tools. All tool results use the
electronics.mcp/0.2 result contract, independent of the package version.
Static analysis versus runtime execution
Operation | Simulator or Java required? | What it establishes |
All | No | Facts inferred from a saved Unity-era |
| No | Saved |
| Java 21 and a user-supplied Logisim 4.1.0 all-JAR | The selected project and circuit loaded in one bounded subprocess |
| Java 21 and a user-supplied Logisim 4.1.0 all-JAR | Bounded behavioral evidence for the exact project digest; not a live GUI session |
Resources and Prompts | No | Guidance and workflow templates only; they do not read a project or execute a simulator |
Compatibility and honest limits
Target | Status | Boundary |
CRUMB 1.3.5, Unity-era | Experimental support | Static, version-pinned file analysis under |
Godot-era CRUMB 2.x | Not supported | Requires a separate evidence profile and controlled-save corpus |
Live CRUMB control or simulation | Not implemented | No run, pause, step, signal-read, or GUI bridge |
Arbitrary CRUMB editing | Not implemented | The only public write tool creates one of five fixed synthetic fixtures |
Logisim-evolution 4.1.0 static analysis | Experimental support | Clean-room |
Logisim-evolution 4.1.0 execution | Optional | Bounded, one-shot JAR subprocesses; no live GUI session |
CRUMB electrical rule checks operate on inferred net connectivity and saved component values. They can find supply shorts, an LED placed directly across both rails of one recognized supply, a directly connected resistor whose saved values imply excessive dissipation, and selected floating terminals or IC power pins. They do not trace series paths, prove polarity, calculate general circuit behavior, or certify a physical build.
Circuitarium is experimental educational software, not a safety certification tool. Do not rely on its output alone for mains voltage, battery charging, medical, automotive, life-safety, high-energy, or regulatory work. Use authoritative component documentation, appropriate measurements, and qualified engineering review wherever consequences matter.
File parsing happens locally, but the MCP host may send returned data to a cloud model. Embedded firmware source is omitted by default, and binary EEPROM contents are never returned, but you should still use a narrow workspace with no secrets. Read the security policy for the full trust model.
Optional Logisim runtime
The three static Logisim tools work without Java. To enable component statistics, truth tables, and test vectors:
Install Java 21 or newer.
Download the official
logisim-evolution-4.1.0-all.jar.Add the JAR path to the MCP host configuration.
CIRCUITARIUM_LOGISIM_JAR=/absolute/path/to/logisim-evolution-4.1.0-all.jar
CIRCUITARIUM_JAVA=javaCIRCUITARIUM_JAVA is optional when java already resolves to Java 21 or
newer. On a headless Linux machine, test-vector execution also needs a working
X11 display; Xvfb is sufficient.
Use only a trusted JAR. Circuitarium verifies that it self-reports version 4.1.0, but that response does not authenticate the file or its publisher. Runtime tools may update Logisim's per-user Java preferences and are not an operating-system sandbox.
The repository includes an independently authored full-adder project and vector for a first runtime test. Circuitarium does not bundle or download Logisim-evolution. See the Logisim adapter guide for setup, Linux notes, evidence levels, and subprocess safeguards.
Typical workflows
Review a CRUMB save
Call
electronics_capabilities.Call
crumb_list_projectsif the path is not known. Projects include a digest when requested and within the documented file and aggregate bounds; otherwise the result explains why it was omitted.Call
crumb_analyze_designwithview: "summary".Use
crumb_export_netlist,crumb_trace_net,crumb_check_design, orcrumb_bomonly as the question requires.
Static findings remain file-format inference. Circuitarium does not observe whether CRUMB is running or how the circuit behaves.
Verify a Logisim project
Call
logisim_list_projects, thenlogisim_analyze_design.Treat
logisim_export_netlistas partial static evidence and review its conversion-loss markers.If the optional runtime is available, select an exact circuit and call
logisim_truth_tableorlogisim_run_test_vector.Use
electronics_plan_verificationwhen a claim needs several kinds of evidence or an explicit list of remaining gaps.
Hand work to another model
Keep projectRef, projectDigest, backendId, adapterVersion, and
compatibilityProfile with the handoff. The receiving model should pass the
recorded digest as expectedProjectDigest on its first read. If the bytes have
changed, Circuitarium returns PROJECT_STATE_CONFLICT instead of silently
reusing stale conclusions.
See the cross-model handoff example.
Tool reference
Neutral electronics tools
Tool | Purpose |
| Report callable backends, limitations, and recommended workflows |
| Validate a portable experiment description without claiming it ran |
| Build an evidence plan for explicit circuit claims |
CRUMBLE tools
Tool | Purpose |
| Return the version-pinned CRUMB component catalog |
| Read bounded semantic views of a |
| Compare two digest-guarded saves without modifying either |
| Return a compact format-level inventory |
| Check XML structure and known invariants |
| Create one fixed synthetic fixture without overwriting |
| Discover workspace |
| Fetch one component and optional bounded source window |
| Group recognized components into a bill of materials |
| Query the version-pinned IC package and pin registry |
| Export static, jumper-collapsed inferred nets |
| Produce a paged conductive witness for one terminal |
| Run scoped static electrical rule checks |
Logisim-evolution tools
Tool | Purpose |
| Discover workspace |
| Inspect static project, circuit, component, Pin, Clock, and wire structure |
| Export an explicitly partial coordinate-based neutral netlist |
| Ask the configured JAR to load and inventory a circuit |
| Evaluate a bounded combinational truth table |
| Run a workspace-contained vector and return structured failures |
The nine Resources provide capability metadata, compatibility profiles, synthetic-example metadata, electrical-review and digital-testing guidance, a neutral component-profile schema, and version-pinned component catalogs. The four user-invoked Prompts are:
review-circuit-designcompare-crumb-designsverify-logisim-designhandoff-circuit-project
Resources and Prompts do not read a project or run a simulator by themselves. Clients that do not expose those MCP features can still use all 22 tools. The contract reference documents exact resource URIs, Prompt arguments, result envelopes, errors, output bounds, and tool schemas.
Contributing
Circuitarium is still early, and small, well-evidenced improvements are useful. Good starting points include client setup fixes, synthetic test circuits, source-cited component profiles, parser edge cases, controlled compatibility observations, and scoped roadmap work.
Before changing an adapter or public contract, read the contribution guide, architecture, and provenance policy. Questions and early design ideas belong in Discussions; reproducible bugs, scoped feature requests, and controlled interoperability evidence belong in the issue tracker.
git clone https://github.com/Craftiee/circuitarium-mcp.git
cd circuitarium-mcp
npm ci
npm run lint
npm run checkUse npm run test:coverage for behavioral changes,
npm run package:check for package or launcher changes, and
npm run logisim:e2e for Logisim runtime changes. The Logisim E2E test
requires Java 21 and a separately supplied 4.1.0 all-JAR.
Fixtures must be small, synthetic, independently authored, and safe to redistribute. Do not submit private circuits, firmware, simulator binaries, extracted assets, or third-party circuit designs. Build a minimal synthetic reproduction instead. Report vulnerabilities through GitHub private vulnerability reporting, not a public issue. All contributors must follow the Code of Conduct.
Documentation
Document | Use it for |
Host-specific installation, subscriptions/APIs, and local models | |
Current CRUMB scope and evidence profiles | |
JAR setup, runtime evidence, safety, and Linux notes | |
Exact tools, Resources, Prompts, envelopes, and limits | |
Adapter boundaries and simulator-neutral design | |
Evidence categories and redistribution rules | |
Shipped milestones and planned work | |
Release history |
Privacy Policy
Circuitarium runs locally over stdio, has no telemetry, and does not send circuit files to a maintainer-controlled service. The MCP host and model provider you choose may still process tool arguments and results under their own terms. Read the complete Privacy Policy before granting a host access to a workspace.
Project status and license
Circuitarium MCP is experimental community software released under the
Apache License 2.0. Version 0.3.1 is available on
npm and as a
GitHub release,
and its metadata is listed in the
official MCP Registry.
For help, see SUPPORT.md. Research and teaching users can cite
the project with CITATION.cff.
Circuitarium MCP, CRUMBLE, and the Logisim-evolution adapter are independent, unofficial interoperability work. They are not affiliated with, endorsed by, or sponsored by CRUMB, Logisim-evolution, or their developers. This repository contains no CRUMB or Logisim-evolution simulator code, binaries, extracted assets, logos, or bundled third-party circuit designs. Product names and marks belong to their respective owners.
Available Tools
22 toolscrumb_analyze_designAnalyze a CRUMB design semanticallyARead-onlyIdempotent
Recognizes version-pinned component parameters, terminal attachments, and inferred connection groups. Summary is the bounded default; components and connections use opaque cursors. Embedded firmware and geometry require explicit opt-in.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| view | No | summary | |
| limit | No | ||
| cursor | No | ||
| topologyMode | No | known-board-v1.3.5 | |
| includeGeometry | No | ||
| includeSourceCode | No | ||
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnly/idempotent annotations by disclosing that the default view is a bounded summary, that components/connections use opaque cursors for pagination, and that embedded firmware/geometry require explicit opt-in. These are meaningful behavioral details not present in annotations, enhancing transparency.
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 sentences, each packed with specific information: what is recognized, the default/pagination behavior, and opt-in requirements. No filler or repetition; it is efficiently structured and front-loaded.
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 8-parameter tool with low schema coverage, the description covers the most important behavioral aspects, and an output schema exists so return values are not required. Missing context on topologyMode and expectedProjectDigest usage, but overall the description provides a solid context for successful use.
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 only 25% schema coverage, the description compensates by explaining key parameters: 'summary default' and 'opaque cursors' clarify view and cursor; 'require explicit opt-in' clarifies includeGeometry/includeSourceCode. However, it does not explain topologyMode or limit, leaving some parameters underspecified.
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?
Title and description clearly state the tool's purpose: to analyze a CRUMB design semantically. Description specifies what it recognizes (version-pinned component parameters, terminal attachments, inferred connection groups), and this distinguishes it from sibling tools like crumb_inspect_design (raw inspection) and crumb_validate_design (validation).
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 implies when this tool is useful (semantic analysis of component parameters, connections) but does not explicitly state when to use it over alternatives or when not to use it. No exclusions or alternative references are provided, so usage guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_bomBuild a bill of materialsARead-onlyIdempotent
Groups recognized components by kind and decoded part values into quantities. State values such as switch positions are excluded from part identity; unknown and schema-mismatched components stay visible as their own lines.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| limit | No | ||
| expectedProjectDigest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent behavior. The description adds useful behavioral details about grouping logic, exclusion of state values from part identity, and visibility of unknown components, going beyond the structured annotations without contradicting 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?
The description is two sentences long, front-loads the core behavior, and contains no filler or redundant information. Every phrase adds 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?
The main behavior and edge cases (excluded state values, unknown components) are well covered, and the output schema handles return values. However, the lack of parameter semantics for 'limit' and 'expectedProjectDigest' leaves some gaps in full self-sufficiency.
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%, with only 'path' having a description in the schema. The description does not explain 'limit' or 'expectedProjectDigest', and does little to compensate for the missing parameter semantics beyond implying the core grouping behavior.
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 states the tool groups components by kind and decoded part values into quantities, using a specific verb and resource. It also distinguishes this tool from siblings by describing the special handling of state values and unknown components.
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 implies when to use the tool (to get a bill of materials) but does not explicitly state when to use it versus alternatives, nor does it mention any exclusions. It provides clear context but lacks explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_check_designRun electrical rule checksARead-onlyIdempotent
Lints the inferred netlist: supply shorts, LEDs directly across the rails, shorted two-terminal parts, floating IC power pins, resistor power ratings, and floating terminals. Findings carry evidence confidence and rule basis; a rule violation returns ok=true with data.valid=false.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| topologyMode | No | known-board-v1.3.5 | |
| applySwitchStates | No | ||
| expectedProjectDigest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent behavior. The description adds meaningful context: findings include evidence confidence and rule basis, and a rule violation returns ok=true with data.valid=false. This clarifies the non-boolean success semantics and result structure, going beyond what annotations convey.
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, front-loaded with the action ('Lints the inferred netlist'), and efficiently lists check categories without redundancy. Every sentence contributes meaningful 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?
Core purpose and result behavior are covered, and an output schema exists so return details are not needed. However, the impact of key parameters (topologyMode, applySwitchStates) on the checks is not explained, leaving some ambiguity for correct invocation. Adequate but not fully complete for a tool with multiple optional parameters.
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 25% (only 'path' has a description). The description does not mention any of the parameters, leaving topologyMode, applySwitchStates, and expectedProjectDigest unexplained. With such low schema coverage, the description should compensate, but it does not add parameter 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?
The description clearly states the tool 'lints the inferred netlist' and enumerates specific electrical rule checks (supply shorts, LEDs across rails, etc.), making its function concrete. This distinguishes it from sibling tools like crumb_analyze_design or crumb_validate_design by focusing on electrical rule verification.
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 implies use for electrical rule checking of a netlist, but does not explicitly state when to prefer this over other crumb tools (e.g., crumb_validate_design for general validation or crumb_analyze_design for analysis). No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_compare_designsCompare CRUMB files under the Unity profileARead-onlyIdempotent
Read-only, GUID-matched comparison of a baseline and candidate .cru under crumb.unity/1.3.5. Distinguishes exact bytes, modeled equivalence, root changes, component changes, and unverified payload signatures without returning raw XML, firmware, EEPROM bytes, or thumbnails.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | summary | |
| limit | No | ||
| cursor | No | ||
| baselinePath | Yes | Workspace-relative baseline .cru project ref | |
| topologyMode | No | known-board-v1.3.5 | |
| candidatePath | Yes | Workspace-relative candidate .cru project ref | |
| includeGeometry | No | ||
| compatibilityProfile | No | crumb.unity/1.3.5 | |
| expectedBaselineDigest | No | Optional sha256: digest previously recorded for the baseline | |
| expectedCandidateDigest | No | Optional sha256: digest previously recorded for the candidate |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavioral context: GUID-matched comparison, specific difference categories (exact bytes, modeled equivalence, root changes, component changes, unverified payload signatures), and explicit exclusions. This goes beyond what annotations provide and sets clear output constraints. No contradiction.
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, front-loaded with the core action and scope ('Read-only, GUID-matched comparison'), and the second sentence efficiently enumerates what it distinguishes and what it omits. Every word adds 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?
The description gives a strong overview of the tool's behavior and output boundaries, and an output schema is present so return values are documented elsewhere. However, given the tool has 10 parameters and 60% lack schema descriptions, a brief mention of view modes, pagination, or topology options would improve completeness, but the provided overview is still adequate for basic understanding.
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 only 40% parameter description coverage (baselinePath, candidatePath, expectedBaselineDigest, expectedCandidateDigest). The tool description does not explain any parameter semantics, leaving view, limit, cursor, topologyMode, includeGeometry, and compatibilityProfile without contextual guidance. Given the low schema coverage, the description was expected to compensate but does not mention any 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 clearly specifies a comparison tool ('Compare CRUMB files') with a particular scope: baseline vs candidate .cru under crumb.unity/1.3.5. It lists specific output categories (exact bytes, modeled equivalence, root/component changes, payload signatures) that distinguish it from sibling tools like crumb_inspect_design or crumb_validate_design.
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 clear context: use for read-only, GUID-matched comparison of two CRUMB design files under a specific compatibility profile. It does not explicitly name alternatives or state when not to use it, but the purpose is unambiguous and the exclusions (no raw XML, firmware, EEPROM, thumbnails) help set expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_component_catalogList recognized CRUMB component schemasARead-onlyIdempotent
Returns the version-pinned CRUMB tool-ID catalog, payload signatures, typed parameters, terminal labels, confidence values, and their machine-readable evidence vocabulary. Optionally filter by toolId.
| Name | Required | Description | Default |
|---|---|---|---|
| toolId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true and idempotentHint=true, covering safety and side-effect profile. The description adds context like 'version-pinned' and 'machine-readable evidence vocabulary,' which gives useful extra detail about the response. However, it does not describe pagination, output size limits, or any potential error conditions, though with an output schema present, this is less critical.
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, dense sentence that packs all necessary information without redundancy. It is front-loaded with the action ('Returns') and lists the content items in a structured, comma-separated manner. Every phrase contributes value, making it both concise and complete.
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 an output schema present, return values are already defined, so the description need not detail them. The tool is read-only, has one optional parameter, and the description covers its primary behavior and filtering ability. The main gap is the absence of usage guidance, but that is scored separately. Overall, the description is sufficiently complete for an agent to understand and call the 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?
The schema only defines toolId as an integer with min/max. The description says 'Optionally filter by toolId,' which adds meaning that this parameter filters the returned catalog. Yet it does not clarify what a toolId represents (e.g., which catalog IDs are valid, whether it aligns with component schema IDs) or how filtering behaves (exact match, partial). Given 0% schema description coverage, a bit more detail would be helpful.
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 starts with 'Returns' and clearly specifies the resource: 'version-pinned CRUMB tool-ID catalog, payload signatures, typed parameters, terminal labels, confidence values, and their machine-readable evidence vocabulary.' This is a specific verb+resource that distinguishes it from sibling tools like crumb_get_component (which likely fetches a single component) and crumb_ic_reference (which likely references datasheets). The optional filter by toolId further clarifies scope.
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 provides no when-to-use guidance, exclusions, or alternatives. It only mentions 'Optionally filter by toolId,' which is a parameter usage detail, not a high-level usage guideline. Without context on when to choose this catalog over related tools (e.g., crumb_get_component), an agent lacks direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_export_netlistExport named electrical netsARead-onlyIdempotent
Collapses jumper wires out of the inferred connection graph and returns paged electrical nets with component terminals, VCC/GND names inferred from DC supply terminals, and optional saved-switch-state merges. Provenance and confidence are explicit.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| limit | No | ||
| cursor | No | ||
| topologyMode | No | known-board-v1.3.5 | |
| applySwitchStates | No | Merge nets across saved switch positions using installed-build semantics | |
| expectedProjectDigest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds valuable behavioral context: it collapses jumper wires, infers VCC/GND names from DC supply terminals, supports optional switch-state merges, and explicitly mentions provenance/confidence. These details go beyond the annotations and clarify what the operation does.
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, front-loaded with the main purpose, and each clause adds meaningful detail. No filler or redundant repetition of schema info.
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?
An output schema exists, so return values are already covered. However, the description lacks explanation for topologyMode and expectedProjectDigest parameters and gives no explicit usage guidance. It covers the core behavior but leaves important context gaps for full agent decision-making.
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% (path and applySwitchStates have descriptions). The description adds meanings for 'paged' (limit/cursor) and 'saved-switch-state merges' (applySwitchStates), but leaves topologyMode enum values and expectedProjectDigest completely unexplained. The description only partially compensates for the schema 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 clearly states the tool 'returns paged electrical nets' after collapsing jumper wires, and the title says 'Export named electrical nets'. It distinguishes from sibling tools like logisim_export_netlist by mentioning crumb-specific behaviors such as VCC/GND name inference and saved-switch-state merges.
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 or alternative tools are mentioned. The description implies usage for netlist export with jumper collapse and optional switch-state merging, but does not say when to prefer this over siblings like crumb_trace_net or logisim_export_netlist. Usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_generate_fixtureGenerate a synthetic CRUMB fixtureA
Creates one known fixture without overwriting. Provide outputPath for a file artifact; raw XML is returned only when includeXml=true.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | No | ||
| includeXml | No | ||
| outputPath | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the non-overwrite behavior, which is a meaningful safety trait beyond the annotations. It also clearly states that raw XML is only returned when includeXml=true, providing return-behavior transparency. Since annotations already cover read-only/destructive hints, this additional detail is valuable but not exhaustive.
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, front-loaded with purpose and immediately followed by parameter guidance. Every sentence contributes meaning without redundancy, matching the conciseness of high-quality tool descriptions.
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?
Given the presence of an output schema and annotations, the description focuses on the essential generation behavior: creating a known fixture, writing to a file, or returning XML. It fully explains the primary output modes and the no-overwrite guarantee. It could be more explicit about what happens if neither outputPath nor includeXml is provided, but the output schema likely covers 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?
With schema description coverage at 0%, the description must compensate. It does explain the role of outputPath (file artifact) and includeXml (raw XML return), but it leaves name and kind to schema naming and enum values. This partial explanation is helpful but does not fully cover all 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?
The description 'Creates one known fixture without overwriting' clearly states the specific action (create), resource (fixture), and scope (one known kind). It distinguishes from sibling tools like crumb_inspect_design and crumb_validate_design, which read or validate rather than generate.
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 provides clear context on how to use the tool: 'Provide outputPath for a file artifact; raw XML is returned only when includeXml=true.' This gives practical invocation guidance, but it does not explicitly mention when to choose this tool over alternatives or list excluded use cases. The unique generation purpose is implied by the name, but not stated as a rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_get_componentFetch one CRUMB component in full detailARead-onlyIdempotent
Returns a single component by id with parameters, terminals, geometry, its inferred connection groups, and windowed access to embedded firmware source past the analyze cap. The read-back companion for iterative work on one part.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| componentId | Yes | Component id from analyze/netlist output; matching is case-insensitive | |
| sourceOffset | No | Character offset into embedded firmware source for continued reads | |
| topologyMode | No | known-board-v1.3.5 | |
| includeGeometry | No | ||
| includeSourceCode | No | ||
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate safety. It adds valuable context: windowed access to firmware source (pagination via sourceOffset), the concept of an 'analyze cap,' and inferred connection groups—behaviors not visible in annotations. This enriches the agent's understanding without contradiction.
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 compact sentences deliver the core purpose and key differentiator without redundancy. The first sentence lists the return contents, the second positions it for iterative workflows. Every word 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?
With an output schema present, the description need not detail return fields. It covers the tool's purpose, the main resource, and a distinctive behavior (windowed source access). It does not explain topologyMode or expectedProjectDigest, but for a read-only companion with strong annotations and output schema, the context is 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 description coverage is 57%, covering path, componentId, sourceOffset, and expectedProjectDigest. The description adds meaning to includeGeometry and includeSourceCode by mentioning geometry and source code, and 'past the analyze cap' relates to sourceOffset. However, topologyMode is left unexplained, and the description does not elaborate on all parameter interactions, so it partially compensates.
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 opens with a specific verb ('Returns') and identifies the exact resource ('a single component by id') and its contents (parameters, terminals, geometry, connection groups, firmware source). It also positions itself as 'read-back companion' for iterative work, clearly distinguishing it from sibling tools that analyze or list components.
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 'read-back companion for iterative work on one part' implies when to use this tool (when focusing on a single component), and the mention of 'past the analyze cap' hints at an alternative (crumb_analyze_design) that has a cap. However, it does not explicitly name alternatives or state exclusions, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_ic_referenceLook up CRUMB IC packages and pinoutsARead-onlyIdempotent
Queries the version-pinned tool-5 IC registry by prefabId or by a label/package substring (for example "74HC138"). Returns package labels, ordered pin names, and explicit unresolved pins.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Case-insensitive substring matched against IC label and package name | |
| prefabId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the annotations: it notes the registry is 'version-pinned' (reproducible), pin names are 'ordered', and 'explicit unresolved pins' are returned, which is a valuable edge-case disclosure. These complement the readOnlyHint and idempotentHint annotations rather than contradict them. The example query also gives a concrete feel for behavior, though it stops short of describing error handling or interaction of both params.
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 long, front-loaded with the core action, and includes an illustrative example. Each sentence adds distinct value: the first explains the query modes and registry pinning, the second details the return fields. There is no extraneous text or repetition.
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 lookup tool with two optional parameters and an output schema, the description covers the essential usage: query modes, example, and return structure. The version-pinning note adds reproducibility context. Missing are explicit alternatives/usage boundaries and error/edge-case handling (e.g., no matches, both params given), but these are secondary given the annotations and 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 coverage is only 50% (query has a description, prefabId does not). The description compensates by explaining both parameters: query is matched as a 'label/package substring' and prefabId is the alternative lookup mode. It also provides a concrete example ('74HC138') that clarifies the substring semantics. However, it does not specify what happens when both parameters are provided, how prefabId is formed, or precedence between them, leaving some ambiguity.
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 specifies the verb 'Queries', the resource 'version-pinned tool-5 IC registry', and the exact inputs (prefabId or label/package substring) and outputs (package labels, ordered pin names, explicit unresolved pins). It clearly states what the tool does without being tautological. However, it does not explicitly differentiate from sibling tools like crumb_get_component or crumb_component_catalog, which may also retrieve component data.
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 intended use is implied by the title and description (looking up IC packages/pinouts), and the query modes are stated. However, there is no explicit when-to-use vs. alternatives, no mention of preferred scenarios, and no explanation of edge cases like multiple matches or empty results. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_inspect_designInspect compact CRUMB metadataARead-onlyIdempotent
Returns a bounded save summary and tool-ID counts. Use crumb_analyze_design for paginated semantic component and connection details.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds behavioral context beyond annotations: it states the output is 'bounded' and consists of a save summary and tool-ID counts, and that it is not for paginated semantic details. This helps the agent form accurate expectations about scope and granularity.
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's purpose and followed by a pointer to the sibling tool. Every word earns its place; no filler or repetition of schema/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?
Given the tool has an output schema, annotations, and only two well-documented parameters, the description is complete enough to guide selection and invocation. It communicates the compact, bounded nature and the existence of a more detailed alternative, making it fully contextual for an 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% (both 'path' and 'expectedProjectDigest' have clear descriptions). The tool description does not add parameter-level semantics, but that's acceptable given the schema carries the full burden. Baseline 3 is 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 clearly states the tool returns 'a bounded save summary and tool-ID counts', identifying the specific resource and output type. It also distinguishes itself from the sibling crumb_analyze_design, which provides paginated semantic details, eliminating ambiguity.
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 directs the agent to use crumb_analyze_design for paginated semantic component and connection details, effectively conveying when this compact inspection tool is appropriate. This is a clear when-to-use vs. alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_list_projectsList CRUMB projects in the workspaceARead-onlyIdempotent
Enumerates .cru files under the workspace root (or one subdirectory) with size, modification time, and SHA-256 digest, so a model can discover projects without being handed a path.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Workspace-relative directory ref to list | . |
| limit | No | ||
| recursive | No | ||
| includeDigests | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds behavioral context by specifying the return metadata (size, modification time, SHA-256 digest) and the root/subdirectory scoping. It does not contradict annotations and goes beyond what the structured hints provide.
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 well-structured sentence communicates the action, scope, and purpose without any fluff or repetition. Every element is meaningful and front-loaded.
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?
Given that an output schema exists, return values are already documented. Annotations cover safety, and the description provides the core purpose and typical scope. Minor gap: the phrase 'or one subdirectory' is slightly ambiguous regarding recursion default, but the tool is otherwise adequately described for its simplicity.
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 25% (only 'dir' has a description), and the tool description fails to meaningfully explain the remaining parameters. It mentions digest inclusion and subdirectory traversal in passing but does not clarify 'limit', 'recursive', or 'includeDigests' semantics, leaving the agent with incomplete parameter understanding.
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 uses a specific verb ('Enumerates') and identifies the resource ('.cru files' representing CRUMB projects) and scope ('under the workspace root or one subdirectory'), clearly distinguishing it from sibling tools like crumb_inspect_design or crumb_analyze_design. The title reinforces the purpose.
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 states when to use this tool: 'so a model can discover projects without being handed a path.' This implies discovery/listing context and is distinct from siblings that inspect, analyze, or validate designs. However, it does not explicitly exclude alternatives or mention when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_trace_netTrace one inferred CRUMB electrical netARead-onlyIdempotent
Selects one component terminal by stable index and returns a paged deterministic connectivity witness with structured attachment, board, jumper, and optional saved-switch provenance. It is static conductive inference, not current flow, path enumeration, or simulation.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| limit | No | ||
| cursor | No | ||
| componentId | Yes | Case-insensitive component id from CRUMB analysis | |
| topologyMode | No | known-board-v1.3.5 | |
| terminalIndex | Yes | Zero-based terminal index; canonical within the exact project bytes | |
| applySwitchStates | No | Apply persisted switch closures as conditional installed-build evidence | |
| expectedTerminalName | No | Optional exact-name guard for cross-model handoff | |
| expectedProjectDigest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints, and the description adds valuable behavioral context: determinism, pagination, and provenance details ('structured attachment, board, jumper, and optional saved-switch provenance'). It also clarifies that it is static connectivity inference, not simulation, which goes 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 concise sentences with the main action front-loaded. No unnecessary words or repetition, and it packs in key differentiators and behavioral notes.
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?
Given the tool's complexity (9 params) and the presence of an output schema, the description provides sufficient context about the tool's purpose, determinism, pagination, and provenance. It doesn't detail return fields (not needed) and is concise, though it could slightly expand on usage conditions.
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 56%, leaving parameters like limit, cursor, and expectedProjectDigest undocumented. The description mentions 'stable index' and 'paged' and 'saved-switch' which partially maps to terminalIndex, limit/cursor, and applySwitchStates, but it doesn't fully compensate for the missing parameter explanations in 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 clearly states the action ('Selects one component terminal by stable index') and the resource (a connectivity witness), with specific detail about what is returned. It also distinguishes itself from siblings by noting it is 'not current flow, path enumeration, or simulation,' which is precise and differentiates it from other 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?
The description provides context on the tool's static conductive inference and explicitly excludes other analysis types, giving implicit guidance on when not to use it. However, it doesn't name specific alternative tools or provide explicit 'use this when' scenarios, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crumb_validate_designValidate a CRUMB designARead-onlyIdempotent
Performs XML and CRUMB structural checks without launching the game. A bad design returns ok=true and data.valid=false.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .cru project ref | |
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, idempotentHint=true), the description adds critical behavioral detail: it does not launch the game, and it describes the return semantics for a bad design ('ok=true and data.valid=false'). This gives the agent insight into what to expect from the tool's execution, beyond what annotations alone provide.
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, front-loaded with the core purpose, and every phrase earns its place. No redundancy or filler. It efficiently conveys the tool's function, key constraint, and a notable output behavior.
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?
Given the output schema exists and annotations are present, the description is complete. It states the tool performs validation, does not launch the game, and clarifies the return behavior for invalid designs. The tool's complexity is low, and nothing essential is missing for an agent to select and 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?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no additional meaning about the parameters themselves; it focuses on the tool's overall behavior. The mention of return values is output-related, not parameter-related.
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 states the tool's function: 'Performs XML and CRUMB structural checks without launching the game.' This identifies a specific verb (performs checks) and resource (CRUMB design), and distinguishes it from siblings like crumb_analyze_design or crumb_inspect_design by emphasizing no game launch. The purpose is unambiguous.
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 provides clear context for when to use this tool: when you need XML/structural validation without launching the game. However, it does not explicitly name alternative tools or state when not to use it. The 'without launching the game' context is a strong differentiator but lacks explicit exclusions or sibling comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
electronics_capabilitiesOrient to Circuitarium MCPARead-onlyIdempotent
Zero-argument onboarding for model-neutral conventions, callable backends, truthful limitations, and recommended workflows. Call this first when unsure.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable context by mentioning 'truthful limitations' and 'recommended workflows.' This goes beyond the annotations and reassures that the tool provides honest constraints and guidance. No contradiction with 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, well-structured sentence that front-loads the key fact ('Zero-argument onboarding') and then lists contents. It is efficient with no wasted words.
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 onboarding tool with an output schema, the description covers the essential content areas (conventions, backends, limitations, workflows). It fully describes the tool's scope without needing to document parameters or return values, and the output schema covers specific return structure.
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 has zero parameters, so the baseline for parameter semantics is 4. The description reinforces that it's zero-argument but adds no additional parameter meaning, which is unnecessary given no parameters 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 clearly states the tool is for orientation/onboarding to Circuitarium MCP, listing specific content areas (conventions, backends, limitations, workflows). It uses a specific verb ('orient') and is distinguishable from sibling tools which perform specific design/logic operations rather than meta-level overview.
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?
Explicit guidance is given: 'Call this first when unsure.' This establishes when to use the tool and implies that if you know what you're doing, you can skip it. It also clarifies that it's a zero-argument first step, which is direct and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
electronics_plan_verificationPlan evidence-aware electronics verificationARead-onlyIdempotent
Builds a deterministic, simulator-neutral plan for explicit claims using bounded caller-reported evidence. It reads no files, runs no tools or simulators, authenticates no receipts, and never certifies physical hardware.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | Yes | ||
| target | Yes | ||
| evidence | No | ||
| declaredInterface | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral constraints beyond the annotations: deterministic, simulator-neutral, bounded evidence, no file reads, no tool execution, no receipt authentication, and never certifies physical hardware. These details are not present in the annotations and significantly enhance the agent's understanding of the tool's capabilities and limitations.
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 dense sentences: the first states the core purpose, the second lists critical constraints. Every phrase contributes value (e.g., 'deterministic,' 'simulator-neutral,' 'bounded,' 'reads no files'), with no redundant or filler words.
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 highly complex tool with a rich schema and annotations, the description captures the essential nature and key constraints. It does not detail all parameters or return values, but the extensive input schema and output schema (present in the context) fill in those gaps, making it sufficient for initial tool selection.
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 must compensate. It mentions 'explicit claims' and 'bounded caller-reported evidence,' giving some meaning to the claims and evidence parameters, but it says nothing about the target or declaredInterface parameters. Given the complexity of the schema, this partial coverage is insufficient.
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 uses specific language: 'Builds a deterministic, simulator-neutral plan for explicit claims using bounded caller-reported evidence.' It clearly identifies the action (building a plan) and the object (explicit claims), and differentiates from sibling validation tools by stating it reads no files and runs no tools or simulators.
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 provides clear context that this tool is for planning, not execution, by explicitly stating 'It reads no files, runs no tools or simulators.' This implies when to use it versus actual validation tools, but it does not name specific alternatives or provide an explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
electronics_validate_experimentValidate a portable electronics experimentARead-onlyIdempotent
Checks an arbitrary JSON value against the simulator-neutral circuit, firmware, probe, assertion, and timing contract. Invalid input returns ok=true and data.valid=false with diagnostics.
| Name | Required | Description | Default |
|---|---|---|---|
| experiment | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral detail beyond the annotations: it specifies that invalid input returns 'ok=true and data.valid=false with diagnostics.' This discloses a key aspect of the tool's behavior (validation outcome for invalid input). Annotations already signal read-only, idempotent, and closed-world behavior, and the description does not contradict them. Slightly more context on valid output could be included, but the provided detail is useful.
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 concise, with two sentences that front-load the core purpose and then mention the invalid-input behavior. No wasted words or redundancy, and the structure is clear: function, scope, and outcome for a key case.
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?
Given the tool's complexity (validation against multiple contract facets), the description captures the essential purpose and a notable edge case. Since an output schema exists, it can document return values, and the description does not need to explain them. The lack of context about the exact contract format is a minor gap, but the description is adequate for a validation tool with moderate complexity.
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 description coverage is 0%, so the description must compensate. However, it only says 'arbitrary JSON value' and does not elaborate on the expected structure of the 'experiment' parameter. The contract types (circuit, firmware, probe, assertion, timing) are mentioned but not connected to how the JSON should be organized. The schema itself only defines a generic JSON type, so the description adds little practical meaning for constructing a valid input.
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 states the tool's purpose: it validates an arbitrary JSON value against a 'simulator-neutral circuit, firmware, probe, assertion, and timing contract.' The verb 'Checks' is specific, the resource is 'experiment,' and the scope (contract validation) distinguishes it from sibling tools focused on design inspection or analysis.
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 provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It does not mention that this is for experiments specifically, nor does it reference sibling tools like crumb_validate_design. The agent must infer usage solely from the tool name and the phrase 'portable electronics experiment,' which is minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_analyze_designAnalyze a Logisim-evolution projectARead-onlyIdempotent
Parses bounded .circ XML into project, circuit, pin, clock, component, and explicit conversion-loss summaries. Static parsing is not simulation evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .circ project ref | |
| circuit | No | Circuit name; defaults to the declared main circuit | |
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds important limitations: 'bounded' parsing and a caveat that static parsing is not simulation evidence. It also mentions 'explicit conversion-loss summaries,' signaling potential data-loss reporting. This adds meaningful context beyond the annotations without contradicting 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?
The description is two sentences with no filler. The first sentence front-loads the core action and deliverables; the second adds a critical caveat. Every word 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?
Given the presence of an output schema, read-only and idempotent annotations, and a concise description with a key limitation warning, the description is complete for a static analysis tool. It conveys the scope (bounded XML), the domain (Logisim-evolution), and the non-simulation nature without needing to enumerate return fields.
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 input schema has 100% coverage, describing all three parameters (path, circuit, expectedProjectDigest) with clear types and descriptions. The tool description does not add parameter-specific details beyond what the schema already provides, so the baseline score of 3 is 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 clearly states a specific verb ('Parses') and resource ('bounded .circ XML') and enumerates the output artifacts (project, circuit, pin, clock, component, conversion-loss summaries). It effectively distinguishes itself from sibling tools like crumb_analyze_design via the .circ format and from logisim_export_netlist or logisim_truth_table by focusing on summary parsing.
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 provides an explicit when-not: 'Static parsing is not simulation evidence.' This warns against using the tool when simulation behavior is required. It does not name a specific alternative like logisim_run_test_vector, but the exclusion is clear and actionable. The purpose of static analysis is implied, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_component_statsLoad a project and count Logisim componentsBIdempotent
Invokes the separately installed JAR, after it self-reports Logisim-evolution 4.1.0, with --tty stats. Success proves that configured process loaded the staged project, not behavioral simulation or binary authenticity.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .circ project ref | |
| limit | No | ||
| circuit | No | Circuit name; defaults to the declared main circuit | |
| timeoutMs | No | ||
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses an external dependency ('separately installed JAR'), a version precondition ('after it self-reports Logisim-evolution 4.1.0'), and a limitation ('Success proves that configured process loaded the staged project, not behavioral simulation or binary authenticity'). This adds value beyond annotations, which only indicate idempotent and non-destructive 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?
The description is only two sentences and not verbose, but it is not well-structured: the primary purpose is in the title, and the first sentence leads with the invocation mechanism rather than the intended outcome. Some phrasing is cryptic ('--tty stats', 'staged project').
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 output schema and annotations provide some coverage, but the description lacks usage context, does not explain what 'stats' includes, and does not address the external JAR prerequisite or installation. It also fails to position the tool among siblings, making it incomplete for effective selection and 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?
The description adds no parameter information. The schema covers 3 of 5 params with descriptions (path, circuit, expectedProjectDigest), but limit and timeoutMs are undocumented. The description does not compensate for the missing coverage or clarify parameter usage.
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 title clearly states 'Load a project and count Logisim components', and the description adds invocation details ('Invokes the separately installed JAR... with --tty stats'). However, the description focuses on the mechanism rather than explicitly stating the counting purpose, and it does not distinguish from sibling tools like logisim_analyze_design.
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 provides no explicit guidance on when to use this tool versus alternatives. The caveat 'not behavioral simulation or binary authenticity' is a clarification, not a usage directive. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_export_netlistExport a partial Logisim netlistARead-onlyIdempotent
Exports simulator-neutral coordinate-endpoint nets with explicit loss markers. It does not infer unmodeled gate geometry, mid-segment junctions, or behavior.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .circ project ref | |
| limit | No | ||
| cursor | No | ||
| circuit | No | Circuit name; defaults to the declared main circuit | |
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds meaningful behavioral traits: 'coordinate-endpoint nets with explicit loss markers' and the explicit non-inference of geometry/junctions/behavior. This goes beyond the annotations and gives the user a clear picture of what the output will and won't contain. No contradiction with 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?
Two concise sentences with no fluff. The first sentence states the action and the second clarifies limitations. Information is front-loaded, and every word earns its place. Perfectly sized for the tool's complexity.
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 an output schema present, the description needn't detail return values. It covers the core semantics (coordinate-endpoint nets, loss markers, non-inference) and limitations. It could elaborate on pagination behavior or the purpose of expectedProjectDigest, but these are either inferable or present in the schema. Given the tool's moderate complexity, the description is nearly complete but not exhaustive.
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 60%, covering path, circuit, and expectedProjectDigest, but limit and cursor lack descriptions. The tool description adds no parameter-specific details, so it doesn't compensate for the gaps. However, the parameter names (limit, cursor) are self-explanatory, and the title's 'partial' hints at pagination. The schema plus implicit naming provide a baseline understanding, so a 3 is 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 clearly states the tool exports simulator-neutral coordinate-endpoint nets with loss markers, which is a specific verb+resource. It also distinguishes itself by noting what it does not infer (gate geometry, mid-segment junctions, behavior), giving it a defined scope beyond a generic export. However, it doesn't explicitly name sibling alternatives, 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 implies usage through its limitations: 'does not infer unmodeled gate geometry, mid-segment junctions, or behavior' tells the user this is for partial netlists only. It provides useful context but does not explicitly say when to use this tool versus alternatives like crumb_export_netlist, nor does it state exclusions. This is adequate but lacks clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_list_projectsList Logisim-evolution projectsARead-onlyIdempotent
Discovers workspace .circ projects with stable raw-byte digests. This is static file discovery and does not launch Logisim.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Workspace-relative directory ref to list | . |
| limit | No | ||
| recursive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds meaningful behavioral context by clarifying that no Logisim launch occurs and that digests are raw-byte based, which helps set expectations. No contradiction with 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?
Two succinct sentences front-load the main purpose and end with a clarifying note. Every word earns its place, with no fluff.
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 is simple (list projects) and the presence of an output schema covers return value details. The description covers key behavioral aspects (static, no launch, digest computation) that are not in annotations. Minor gap: 'stable raw-byte digests' is not expanded, but that is acceptable given the 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 coverage is only 33% (only 'dir' has a description); 'limit' and 'recursive' are left to the schema's type/defaults. The description does not explain any parameter semantics, such as how 'dir' is resolved or how 'recursive' affects discovery. Since the description fails to compensate for the low schema coverage, this dimension is weak.
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 uses the specific verb 'Discovers' with a clear resource: 'workspace .circ projects'. It adds a distinctive detail ('stable raw-byte digests') and explicitly contrasts with launching Logisim, separating it from sibling tools like logisim_analyze_design.
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 provides clear context: it's static file discovery and does not launch Logisim, implying use when you need to list projects without executing the application. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_run_test_vectorRun a Logisim test vectorBIdempotent
Invokes the separately installed JAR, after it self-reports Logisim-evolution 4.1.0, with staged snapshots of a workspace-contained project and .vec/.txt file. Assertion failures return ok=true with data.valid=false.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .circ project ref | |
| circuit | No | Circuit name; defaults to the declared main circuit | |
| timeoutMs | No | ||
| vectorPath | Yes | Workspace-relative .vec or .txt test-vector ref | |
| maxFailures | No | ||
| expectedVectorDigest | No | ||
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool uses staged snapshots (non-destructive), requires a self-reporting JAR version, and specifies how assertion failures are represented in the return value. These details go beyond the annotations, which already state idempotence and non-destructiveness.
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 long, winding sentence that starts with implementation details rather than the core action, followed by a short sentence about failures. It could be more front-loaded and concise, but it is not excessively verbose.
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?
Given the output schema exists and annotations cover safety, the description is somewhat complete but misses the overall purpose and does not describe success behavior or preconditions. With 7 parameters and no parameter semantics, it leaves a notable gap in 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 schema covers only 57% of parameter descriptions, leaving timeoutMs, maxFailures, and expectedVectorDigest undocumented. The description adds little beyond vague references to the project and vector file, failing to explain the purpose or constraints of these 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?
The description clearly indicates the tool runs a test vector against a Logisim project, referencing the project and .vec/.txt file. It distinguishes from sibling tools by focusing on test vector execution, though it buries the main verb in implementation detail about the JAR.
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 provides no explicit guidance on when to use this tool versus alternatives like logisim_analyze_design or logisim_truth_table. Usage is only implied by the name and the mention of test vectors, with no mention of scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logisim_truth_tableSimulate a bounded Logisim truth tableCIdempotent
Invokes the separately installed JAR, after it self-reports Logisim-evolution 4.1.0, in CSV/binary table mode after statically bounding declared input width.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Workspace-relative .circ project ref | |
| limit | No | ||
| circuit | No | Circuit name; defaults to the declared main circuit | |
| timeoutMs | No | ||
| maxInputBits | No | ||
| expectedProjectDigest | No | Optional sha256: digest from a prior cross-model handoff |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| context | Yes | |
| summary | Yes | |
| diagnostics | Yes | |
| nextActions | Yes | |
| contractVersion | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that an external JAR is invoked and that a version self-report is checked, which is beyond the annotations. However, it does not mention potential side effects, failure modes, or the requirement for the JAR to be installed, leaving significant behavioral gaps.
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 dense sentence with no fluff, but it packs multiple clauses (JAR invocation, version check, mode, bounding) into a somewhat convoluted structure. It is reasonably concise but could be clearer with segmentation.
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?
Given the 6-parameter schema and external dependency, the description is insufficient. It does not mention prerequisites like the JAR installation, output details, or parameter semantics. The output schema exists but does not cover the operational context needed 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 only 50%, and the description does not compensate by explaining the undocumented parameters. It indirectly references input width bounding via 'statically bounding declared input width' but fails to clarify limit, timeoutMs, or maxInputBits semantics.
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 states it simulates a Logisim truth table via JAR invocation, and the title reinforces this. The mention of CSV/binary table mode distinguishes it from sibling tools like logisim_analyze_design. However, the description is unnecessarily technical and focuses on implementation details rather than the user-facing function.
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 provided on when to use this tool versus alternatives such as logisim_run_test_vector or logisim_analyze_design. The description lacks context for tool selection, leaving the agent to infer applicability from the tool name alone.
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.
22 tool updates
v0.3.1- First observed
crumb_analyze_design - First observed
crumb_bom - First observed
crumb_check_design - First observed
crumb_compare_designs - First observed
crumb_component_catalog - First observed
crumb_export_netlist - First observed
crumb_generate_fixture - First observed
crumb_get_component - First observed
crumb_ic_reference - First observed
crumb_inspect_design - First observed
crumb_list_projects - First observed
crumb_trace_net - First observed
crumb_validate_design - First observed
electronics_capabilities - First observed
electronics_plan_verification - First observed
electronics_validate_experiment - First observed
logisim_analyze_design - First observed
logisim_component_stats - First observed
logisim_export_netlist - First observed
logisim_list_projects - First observed
logisim_run_test_vector - First observed
logisim_truth_table
TDQS
Scored across 22 tools
Every tool has a clearly distinct purpose, reinforced by consistent prefixes (crumb_, logisim_, electronics_) and explicit descriptions. Even closely related tools like crumb_validate_design (structural XML checks) and crumb_check_design (netlist linting) are unambiguously separated. Higher-level analysis tools (inspect vs analyze) are differentiated by summary vs paginated detail.
The naming is mostly consistent with a predictable pattern: prefixes for simulators, and parallel names for shared operations (list_projects, analyze_design, export_netlist). Minor deviations exist, such as noun-phrase names (crumb_bom, crumb_ic_reference, electronics_capabilities) versus verb-first names, but the overall structure remains readable and coherent.
At 22 tools, this exceeds the typical 3-15 range, but the count is justified by covering two distinct simulators (CRUMB and Logisim) plus a generic electronics validation layer. Each tool serves a unique function, and the number feels appropriate for the breadth of the domain.
The tool set provides comprehensive coverage for circuit analysis and validation: project discovery, design analysis, validation, netlist export, tracing, BOM generation, IC lookup, and simulation/test execution. Minor gaps exist, such as lack of design creation/editing tools, but these appear outside the server's stated analytical purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Lean 4 MCP server: compile, prove theorems, and formalize math with Mathlib.
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server that connects LLM assistants to real circuit simulation: LTspice and ngspice, plus direct editing of LTspice .asc schematics. Simulation results come back as structured numbers so the assistant can design, verify, and iterate on circuits.4839GPL 3.0
- AlicenseNot gradedqualityBmaintenanceBridges JLCPCB/Lichuang EDA Pro with MCP clients to export and analyze schematic/PCB DRC, netlists, and BOMs, enabling automated diagnostics and data queries.4MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that exposes five tools for generating verified electronic circuit documentation, including netlist verification, component lookup, and generation of schematics, boards, and renders.MIT
- AlicenseNot gradedqualityBmaintenanceLocal Model Context Protocol server that exposes EasyEDA Pro design capabilities as MCP tools, enabling project inspection, schematic editing, PCB design, validation, and manufacturing exports through natural language.MIT