Skip to main content
Glama
sheares

easyeda-mcp-fix

by sheares

document_save_to_file

Save the active EasyEDA document's source to a local file, enabling raw edits, batch changes, or backups. Re-upload the modified file with document_load_from_file.

Instructions

Save the source code of the currently active document to a local file. Fetches the document source from EasyEDA and writes it directly to disk. The file will contain the document in EasyEDA's internal format (on EasyEDA Pro 3, one {header}||{body} line per record; the src/lib editing library cannot read this, so use project_export_file for library edits). Use document_load_from_file to push a modified file back.

For schematic and PCB documents, the source is also run through the schema validator in warn mode — the returned JSON includes a validation report, and any unknown tags are logged to ~/.easyeda-schema-discovery.jsonl. Since this is a download (EasyEDA's output), a schema mismatch means our schema is missing coverage, not that the data is bad.

FAST-BATCH WORKFLOW: for making many changes at once, it is much faster to export the document or project (document_save_to_file / project_export_file), edit the raw source on disk, then re-upload (document_load_from_file / project_import_file) than to issue many small per-primitive MCP calls. Formats differ: on EasyEDA Pro 3, document_save_to_file returns {header}||{body} lines, while the .epro from project_export_file holds newline-delimited JSON arrays, which is what the src/lib editing library reads. Every destructive upload is auto-backed-up to a local git repo first — the response includes a backup SHA you can use to find the prior state if the edit goes wrong. Upload tools accept validate='off'|'warn'|'strict' (default 'strict') which runs the Zod schema on the new source — see document_validate for standalone validation.

Input Schema

NameRequiredDescriptionDefault
documentYesTarget document UUID — auto-switches to this document before executing. Get UUIDs from list_instances or editor_get_open_tabs.
filePathYesAbsolute path to write the document source to
instance_idNoTarget EasyEDA instance ID (8-char hex). Required when multiple instances are connected. Omit when only one instance is connected (auto-selected). Use list_instances to see connected instances.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.5

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, but the description adds real context the annotations cannot: the validator runs in warn mode, a validation report is in the returned JSON, unknown tags are logged to ~/.easyeda-schema-discovery.jsonl, and a mismatch means missing schema coverage rather than corrupt data. It also discloses the exact on-disk format ({header}||{body} per record on EasyEDA Pro 3) and that the src/lib editing library cannot read it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core behavior is front-loaded and clearly stated, but a large share of the text is a fast-batch workflow plus upload-side details (backup SHA, validate='off'|'warn'|'strict' defaults) that belong to sibling tools rather than this one. Useful routing context, but it dilutes a save-to-disk definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent that a validation report comes back, and it covers format, target switching, and reversal via document_load_from_file. The shape of the success response (e.g., what fields besides the validation report) is left implicit, which is a minor gap for a 3-parameter save tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both required parameters are already fully documented in the schema. The description reinforces behavior the schema cannot express—that setting document auto-switches the active document before executing—but adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb and resource: save the source of the currently active document to a local file, then clarifies it fetches from EasyEDA and writes to disk. It also explicitly distinguishes itself from project_export_file and points to document_load_from_file for the reverse direction, so an agent can place it among siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing: use project_export_file for library edits, use document_load_from_file to push a modified file back, and use export/edit/re-upload instead of many per-primitive MCP calls for batch work. It also names concrete alternatives (project_export_file / project_import_file) and the conditions that select them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools