Digital MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Digital MCP ServerBuild a half adder from this image, run its tests, and open it in Digital."
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.
Digital MCP 服务
这是一个用于 Digital 逻辑电路模拟器的
stdio MCP 服务。它让 MCP 客户端可以直接创建、检查、验证、仿真和导出
.dig 电路文件,不需要手动操作窗口或截图。
能做什么
根据结构化设计生成 Digital
.dig电路文件。检查电路元件、坐标、属性和连接线。
调用 Digital 的无头 CLI 验证内置测试用例。
导出静态电路图为 SVG 或高分辨率 PNG。
设置
In输入或Button按钮状态,导出真实仿真状态图片。从
.dig中读取 Testcase,生成带 PASS/FAIL 结果的真值表图片。将电路安全加载到 macOS Digital.app。
仿真图片不依赖 GUI 鼠标点击,而是创建 Digital 模型、写入输入状态并重新计算, 因此可以稳定复现“一个按钮激活”“两个按钮激活”等状态。
Related MCP server: KiCAD Schematic Manipulation MCP Server
安装和运行
在 MCP 仓库根目录运行:
python3 digital_mcp_server.pyMCP 客户端配置示例:
{
"mcpServers": {
"digital": {
"command": "python3",
"args": ["/绝对路径/digital-mcp-server/digital_mcp_server.py"],
"env": {
"DIGITAL_PROJECT_ROOT": "/绝对路径/Digital",
"DIGITAL_JAR": "/绝对路径/Digital/source/target/Digital.jar",
"DIGITAL_APP": "/绝对路径/Digital/modern/dist/Digital.app"
}
}
}
}如果 MCP 服务和 Digital 不在同一个目录,可使用以下环境变量:
DIGITAL_PROJECT_ROOT Digital 项目根目录,可选
DIGITAL_JAR Digital.jar 路径,建议明确设置
DIGITAL_JAVA Java 21 可执行文件路径,可选
DIGITAL_APP Digital.app 路径,用于加载电路
DIGITAL_SVG_CONVERTER SVG 转 PNG 程序,可选
DIGITAL_MCP_OUTPUT_DIR 默认生成文件目录,可选PNG 导出需要以下任意一种程序:rsvg-convert、magick、convert 或
inkscape。也可以通过 DIGITAL_SVG_CONVERTER 指定路径。
主要 MCP 工具
digital_build_circuit
根据 design 对象生成 .dig 文件。可选参数:
run_tests: true:运行内置测试。render_svg: true:同时导出 SVG。open: true:在 macOS 中加载到 Digital。
最小设计示例:
{
"elements": [
{"id": "a", "type": "In", "label": "A", "x": 200, "y": 100},
{"id": "g", "type": "And", "x": 280, "y": 100},
{"id": "y", "type": "Out", "label": "Y", "x": 380, "y": 100}
],
"wires": [
{"from": "a", "to": "g", "input": 0},
{"from": "g", "to": "y"}
],
"tests": [
{"inputs": {"A": 0}, "outputs": {"Y": 0}},
{"inputs": {"A": 1}, "outputs": {"Y": 1}}
]
}支持的常用元件包括 In、Out、And、Or、XOr、XNOr、NAnd、
NOr、Not、Clock、Const、Ground、VDD 和 Testcase。
需要完整字段或引脚规则时,先调用 digital_design_schema。
digital_inspect_circuit 和 digital_run_tests
{"path": "/绝对路径/example.dig"}digital_inspect_circuit 返回元件和连线信息;digital_run_tests 调用 Digital
模拟器运行测试,并返回 passed、退出码和命令输出。
digital_export_rendered_image
导出静态电路图:
{
"path": "/绝对路径/motor_fault_indicator.dig",
"format": "png",
"output_path": "/绝对路径/motor_fault_indicator.png",
"pixel_width": 4096
}format:svg或png,默认是png。pixel_width:PNG 宽度,默认 2048,可设置为 4096 或更高。output_path:建议使用绝对路径;相对路径只能写入输入文件所在目录。
SVG 直接由 Digital CLI 导出;PNG 先生成 SVG,再用 SVG 转换器按指定宽度渲染。
digital_export_simulation_image
设置输入或按钮状态后导出仿真图片:
{
"path": "/绝对路径/motor_fault_indicator.dig",
"inputs": {"A": 1, "B": 0},
"format": "png",
"pixel_width": 4096,
"scale": 30
}输入值支持数字、布尔值和字符串。In 元件使用信号名匹配,Button 元件使用
按钮标签匹配:
A=1,B=0:一个电机工作,黄灯应亮。A=1,B=1:两个电机工作,绿灯应亮。A=0,B=0:两个电机故障,红灯应亮。
也可以将 inputs 写成字符串:"A=1,B=0"。scale 控制 SVG 的逻辑尺寸,
hide_test 默认隐藏 Testcase 框。
digital_export_truth_table_image
读取 .dig 中的 Testcase 数据,先执行 Digital 测试,再生成真值表 SVG/PNG:
{
"path": "/绝对路径/motor_fault_indicator.dig",
"format": "png",
"output_path": "/绝对路径/motor_fault_indicator_truth_table.png",
"pixel_width": 4096
}返回值同时包含 columns、rows 和 validation,图片标题会显示 PASS 或
FAIL。如果电路没有嵌入 Testcase 数据,工具会返回明确错误。
digital_load_circuit
{
"path": "/绝对路径/motor_fault_indicator.dig",
"app_path": "/绝对路径/Digital.app"
}MCP 不再直接执行 Digital.app/Contents/MacOS/Digital。macOS 上该原生启动器
由 Python 拉起时可能在 Java/AWT 注册阶段触发 SIGABRT。现在工具只使用已经
验证过的外部 Java runtime,并进行启动存活检查;runtime 不可用时会返回错误,
不会再次尝试高风险启动路径。成功返回 loaded: true 和
launcher: "managed-runtime"。
生成文件位置
独立 MCP 仓库运行时默认写入服务目录下的 generated/。也可以用
DIGITAL_MCP_OUTPUT_DIR 自定义目录。
本地验证
运行 Python 测试:
python3 -m py_compile digital_mcp_server.py仿真快照的底层 CLI 也可以直接运行:
java -Djava.awt.headless=true \
-cp source/target/Digital.jar CLI snapshot \
-dig /绝对路径/Digital/mcp/generated/motor_fault_indicator.dig \
-svg /tmp/motor_fault_indicator_A1_B0.svg \
-inputs A=1,B=0 -scale 30Available Tools
10 toolsdigital_build_circuitB
Build a Digital .dig file from a structured circuit design, optionally test, render and open it. The host AI should translate text or an attached image into this design object.
| Name | Required | Description | Default |
|---|---|---|---|
| open | No | Open the generated circuit in Digital.app on macOS. | |
| design | Yes | Object with elements, wires, and optional tests; see digital_design_schema. | |
| file_name | No | Optional simple .dig filename. | |
| run_tests | No | Run embedded test cases after building. | |
| render_svg | No | Export an SVG preview after building. | |
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose side effects. It only says 'optionally test, render and open' without explaining what those operations do, whether they modify state, require permissions, or produce side effects like opening an app. There is no mention of error behavior or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient and front-loaded. The first sentence covers the core function, the second adds a directive for the AI. No filler, but the second sentence is more of a usage hint than a description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with a nested design object, six parameters, and no output schema or annotations, the description is insufficient. It does not explain how to form the design object, what happens after building, what return values to expect, or error handling. The agent would need to infer from sibling tools or the 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 83%, so the baseline is 3. The description adds minimal param-specific meaning beyond the schema, such as 'structured circuit design' and 'design object', but it does not explain the design structure or how to construct it. It relies on the schema's reference to digital_design_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 states a specific action (build a .dig file), the resource (Digital circuit), and optional operations (test, render, open). It clearly distinguishes the tool's core role from sibling tools by positioning it as the builder that may delegate to others. The instruction to translate text/image into a design object adds valuable context.
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 this is the primary build tool and mentions optional test/render/open, but it does not explicitly state when to use sibling tools like digital_run_tests or digital_open_circuit instead. It gives a context hint about translating input but lacks clear when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_design_schemaA
Return the structured design schema and supported common gate pin conventions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only operation via 'Return', which is a non-destructive action, but it does not mention any other behavioral aspects such as the exact structure of the returned data, whether the schema is static or dynamic, or any rate limiting. For a simple retrieval tool this is adequate, though not rich.
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, front-loaded sentence with no filler. Every word adds meaning, and the primary purpose is stated immediately. This is exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description adequately conveys the core functionality. It could be more explicit about the format or contents of the returned schema, but for a simple retrieval operation the essential information is present. Siblings indicate a design toolset, so the schema reference is contextually appropriate.
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 there is nothing to document. Per the rubric, a baseline of 4 is appropriate for zero-parameter tools; the description correctly does not attempt to describe parameters since none 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 uses a specific verb ('Return') and identifies the resource ('structured design schema and supported common gate pin conventions'). This clearly differentiates it from siblings like digital_build_circuit or digital_inspect_circuit, which involve creating or examining circuits rather than retrieving schema definitions.
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 its usage – you call it when you need the design schema or gate pin conventions – but it does not explicitly state when to prefer this over alternatives or provide any contextual guidance. There is no exclusion clause, but the purpose is clear enough that an agent can infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_export_rendered_imageA
Export a rendered image of a .dig circuit. format=svg reuses Digital's CLI SVG export; format=png (default) generates the SVG first, then converts it at the requested pixel width with DIGITAL_SVG_CONVERTER or rsvg-convert/magick/convert/inkscape from PATH.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | png | |
| output_path | No | ||
| pixel_width | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does substantial work: it reveals the SVG export pipeline and the PNG conversion process, including the dependency on DIGITAL_SVG_CONVERTER or rsvg-convert/magick/convert/inkscape. It does not mention output file side effects, overwrite behavior, or error handling, but the disclosed conversion details go well beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The main purpose is front-loaded, and the second sentence efficiently packs the format pipeline details and external converter dependencies. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core format behavior and conversion pipeline, but it omits output_path semantics, return values (no output schema), timeout behavior, and explicit guidance for choosing among siblings. Given the absence of annotations and 0% schema description coverage, more context would be needed for fully confident 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 0%, so the description must compensate. It adds real meaning for 'format' (SVG vs PNG) and 'pixel_width' (requested conversion width), but it leaves 'path', 'output_path', and 'timeout_seconds' unexplained beyond their schema types and defaults. Partial compensation is provided, not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Export a rendered image of a .dig circuit,' which clearly states what the tool does. It also differentiates format behavior (SVG vs PNG) and distinguishes itself from related export tools by focusing on rendered image output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use SVG vs PNG and mentions the default format, providing clear context for format selection. However, it does not explicitly state when to use this tool instead of siblings like digital_render_circuit or digital_export_simulation_image, leaving the alternative-selection guidance 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.
digital_export_simulation_imageB
Apply input/button states such as {A: 1, B: 0}, render the live Digital model, and export a high-resolution SVG or PNG snapshot. The circuit is simulated headlessly; the GUI is not driven.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| scale | No | ||
| format | No | png | |
| inputs | No | ||
| hide_test | No | ||
| output_path | No | ||
| pixel_width | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does say the circuit is simulated headlessly and the GUI is not driven, but it does not disclose whether applying inputs mutates the model, whether output_path is required for file creation, what side effects occur, or what resource limits apply.
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. It front-loads the core behavior (apply states, render, export) and follows with the useful GUI exception, making each sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has eight parameters, nested objects, no output schema, and no parameter descriptions, the description is too thin to be fully complete. It does not explain what path refers to, how the output is returned or saved, what hide_test means, or how inputs interact with an already-open Digital model.
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 gives one useful example for the inputs parameter and mentions SVG/PNG output, but the majority of the eight parameters—path, output_path, scale, pixel_width, hide_test, timeout_seconds—receive no semantic clarification in either the schema or the description.
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 action: apply input states, render the live Digital model, and export an SVG/PNG snapshot. It is more specific than the tool title and conveys the headless simulation nature, though it does not explicitly call out sibling differentiators like digital_export_rendered_image.
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: when you need a simulation snapshot with applied input states, and it notes that the GUI is not driven. However, it does not explicitly state when to prefer this tool over the related export/render siblings or give concrete exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_export_truth_table_imageA
Read embedded Digital Testcase data, validate it with Digital's simulator, and export a polished truth-table/results image as SVG or high-resolution PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | png | |
| output_path | No | ||
| pixel_width | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It discloses the pipeline (read, validate, export) and implies side effects (creating an output file via output_path parameter). However, it does not mention whether the input file is modified, what happens on validation failure, or the effect of timeout_seconds. This is a moderate disclosure 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 a single, tightly-worded sentence that conveys the core action, resource, and output formats. No fluff or redundant phrases. It is appropriately front-loaded with the primary verb and object, making it easy to scan.
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 has 5 parameters and no output schema or annotations. The description is too brief to cover essential details: it does not explain what 'embedded Digital Testcase data' looks like, what the return value is (e.g., file path), or how validation errors are reported. For a multi-step process with multiple configuration options, this is insufficient for an agent to call it correctly without external knowledge.
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% - the description does not explain any of the 5 parameters. It only hints at format via 'SVG or high-resolution PNG' but fails to clarify the role of 'path', 'output_path', 'pixel_width', or 'timeout_seconds'. Since coverage is low, the description must compensate but does not, leaving agents to infer parameter meanings from names and defaults alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action (read, validate, export) and the resource (embedded Digital Testcase data, truth-table/results image). It clearly distinguishes from siblings like digital_export_rendered_image or digital_export_simulation_image by targeting a specific image type. The verb 'export' and formats 'SVG or PNG' are precise.
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: when you need a truth-table/results image from embedded testcase data. It does not explicitly mention alternatives or exclusions, but the context is clear enough for an agent to decide. Sibling tools like digital_run_tests or digital_export_rendered_image have different purposes, so the description's specificity provides adequate guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_inspect_circuitB
Read a Digital .dig file and return its elements, positions, attributes and wires.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value by stating the action is a read and that the return value contains specific circuit data, which is useful since no annotations are present. However, it does not disclose error behavior, path requirements, or whether the inspection has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant wording. The core action and output content types are front-loaded, making it easy for an agent to parse quickly.
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 is adequate for a simple one-parameter inspection tool and mentions the main return categories. It is not fully complete because it omits exact return structure, path semantics, and explicit guidance for distinguishing this tool from the related digital_* siblings.
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 for the undocumented 'path' parameter, but it only indirectly implies that a .dig file is the target. It does not explain what path values are valid, whether the path must be local, or how the file is located.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), a concrete resource (Digital .dig file), and the kind of data returned (elements, positions, attributes, wires). It is clear and informative, though it does not explicitly differentiate itself from similarly named siblings like digital_open_circuit or digital_load_circuit.
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 purpose implies it should be used when the agent needs to inspect the logical contents of a .dig file, but there is no explicit guidance about when to choose this over alternatives such as digital_render_circuit or digital_run_tests. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_load_circuitC
Load a .dig file into the modern Digital.app on macOS using the safest available launcher; returns loaded, app, path and launcher.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| app_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose that it uses 'the safest available launcher' and lists the returned fields (loaded, app, path, launcher), which gives some behavioral context. However, it does not mention side effects, permissions, error behavior, or whether the operation modifies anything. For a load operation, this is moderately transparent but incomplete.
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 primary action and efficiently covers the target, method, and return values. Every part is informative and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the essential purpose and return format, which is sufficient for a simple load operation. However, it omits clarification for the optional 'app_path' parameter and offers no error-handling or usage context. Given the low complexity (2 params, no output schema), it is barely adequate but not fully complete.
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 does not explain the meaning of 'path' or 'app_path' beyond their names. The description mentions 'path' in the return but not as an input parameter, and 'app_path' is entirely undocumented. This is a significant failure to add value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (load), the resource (.dig file), and the target environment (Digital.app on macOS). It also mentions a specific approach ('safest available launcher') and the expected return fields. However, it does not explicitly differentiate from the sibling tool digital_open_circuit, which might also load/open circuits, so it loses a point for lack of sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as digital_open_circuit or other sibling tools. The description simply states what it does without any context about scenarios that favor this tool or exclusions. This is a clear gap for an agent deciding between load and open operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_open_circuitC
Open a .dig file in the modern Digital.app on macOS.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| app_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits itself; it only says 'Open a .dig file'. It does not state whether this launches a GUI, whether it blocks or returns immediately, whether it modifies the file, or what happens if the app is not found. The macOS constraint is helpful but insufficient for a tool with zero annotation coverage.
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 concise sentence with no filler or repetition. It front-loads the core action and resource. It could carry more useful detail, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and an undocumented optional parameter, the description is too sparse. An agent would likely need to infer 'app_path' semantics and the relationship to digital_load_circuit, which creates ambiguity in a family of similar circuit tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify both parameters. It implicitly suggests that 'path' is the .dig file path, but it does not explain 'app_path' at all, nor does it specify expected formats, defaults, or optionality beyond the raw 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 uses a specific verb ('Open'), a clear resource ('.dig file'), and the target environment ('modern Digital.app on macOS'), so an agent can tell what action is being performed. However, it does not explicitly differentiate this from the sibling 'digital_load_circuit', which could plausibly overlap with 'open'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives like digital_load_circuit or digital_inspect_circuit. The description gives context about macOS and Digital.app but does not explain which sibling to choose for headless workflows or when this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_render_circuitA
Render a Digital .dig file using Digital's CLI. Kept for compatibility; use digital_export_rendered_image for the explicit SVG/PNG interface.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| format | No | svg | |
| output_path | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It says 'Render' and mentions CLI, but it does not disclose whether files are written, what output is returned, whether the operation is read-only, or how errors/timeouts behave. For a tool with output_path and timeout_seconds parameters, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, with the core purpose front-loaded and the routing note added without fluff. Every word contributes to the agent's understanding.
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 has four parameters, no output schema, and no annotations. The description explains the tool's purpose and deprecation status well but omits essential context such as parameter semantics, expected return value, output file behavior, and failure modes. It is minimally useful but not complete for safe 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 0%, and the description does not explain any of the four parameters. The parameter names are somewhat self-explanatory, but the description adds no meaning about path, format, output_path, or timeout_seconds. Since the description was expected to compensate for sparse schema documentation, this is a significant shortfall.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Render a Digital .dig file using Digital's CLI') and explicitly distinguishes itself from digital_export_rendered_image. An agent can tell exactly what this tool does and how it differs from the closest sibling.
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 explicitly names digital_export_rendered_image as the preferred alternative and gives the reason: 'Kept for compatibility'. This is clear routing guidance for when to use this tool versus the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
digital_run_testsB
Run the test cases embedded in a Digital .dig file through Digital's headless CLI.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| verbose | No | ||
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the headless CLI mechanism but does not describe side effects, output format, failure behavior, or what happens on test failure. This is a meaningful gap for a tool that executes tests.
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 focused sentence with no filler or redundancy. It front-loads the core operation and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and no parameter descriptions, the description is too thin for an agent to call the tool confidently. It omits return value information, timeout/verbose semantics, and any expected outcome or error handling details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about path, verbose, or timeout_seconds. An agent cannot determine what verbose controls or how timeout_seconds affects execution from either the schema or the description.
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 ('Run') and resource ('test cases embedded in a Digital .dig file') and clearly distinguishes this from sibling tools like digital_inspect_circuit or digital_build_circuit by focusing on executing embedded tests. It is unambiguous about what the tool does.
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 this tool—when you need to run embedded test cases—but it provides no explicit alternatives, exclusions, or conditions compared with siblings. There is enough context to infer basic usage, but no direct guidance.
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.
10 tool updates
v0.1.0- First observed
digital_build_circuit - First observed
digital_design_schema - First observed
digital_export_rendered_image - First observed
digital_export_simulation_image - First observed
digital_export_truth_table_image - First observed
digital_inspect_circuit - First observed
digital_load_circuit - First observed
digital_open_circuit - First observed
digital_render_circuit - First observed
digital_run_tests
TDQS
Scored across 10 tools
digital_open_circuit and digital_load_circuit both launch the same GUI app with only subtle differences in return metadata, and digital_render_circuit is an explicit legacy duplicate of digital_export_rendered_image. These overlapping pairs create real misselection risk, even though the build/inspect/test/export tools are otherwise distinct.
The tools consistently use a digital_ prefix with snake_case action phrases such as run_tests, build_circuit, and export_*_image. digital_design_schema is slightly off-pattern because it reads as a noun phrase rather than verb+object, but there is no mixed casing or chaotic style.
Ten tools is a reasonable size for a circuit design/simulation server, and most tools correspond to a meaningful step in the workflow. The set is slightly padded by redundant legacy/GUI variants, so it is not perfectly minimal.
The server covers the core workflow from design schema to build, inspect, test, simulate, and export images, so agents can complete end-to-end tasks. There is no tool for updating/deleting an existing circuit, but rebuilding from a structured design largely mitigates that gap.
Maintenance
Related MCP Connectors
Read and edit DB Planner database schemas, diagrams and board layouts as an AI agent.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Give any MCP-compatible AI assistant a builder for live, hosted web tools and workflows.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to perform Electronic Design Automation (EDA) tasks including Verilog synthesis, simulation, ASIC design flows, and waveform analysis through a unified interface.6-
- AlicenseNot gradedqualityDmaintenanceEnables AI tools to create, edit, and inspect KiCAD schematic files, including components, wires, labels, and sheets.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to automatically generate Multisim circuits, run simulations, extract experimental data, and export circuit diagrams, CSV, waveforms, and lab reports.14MIT
- AlicenseAqualityCmaintenanceEnables AI agents to operate the Falstad CircuitJS1 circuit simulator through MCP, including loading circuits, running transient simulations, probing waveforms, exporting circuits, and capturing schematic screenshots.8GPL 2.0