DipTrace MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DIPTRACE_MCP_WORKSPACE | Yes | Path to the DipTrace workspace directory containing .dip/.dch files | |
| DIPTRACE_MCP_ALLOWED_ROOTS | No | Optional additional directories allowed for file access (semicolon-separated) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| diptrace_statusA | Show server paths and the active DipTrace bridge session, if any. |
| get_capabilitiesB | Return supported source types, adapters, limits and current feature availability. |
| get_document_infoC | Return document identity, type, version, size, sha256 and compatibility. |
| validate_roundtrip_evidenceA | Validate distinct allowed-root evidence roles and exact SHA bindings without writing. The bounded result is always authority=user_supplied and grants_high_trust=false. |
| record_roundtrip_evidenceA | Write a user-supplied evidence manifest and provenance sidecar, not design bytes. This explicitly writes metadata, returns written=true only after both files verify, remains authority=user_supplied, and can never grant high trust. |
| get_board_modelA | Return one strictly byte-bounded PCB page or a count-only summary. |
| get_schematic_modelC | Return the normalized schematic model for a DipTrace schematic document. |
| scan_component_librariesB | Find standalone DipTrace Component Library XML files inside allowed roots. |
| scan_pattern_librariesB | Find standalone DipTrace Pattern Library XML files inside allowed roots. |
| query_library_itemsC | Query normalized components or patterns in a standalone library. |
| get_library_componentC | Get one normalized component-library item by stable id or exact name. |
| get_library_patternB | Get one normalized pattern-library item by stable id or exact name. |
| validate_library_componentB | Validate component pins, attached pattern and pin-to-pad mapping. |
| validate_library_patternB | Validate pattern pad numbering, styles, geometry, holes and annular rings. |
| validate_pin_pad_mappingC | Validate component pin numbers against pads of its embedded attached pattern. |
| get_bomB | Return a normalized schematic or PCB BOM with multi-part RefDes deduplication. |
| review_bomC | Review BOM identity, DNP and value/pattern/MPN consistency. |
| compare_bom_to_designB | Compare typed external BOM rows with normalized design records by RefDes. |
| find_missing_component_fieldsC | Find components missing explicit required BOM fields. |
| group_bomC | Group BOM records by exact sourcing identity. |
| detect_duplicate_bom_itemsC | List identical BOM identity groups containing multiple RefDes. |
| validate_mpn_consistencyC | Detect one MPN mapped to conflicting manufacturer/value/pattern metadata. |
| validate_value_pattern_consistencyC | Detect value/pattern inconsistency across multi-part units and shared MPNs. |
| compare_schematic_to_pcbB | Compare RefDes, values, net names and pin/pad endpoint sets. |
| sync_schematic_to_pcbA | Additively synchronize schematic components, nets and ratlines into a PCB. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| export_bomC | Export a generic UTF-8 CSV BOM and provenance manifest as bounded resources. |
| export_fabrication_outputsB | Export a release-review manifest; native Gerber/drill requests fail explicitly. |
| export_assembly_outputsA | Export generic BOM/placement artifacts; vendor-native requests fail explicitly. |
| list_exportsA | List persistent export records without exposing state-directory paths. |
| query_objectsC | Structured query over the normalized model. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| get_objectB | Return one normalized object by stable id. |
| get_connectivity_graphB | Return normalized logical endpoints and separate physical PCB ratlines. |
| scan_diptrace_documentsC | Find DipTrace XML/native-XML documents inside an allowed directory. |
| summarize_designC | Summarize a PCB or schematic: components, nets, layers, sheets and connectivity. |
| list_componentsC | List and search PCB components or grouped schematic component parts. |
| get_componentA | Get one component, its parts/pads and all connected nets by reference designator. |
| list_netsC | List PCB or schematic nets with component endpoints. |
| get_design_rulesA | Read PCB DRC/routing rules or schematic ERC settings from DipTrace XML. |
| read_xml_fragmentC | Read bounded XML fragments using ElementTree-compatible XPath. |
| apply_xml_editsB | Store a bounded diff resource, or write with its SHA/match guards and a backup. |
| create_schematic_documentA | Create synthetic, not DipTrace-verified Schematic XML; overwrite needs current SHA. |
| create_pcb_documentA | Create a new DipTrace PCB XML document (outline, layers, stackup, rules). This is synthetic MCP-generated content. It has the correct XML structure but has NOT been verified by DipTrace open/save. Use create_document_from_seed with a real DipTrace export when DipTrace compatibility is required. Replacing an existing target requires its current SHA. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| create_document_from_seedA | Copy a valid DipTrace-shaped XML seed while preserving unknown XML. Validation is derived only from a verified provenance sidecar; without one, the copy is synthetic_parser_only. Prefer a real export seed when DipTrace compatibility matters. Replacing an existing target requires its current SHA. |
| begin_transactionC | Create a transaction snapshot for a document or live session. |
| stage_operationsC | Attach registered semantic operations to an existing transaction. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| preview_transactionA | Store preview artifacts and return bounded metadata without changing the design. |
| validate_transactionC | Validate staged operations and return the same bounded preview metadata. |
| commit_transactionB | Commit a staged transaction after verifying the source SHA-256. |
| rollback_transactionC | Restore a transaction snapshot or backup. |
| list_transactionsA | List persisted transaction ids, document hashes, states and operation counts. |
| move_componentsA | Move one or more components transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_component_valueA | Set the value of one or more components transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| rotate_componentsA | Rotate selected PCB components or schematic parts transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_component_sideA | Move selected PCB components to the top or bottom side. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| lock_componentsA | Lock selected PCB components or schematic parts. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| unlock_componentsA | Unlock selected components. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_component_propertiesA | Set RefDes, name, value or custom fields on selected components. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_component_patternA | Swap to one embedded pattern only when pad mapping is preserved exactly. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| align_componentsA | Align PCB component body bboxes as one semantic transaction. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| distribute_componentsA | Distribute at least three PCB components transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| group_componentsA | Create or reuse a documented DipTrace PCB group transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| ungroup_componentsA | Remove selected components from groups and prune only empty groups. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| list_board_textsC | List free board text and component silk/assembly markings. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| move_board_textsA | Move free board text or component markings in board coordinates. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| rotate_board_textsA | Rotate free board text or component markings. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_text_visibilityB | Set visibility for component silk/assembly markings. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_text_styleA | Set verified style attributes on free PCB text shapes. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_pin_no_connectA | Set or clear intentional no-connect on selected schematic pins. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_component_fieldsA | Custom-field-only component update. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| rename_netA | Rename selected PCB or schematic nets with duplicate-name protection. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| add_sheetA | Add a new sheet to a schematic document. |
| place_partA | Place a new schematic part referencing a library ComponentStyle. All distances are in millimetres, regardless of the document's own Units attribute. |
| connect_pinsA | Connect part pins to a net; the net is created when missing. |
| disconnect_pinsA | Disconnect selected schematic pins from their nets. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| add_wireA | Add a wire to a schematic net (official Wire/Points XML structure). All distances are in millimetres, regardless of the document's own Units attribute. |
| delete_wireA | Delete selected schematic wires without touching net connectivity. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| add_net_labelA | Add a net-bound text label shape to a schematic sheet. All distances are in millimetres, regardless of the document's own Units attribute. |
| set_panelizationA | Set official DipTrace panelization parameters on a PCB document. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| clear_panelizationA | Remove panelization settings from a PCB document. |
| update_net_class_rulesA | Update verified per-layer width and clearance fields of a PCB net class. All distances are in millimetres, regardless of the document's own Units attribute. |
| assign_nets_to_classA | Assign selected PCB or schematic nets to an existing net class. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| set_diff_pair_rulesB | Net-class differential-pair preset. All distances are in millimetres, regardless of the document's own Units attribute. |
| set_length_constraintsB | Net-class length preset. All distances are in millimetres, regardless of the document's own Units attribute. |
| list_testpointsB | List explicit TP standalone-pad components in a PCB document. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| find_testpoint_candidatesA | Generate deterministic free-grid testpoint candidates for selected nets. All distances are in millimetres, regardless of the document's own Units attribute. |
| add_testpointsA | Add explicit standalone-pad testpoints and connect them to existing nets atomically. All distances are in millimetres, regardless of the document's own Units attribute. |
| move_testpointsA | Move explicit standalone-pad testpoints transactionally. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| remove_testpointsA | Remove explicit standalone-pad testpoints and their net/pattern references. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| review_testpoint_coverageB | Measure explicit standalone-pad testpoint coverage for selected or all nets. |
| check_silkscreenD | Alias: run_silkscreen_check. |
| plan_silkscreenB | Generate and persist a deterministic legal silkscreen placement plan. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| apply_silkscreen_planA | Stage or commit a stored silkscreen plan as one semantic transaction. |
| analyze_placementB | Measure current component overlap, containment and placement score. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| generate_placement_candidatesB | Generate bounded deterministic local placement candidates. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| score_placementA | Score an explicit component placement proposal without editing XML. All distances are in millimetres, regardless of the document's own Units attribute. |
| plan_component_placementC | Create a validated deterministic local component-placement plan. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| legalize_component_placementD | Preset: plan_component_placement. All distances are in millimetres, regardless of the document's own Units attribute. Input schema: diptrace://schemas/tool-inputs. |
| apply_component_placement_planA | Stage or commit a stored component-placement plan transactionally. |
| add_traceA | Add an explicit validated trace path between two normalized pad endpoints. All distances are in millimetres, regardless of the document's own Units attribute. |
| replace_traceA | Replace trace geometry while preserving both connected endpoints. All distances are in millimetres, regardless of the document's own Units attribute. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_diptrace_design | Create a safe workflow prompt for reviewing the active DipTrace design. |
| review_board_before_release | Review a requested PCB scope before release using available checks. |
| place_selected_components_safely | Plan and preview bounded component placement for a requested scope. |
| review_schematic_before_layout | Review a requested schematic scope before PCB layout begins. |
| place_decoupling_network | Plan a bounded decoupling-network placement around selected components. |
| route_critical_net | Plan a bounded route for one explicitly named critical net. |
| route_diff_pair_with_constraints | Plan a differential-pair route using explicit stackup and pair constraints. |
| clean_silkscreen_for_manufacturing | Plan and validate silkscreen cleanup for the requested board scope. |
| add_testpoints_for_fixture | Plan guarded testpoint coverage for explicitly selected nets. |
| review_return_paths | Review geometry-based return-path heuristics for selected nets. |
| prepare_fabrication_export | Review release readiness before creating a generic fabrication manifest. |
| prepare_assembly_export | Review one assembly variant before creating generic assembly artifacts. |
| review_bom | Review BOM metadata and consistency for the requested variant. |
| compare_schematic_and_pcb | Compare an explicit schematic and PCB without applying changes. |
| synchronize_schematic_to_pcb | Plan a guarded schematic-to-PCB synchronization workflow. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| status_resource | Current DipTrace MCP configuration and live-session state. |
| capabilities_resource | Current capability discovery payload. |
| trusted_provenance_registry_resource | Repository-owned exact-hash trust registry and current entry count. |
| tool_input_schemas_resource | Catalog of schemas for intentionally non-inlined high-cost tool inputs. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/fireostendere/mcp_diptrace'
If you have feedback or need assistance with the MCP directory API, please join our Discord server