Skip to content
Agentmart
Submit a tool

Source Parts

Electronic component sourcing, BOM management, and PCB design workflows.

Connector by SourceParts · GitHub account verified by the MCP Registry

IndexedApache-2.0Local (stdio)Remote (HTTP)★ 2
Write a review

Install

Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/sourceparts-parts-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://mcp.source.parts/ Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Electronic component sourcing, BOM management, and PCB design workflows.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
70 read · 24 write · 4 delete · 23 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 121

Read from the source code; the running server may list different tools.

Read 70 · Look things up without changing anything.

  • admin_list_users
  • analyze_kicad_project
  • assembly_aoi_inspect
  • assembly_readiness_check
  • cad_convert_step
  • cad_inspect_step
  • calculate_bom_cost
  • check_availability
  • check_bom_status
  • check_dfm_status
  • check_identification_status
  • check_manufacturing_status
Show 58 more tools
  • check_render_status
  • compare_prices
  • convert_allegro
  • convert_geda
  • convert_kicad_version
  • convert_pads
  • convert_protel
  • design_impedance_calculate
  • design_schematic_review
  • design_thermal_analysis
  • dfm_check_status
  • dfm_estimate
  • doc_wip_history
  • doc_wip_preview
  • ecn_get
  • ecn_list
  • ecn_validate
  • eco_get
  • eco_list
  • estimate_cost
  • extract_bom_from_kicad
  • extract_netlist_from_project
  • find_alternatives
  • find_kicad_projects
  • get_cli_documentation
  • get_identified_item
  • get_part_details
  • get_preferences
  • get_project_context
  • identify_pcb
  • kicad_ctrl_analyze
  • kicad_ctrl_netlist_diff
  • kicad_ctrl_validate
  • list_datasheet_sections
  • list_devices
  • list_doc_safelist
  • pcb_fab_quote
  • quality_compliance_check
  • quality_fai_inspect
  • quality_iqc_inspect
  • quality_xray_analyze
  • quote_assembly
  • quote_fabrication
  • read_datasheet
  • review_schematic
  • sales_commission_calculate
  • sales_quote_build
  • sales_quote_negotiate
  • scan_doc
  • sch_check_structure
  • sch_erc_categorize
  • sch_export_bom
  • search_by_marking
  • search_by_parameters
  • search_parts
  • suggest_reroute
  • supply_chain_obsolescence_check
  • user_profile

Write 24 · Create, change, send or run things.

  • add_doc_safelist
  • admin_set_user_role
  • cad_modify_step
  • dfm_add_findings
  • dfm_submit
  • doc_wip_send
  • ecn_create
  • ecn_update
  • eco_approve
  • eco_build_status
  • eco_create
  • eco_update
Show 12 more tools
  • edit_schematic_place
  • edit_schematic_value
  • edit_schematic_wire
  • logistics_create_shipment
  • sales_order_convert
  • sch_pin_position
  • set_preferences
  • submit_dfm
  • supply_chain_procurement_approve
  • trigger_part_render
  • upload_bom
  • upload_gerbers_for_quote

Delete 4 · Delete, drop, revoke or wipe things.

  • edit_schematic_remove
  • kicad_ctrl_execute_ripup
  • remove_doc_safelist
  • sch_remove_wires

Not yet classified 23 · We could not tell from the name and description.

  • assembly_feeder_setup
  • assembly_functional_test
  • assembly_reflow_profile
  • dfm_deliver_report
  • dfm_generate_report
  • doc_wip_new
  • export_parts_to_kicad
  • highlight_net_traces
  • kicad_ctrl_erc
  • kicad_ctrl_export
  • kicad_ctrl_propose_ripup
  • logistics_consignment_manifest
Show 11 more tools
  • logistics_customs_declare
  • logistics_inventory_reconcile
  • logistics_track_shipment
  • match_components_to_parts
  • open_in_kicad
  • parts_cli
  • render_schematic
  • sales_invoice_generate
  • sch_export_graphic
  • sch_libsync
  • supply_chain_avl_qualify

Network hosts it talks to 5

  • api.source.parts · found in code
  • claude.ai · found in code
  • github.com · found in code
  • mcp.source.parts · found in remote endpoint, install command, code
  • source.parts · found in code

Files it touches

  • /opt/homebrew/bin/kicad-cli
  • /tmp/parts-mcp-cache
  • /tmp/plate.step
  • /var/lib/flatpak/exports/bin/org.kicad.KiCad.kicad-cli
  • Your home directory (~)
  • ~/.cache/parts-mcp
  • Any path the agent passes to its tools

Tools (121)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_doc_safelist

    Add a MIME type to the document upload safelist. Once added, files whose Magika-detected type matches this MIME type will be accepted for upload. Requires admin role. Args: mime_type: MIME type to allow, e.g. "application/pdf". label: Magika content label, e.g. "pdf". Run `parts doc scan` against a sample file to find the correct label. description: Optional human-readable note about this entry.

  • admin_list_users

    List all users. Owner-only. Args: role: Optional filter by role (public, admin, owner) Returns: List of users with their roles and preferences

  • admin_set_user_role

    Set a user's role level. Owner-only. Args: user_id: Target user's Auth0 sub or Source Parts user ID role: New role: public, admin, or owner Returns: Updated user profile

  • analyze_kicad_project

    Analyze a KiCad project to extract detailed information. Args: project_path: Path to KiCad project file (.kicad_pro) Returns: Detailed project analysis

  • assembly_aoi_inspect

    Station 4: Automated optical inspection. Uploads board photos and optional golden reference image. Server compares placement quality and flags defects. IMPORTANT: Review the defect report and manually verify flagged items. Args: board_photos: List of paths to board photos (JPEG/PNG) reference_image: Optional path to golden reference image Returns: Defect report with flagged items per category.

  • assembly_feeder_setup

    Station 2: Generate optimal feeder slot assignment. Uploads BOM and position CSV. Server groups components and assigns feeder slots to minimize changeover time. IMPORTANT: Review the feeder map before loading the machine. Args: bom_path: Path to BOM CSV file position_path: Path to position/placement CSV file machine: Machine type (e.g. "neoden", "juki", "yamaha") Returns: Feeder map JSON + CSV with slot assignments.

  • assembly_functional_test

    Station 5: Validate functional test results against pass/fail criteria. Uploads test results CSV and criteria JSON. Server validates each unit against specs and calculates yield. IMPORTANT: Review yield and outliers before lot disposition. Args: results_path: Path to test results CSV file criteria: Pass/fail criteria dict, e.g. {"Vout": {"min": 3.2, "max": 3.4}} Returns: Test report with yield %, outliers, and lot disposition.

  • assembly_readiness_check

    Station 1: Pre-assembly readiness checklist. Uploads BOM, gerber ZIP, and position CSV to the API. Server checks: all parts parseable? stencil layer present? positions match BOM? IMPORTANT: Review the checklist before proceeding to feeder setup. Args: bom_path: Path to BOM CSV file gerber_path: Path to gerber ZIP file position_path: Path to position/placement CSV file Returns: Readiness checklist with pass/fail per item.

  • assembly_reflow_profile

    Station 3: Analyze BOM thermal specs and recommend reflow profile. Uploads BOM CSV. Server analyzes MSL levels, peak reflow temps, and soak times across all components. IMPORTANT: Review thermal constraints and MSL warnings before reflowing. Args: bom_path: Path to BOM CSV file (with optional MSL, Peak_Temp columns) Returns: Recommended reflow profile + thermal constraint summary.

  • cad_convert_step

    Convert a CAD file between formats (STEP ↔ STL / OBJ / glTF / AMF / DXF). Hits POST /v1/cad/step/convert. Result written to a local temp file. Args: file_path: Local path to .step/.stp/.brep/.stl file (<=100 MB). target_format: One of step | stl | obj | amf | dxf | gltf. Returns: { success, output_path, target_format, size_bytes }

  • cad_inspect_step

    Inspect a STEP / BREP / STL file and return its geometry summary. Hits POST /v1/cad/step/inspect (synchronous, sub-second for typical product files). Args: file_path: Local path to a .step / .stp / .brep / .stl file (<=100 MB). Returns: { success, bounding_box: {x_min/max/len, y_..., z_..., center}, topology: {solids, shells, faces, edges, vertices}, volume_mm3, center_of_mass: [x, y, z] }

  • cad_modify_step

    Apply a chain of parametric operations to a STEP/BREP file. Hits POST /v1/cad/step/pipeline. The result is written to a local temp file and the path is returned — chain calls by passing the previous output_path back in. Operation schemas. These are exact, and not guessable — translate takes "offset" not "vector", chamfer takes "length" not "distance", and rotate takes an axis as two points rather than a direction vector. The API rejects an op with a missing or misspelled field. {"kind": "translate", "offset": [x, y, z]} {"kind": "rotate", "axis_start": [x,y,z], "axis_end": [x,y,z], …

  • calculate_bom_cost

    Calculate total cost for a bill of materials. Args: bom: List of parts with quantities quantity: Number of boards/assemblies preferred_suppliers: Optional supplier preferences Returns: BOM cost analysis

  • check_availability

    Check availability for multiple parts. Args: part_numbers: List of part numbers quantities: Optional quantities needed for each part Returns: Availability information

  • check_bom_status

    Check BOM processing status and report unknown/unmatched parts. When processing is complete, automatically fetches the full BOM and separates parts into matched and unmatched lists. Unknown parts are highlighted so you can see which components need attention. Note: the upload_bom tool that produces these job IDs needs filesystem access and is only registered in local mode. In hosted mode submit the BOM to POST /v1/bom directly to obtain a job_id. Args: job_id: Job ID returned from upload_bom (local mode) or POST /v1/bom Returns: Processing status with matched/unmatched part breakdo…

Show 106 more tools
  • check_dfm_status

    Check the status of a DFM analysis job. Args: job_id: Job ID returned from submit_dfm Returns: Job status with progress and results when complete

  • check_identification_status

    Check the status of a PCB/component identification job. Args: job_id: Job ID returned from identify_pcb (which accepts a file_path locally or image_base64 when hosted) Returns: Status with identified items when complete

  • check_manufacturing_status

    Check the status of any manufacturing job (fab, DFM, AOI, QC). Args: job_id: Job ID returned from a manufacturing submission Returns: Job status with progress and results when complete

  • check_render_status

    Check the status of a Blender render job. Returns the CDN URL when the render is complete, or the error message if it failed. Args: job_id: The render job UUID from trigger_part_render Returns: Job status with render_url (when complete) or error (when failed)

  • compare_prices

    Get Source Parts catalog pricing for a part at a quantity. Single-source: prices come from the Source Parts catalog only. Per-supplier comparison (DigiKey, Mouser, …) is NOT supported — a `suppliers` list is acknowledged with a warning, never silently honored. `best_price` is therefore the catalog price at the best applicable quantity break, not a cross-supplier minimum. Refuses to price fuzzy matches: if the catalog's closest hit is not an exact (normalized) match for `part_number`, the response is success=False naming the closest candidate instead of pricing a different part. Args: pa…

  • convert_allegro

    Convert a Cadence Allegro PCB board file to KiCad format. Imports a Cadence Allegro .brd binary file (versions 16-23) and converts it to a KiCad .kicad_pcb file. Uses KiCad 10's built-in Allegro importer — no Cadence software required. Board files only. Schematics are not supported. The .brd extension is also used by Eagle; KiCad auto-detects the format via magic bytes. Output is a ZIP archive containing the .kicad_pcb file and any extracted footprint libraries. Args: file_path: Path to Allegro .brd file or zip archive output_path: Where to save the output ZIP (default: <stem>_kica…

  • convert_geda

    Convert a gEDA PCB board file to KiCad format. Imports a gEDA .pcb board file using KiCad's pcbnew bindings. Board files only — schematic import is not available programmatically. Output is a ZIP archive containing the .kicad_pcb file. Args: file_path: Path to gEDA .pcb file or zip archive output_path: Where to save the output ZIP (default: <stem>_kicad.zip next to input) Returns: Dict with success, output_path, source_file, and output_size_bytes

  • convert_kicad_version

    Convert a KiCad file to an older version. Downconverts .kicad_pcb, .kicad_sch, or project ZIP archives from KiCad 10 to version 7, 8, or 9 for fab shop compatibility. Rounded rectangles (gr_roundrect / fp_roundrect) introduced in KiCad 10 are converted to right-angle rectangles. Hatched copper fills are removed. The file version header is updated to match the target version. Args: file_path: Path to .kicad_pcb, .kicad_sch, or .zip project archive target_version: Target version: "7", "8", or "9" output_path: Where to save the result (default: same dir, _v<N> suffix) Returns: …

  • convert_pads

    Convert a PADS ASCII layout file to KiCad format. Imports a PADS ASCII .asc layout file using kicad-cli pcb import --format pads. Board files only — schematics are not supported. Output is a ZIP archive containing the .kicad_pcb file. Args: file_path: Path to PADS .asc file or zip archive output_path: Where to save the output ZIP (default: <stem>_kicad.zip next to input) Returns: Dict with success, output_path, source_file, and output_size_bytes

  • convert_protel

    Convert a Protel99SE project file to KiCad format. Converts Protel99SE schematic and PCB files to KiCad 7 format. Accepts individual files (.sch, .pcb, .lib) or a zip archive containing multiple Protel files. The output ZIP includes the converted KiCad files and a conversion_report.txt describing any warnings or unsupported features (e.g. ASCII schematic format, unsupported .pcblib files). .ddb archives require mdbtools on the server. If mdbtools is not installed, the API returns a 503 error rather than silently producing no output. Args: file_path: Path to Protel .sch, .pcb, .lib, .dd…

  • design_impedance_calculate

    Calculate controlled impedance for a PCB trace. Computes characteristic impedance using standard formulas for microstrip, stripline, or differential pair configurations. Args: stackup: Dict with dielectric_height_mm and dielectric_constant (Er) trace_width: Trace width in mm trace_type: Type: microstrip, stripline, or differential trace_spacing: Trace spacing in mm (required for differential) copper_weight_oz: Copper weight in oz (default 1.0) Returns: Impedance, propagation delay, loss, and recommendation.

  • design_schematic_review

    Review a KiCad schematic for common design issues. Uploads a .kicad_sch file and checks for: unconnected pins, missing decoupling capacitors (ICs without bypass caps within proximity), power domain analysis (voltage rails, current budget), and net naming conventions. IMPORTANT: Review all findings before proceeding with layout. Args: project_path: Path to the .kicad_sch schematic file Returns: Review findings with severity, score, and power domain analysis.

  • design_thermal_analysis

    Estimate thermal dissipation from BOM and identify hot spots. Uploads a BOM file and estimates power dissipation per IC from typical values, identifies components exceeding thermal limits, and recommends thermal vias or heatsinking. IMPORTANT: Review thermal risks and recommendations before layout. Args: bom_path: Path to BOM file (.csv or .json) ambient_temp_c: Ambient temperature in Celsius (default 25) Returns: Thermal analysis with per-component power, hot spots, and recommendations.

  • dfm_add_findings

    Add review findings to a DFM request (admin-only). Each finding should include category, severity, description, recommendation, and affected_area. The API validates all fields and stores them in the dfm_review_findings table. IMPORTANT: Review all findings before generating the customer report. Args: request_id: DFM review request ID (e.g. DFM-A1B2C3D4) findings: List of finding dicts, each with: - category: e.g. design_issue, manufacturability, material - severity: info, low, medium, high, or critical - description: What the issue is - recommendation…

  • dfm_check_status

    Check the current status of a DFM review request. Polls the API for the latest status, progress percentage, findings count, and estimated completion date. Status flow: submitted -> payment_pending -> in_review -> findings_ready -> report_sent -> complete Args: request_id: DFM review request ID (e.g. DFM-A1B2C3D4) Returns: Current status, progress, findings count, and estimated completion.

  • dfm_deliver_report

    Re-send or deliver the DFM report to a specific email (admin-only). Sends the previously generated PDF report to the specified email, or re-sends to the original customer if no email override is given. Args: request_id: DFM review request ID (e.g. DFM-A1B2C3D4) email: Optional override recipient email address message: Optional custom note to include in the email Returns: Email delivery confirmation.

  • dfm_estimate

    Analyze design file complexity and get DFM review pricing. Uploads a design file (Gerber ZIP, .kicad_pcb, or CAD file) to the Source Parts API, which analyzes layer count, component density, HDI features, and blind/buried vias to produce a complexity score and pricing estimate. Tiers: - basic: $97 (3-5 day turnaround) - comprehensive: $297 (1-2 day turnaround) If tier is omitted, the API auto-recommends based on complexity. Args: design_path: Path to design file (Gerber .zip or .kicad_pcb) tier: Optional tier selection (basic or comprehensive) Returns: Pricing, tu…

  • dfm_generate_report

    Generate a PDF report and email it to the customer (admin-only). Triggers the existing PDF generation service, uploads the report to storage, and sends it via Resend to the customer on file. IMPORTANT: Ensure all findings have been added before generating. Args: request_id: DFM review request ID (e.g. DFM-A1B2C3D4) Returns: Report URL and email delivery confirmation.

  • dfm_submit

    Submit a DFM review request with design files and customer info. Uploads the design file, creates a review request in the database, and triggers a Stripe payment intent. Returns a payment URL if payment is required. Tiers: - basic: $97 (3-5 day turnaround) - comprehensive: $297 (1-2 day turnaround) Promo codes: LAUNCH99 ($99 basic), PARTNER199 ($199 comprehensive) Args: design_path: Path to design file (Gerber .zip or .kicad_pcb) tier: Review tier (basic or comprehensive) customer_name: Customer's full name customer_email: Customer's email address promo_cod…

  • doc_wip_history

    Show past WiP report deliveries for a project or client. Exactly one of project or client must be provided. Args: project: Filter by project name client: Filter by client email or name limit: Max rows (default 50, max 200) api_key: Optional Bearer token for the landing-page API

  • doc_wip_new

    Scaffold a new WiP engineering report from the standard template. Writes a markdown file at out_path (or Reports/<slug>.md by default). Refuses to overwrite an existing file. Args: project: Short project slug (e.g. "capstone-rev-b") out_path: Output path (default: Reports/<slug>.md) slug: Override the auto-generated slug (default: WiP-<today>-<project>)

  • doc_wip_preview

    Audit a WiP report for IP-leak / formatting issues. Checks for: - Absolute filesystem paths to user/dev locations (error) - AI / LLM attribution in body text (error) - "Client-facing" meta phrasing (warning) - Template author-checklist not removed (error) - Front-matter table missing or with stale Date (warning) Returns findings list; agent should resolve all errors before calling doc_wip_send. Args: report_path: Path to the .md file to audit

  • doc_wip_send

    Send a WiP report — server renders PDF and emails it. Runs the audit in strict mode first; aborts if any errors. Args: report_path: Path to the .md file to: List of recipient email addresses (≥1) project_name: Project name for the email + DB row client_name: Recipient display name client_email: Primary client email (for DB row) subject: Email subject (default: derived from filename) cc: Optional CC recipients bcc: Optional BCC recipients api_key: Optional Bearer token for the landing-page API

  • ecn_create

    Create a new Engineering Change Notice (ECN). The API clones the repo, creates the ECN file in ECO/, commits, and optionally pushes to a branch or creates a PR. For local projects, use: `parts project ecn create --id ECN-021 ...` Args: project_id: Source Parts project ID or git repo URL ecn_id: ECN identifier (e.g. 'ECN-021') title: ECN title describing the issue ecn_type: One of: Design Constraint, Assembly Note, BOM Change, Schematic Change, Process Change severity: One of: CRITICAL, HIGH, MEDIUM, LOW disposition: One of: REQUIRED, RECOMMENDED, OPTIONAL category…

  • ecn_get

    Get the full content of a specific ECN by ID. Returns both structured metadata and the full markdown body. For local projects, use: `parts project ecn get <ECN-ID>` Args: project_id: Source Parts project ID or git repo URL ecn_id: ECN identifier (e.g. 'ECN-006') Returns: ECN metadata and full body content

  • ecn_list

    List all Engineering Change Notices (ECNs) in a project. The API clones the project repo and reads ECO/ECN-*.md files. For local projects, use the `parts` CLI: `parts project ecn list` Args: project_id: Source Parts project ID or git repo URL severity: Filter by severity (CRITICAL, HIGH, MEDIUM, LOW) status: Filter by status (OPEN, IN REVIEW, APPROVED, IMPLEMENTED, CLOSED) ecn_type: Filter by type (Design Constraint, Assembly Note, BOM Change, Schematic Change, Process Change) Returns: List of ECN summaries with counts by severity and status

  • ecn_update

    Update metadata or body of an existing ECN. The API clones the repo, modifies the ECN file, commits, and optionally creates a PR. Only the fields you provide will be changed. For local projects, use: `parts project ecn update ECN-006 --status CLOSED` Args: project_id: Source Parts project ID or git repo URL ecn_id: ECN identifier (e.g. 'ECN-006') status: New status (OPEN, IN REVIEW, APPROVED, IMPLEMENTED, CLOSED) severity: New severity (CRITICAL, HIGH, MEDIUM, LOW) disposition: New disposition (REQUIRED, RECOMMENDED, OPTIONAL) title: New title category: New catego…

  • ecn_validate

    Validate all ECN files for correct frontmatter schema. The API clones the repo and checks all ECO/ECN-*.md files for required fields, valid enum values, and filename/ID consistency. For local projects, use: `parts project ecn validate` Args: project_id: Source Parts project ID or git repo URL Returns: Validation results with error count and per-file details

  • eco_approve

    Approve an ECO and optionally batch-approve its ECNs. Sets the ECO status to AUTHORIZED. If approved_ecn_ids is provided, those ECNs are also moved to APPROVED status. If omitted, all ECNs under the ECO are approved. Args: project_id: Source Parts project ID or git repo URL eco_id: ECO identifier (e.g. 'ECO-001') approved_ecn_ids: Specific ECN IDs to approve (default: all ECNs in this ECO) note: Optional approval note or comment create_pr: If True, create a PR with the changes branch: Target branch for the commit Returns: Approval result with list of ECNs that we…

  • eco_build_status

    Check build readiness — are all ECOs/ECNs resolved? Returns a summary of every ECO and its ECNs, with counts of how many are blocking the build. The build is ready only when every ECN across all ECOs has reached CLOSED or IMPLEMENTED status. This powers the locked/unlocked state of the Build button on source.parts/build. Args: project_id: Source Parts project ID or git repo URL Returns: Build readiness status with per-ECO breakdown: - build_ready: bool - total_ecns: int - resolved_ecns: int - blocking_ecns: int - critical_blocking: int - ecos: list of ECO su…

  • eco_create

    Create a new Engineering Change Order (ECO) that bundles ECNs. The API clones the repo, creates the ECO file in ECO/, commits, and optionally creates a PR. Args: project_id: Source Parts project ID or git repo URL eco_id: ECO identifier (e.g. 'ECO-003') title: ECO title describing the change scope revision: Revision identifier (e.g. 'EVT1 → EVT2', 'DVT updates') ecn_ids: List of ECN IDs to bundle (e.g. ['ECN-041', 'ECN-042']) author: Author name body: ECO body content (markdown) create_pr: If True, create a pull request with the change branch: Target branc…

  • eco_get

    Get full details of a specific ECO including all its ECNs. Returns the ECO metadata, full markdown body, and the complete list of bundled ECNs with their current statuses. Args: project_id: Source Parts project ID or git repo URL eco_id: ECO identifier (e.g. 'ECO-001') Returns: ECO metadata, body content, and nested ECN list with statuses

  • eco_list

    List all Engineering Change Orders (ECOs) in a project. Returns each ECO with its bundled ECN IDs, status, and a summary of how many ECNs are resolved vs blocking. Args: project_id: Source Parts project ID or git repo URL status: Filter by ECO status (e.g. AUTHORIZED, PENDING CLIENT AUTHORIZATION) Returns: List of ECO summaries with per-ECO resolution counts

  • eco_update

    Update an existing ECO's metadata or status. Only the fields you provide will be changed. Use this to authorize an ECO, update its ECN list, or change its status. Args: project_id: Source Parts project ID or git repo URL eco_id: ECO identifier (e.g. 'ECO-001') status: New status (PENDING CLIENT AUTHORIZATION, AUTHORIZED, IN PROGRESS, COMPLETED, REJECTED) title: New title revision: New revision string ecn_ids: Updated list of bundled ECN IDs body: New body content (replaces entire body) create_pr: If True, create a PR with the change branch: Target branch f…

  • edit_schematic_place

    Place a symbol instance in a KiCad schematic. Uploads the schematic to the API for server-side modification. Returns the unified diff of changes for review. Args: file_path: Path to .kicad_sch file or project directory symbol: KiCad lib_id (e.g., "Device:R") reference: Reference designator (e.g., "R1") x: X position in mm y: Y position in mm properties: Optional property overrides {"Value": "10K", ...}

  • edit_schematic_remove

    Remove a component from a schematic by reference designator. Args: file_path: Path to .kicad_sch file reference: Component reference to remove (e.g., "R47")

  • edit_schematic_value

    Update a component property value in a schematic. Args: file_path: Path to .kicad_sch file reference: Component reference designator (e.g., "R47") property_name: Property to update (e.g., "Value", "Footprint") new_value: New value to set

  • edit_schematic_wire

    Add a wire segment between two points in a schematic. Args: file_path: Path to .kicad_sch file start_x, start_y: Wire start coordinates (mm) end_x, end_y: Wire end coordinates (mm)

  • estimate_cost

    Get a quick cost estimate for a list of parts. Each part should have at minimum a part_number and quantity field. Args: parts: List of parts, each with part_number and quantity currency: Currency code (default USD) Returns: Cost estimate with per-part and total breakdown

  • export_parts_to_kicad

    Export parts data in KiCad-compatible format. Args: parts: List of parts to export output_path: Where to save the export format: Export format (csv, json) Returns: Export status

  • extract_bom_from_kicad

    Extract bill of materials from a KiCad project. Args: project_path: Path to KiCad project file (.kicad_pro) Returns: BOM data extracted from the project

  • extract_netlist_from_project

    Extract netlist information from a KiCad project. Args: project_path: Path to KiCad project file (.kicad_pro) Returns: Netlist information

  • find_alternatives

    Find alternative parts with similar specifications. Args: part_number: Original part number parameters: Optional key parameters to match Returns: Alternative parts suggestions

  • find_kicad_projects

    Find KiCad projects in configured search paths. Returns: List of found KiCad projects

  • get_cli_documentation

    Get documentation for the Source Parts CLI tool. Returns usage guides, command reference, and examples for the `parts` CLI. The content returned is automatically tailored to your account. Args: section: Optional topic to focus on (e.g. "auth", "search", "bom", "manufacturing", "project"). Omit for full documentation.

  • get_identified_item

    Get details for an identified PCB/component by short code. Args: short_code: Item short code (e.g., SP-XXXXXX) Returns: Item details with barcodes, OCR text, and metadata

  • get_part_details

    Get detailed information about a specific part. Args: part_number: The part number to look up manufacturer: Optional manufacturer name Returns: Detailed part information

  • get_preferences

    Get user preferences, optionally for a specific device. Preferences are merged: global user defaults are overridden by device-specific values when a device_id is provided. Args: device_id: Optional device identifier (e.g. "macbook", "claude-desktop"). If omitted, returns global user preferences only. Returns: Merged preference key-value pairs

  • get_project_context

    Get project context from .parts/config.yaml and the Source Parts API. Reads the local .parts/config.yaml for project metadata, BOM locations, fabrication settings, and DFM rules. Optionally enriches with API data (BOMs, activity) if the project is linked to Source Parts. Args: project_path: Directory to search from (defaults to cwd) include_api_context: Fetch project data from the Source Parts API include_file_listing: Resolve and check referenced file paths Returns: Project context with local config and optional API data

  • highlight_net_traces

    Highlight specific net traces on a PCB and generate PDF(s). Renders highlighted net traces as vector PDFs. Supports two output modes: - overlay: Full board with all traces in gray, highlighted nets in color - traces_only: Just the highlighted nets + board outline Args: project_path: Path to KiCad project directory or .kicad_pro/.kicad_pcb file net_names: Net names to highlight (e.g. ["nRF54_P", "nRF54_N"]) colors: Optional color mapping {"net_name": "#rrggbb"} mode: "overlay", "traces_only", or "both" (default: "both") output_dir: Where to save PDFs (defaults to project d…

  • identify_pcb

    Identify a PCB or component from a photo. Uploads an image for barcode/QR code detection, OCR text extraction, and component identification. Poll the returned job with check_identification_status; fetch finished items with get_identified_item. Supply exactly one of file_path or image_base64. file_path needs filesystem access, so it works in local mode only; hosted callers pass the image bytes base64-encoded, with filename set so the image type can be inferred (defaults to photo.jpg). Args: file_path: Path to the image file (jpg, png, gif, heic, webp) — local mode only image_…

  • kicad_ctrl_analyze

    Station 1: Analyze a PCB for affected nets. Uploads the .kicad_pcb to the API, which parses all nets and returns an inventory of tracks/vias per net, plus a highlight overlay PDF. IMPORTANT: Review the results before proceeding. Ask the operator to approve before calling kicad_ctrl_propose_ripup. Args: project_path: Path to .kicad_pro, .kicad_pcb, or project directory ecn_id: Optional ECN identifier to extract affected nets net_names: Optional explicit list of net names to analyze Returns: Net inventory with track/via counts and highlight PDF path.

  • kicad_ctrl_erc

    Station 0a: Run Electrical Rules Check on the schematic. Uploads the .kicad_sch to the API, which runs kicad-cli sch erc and returns a violation report + schematic PDF for review. IMPORTANT: Review ERC results before proceeding to netlist diff. Args: project_path: Path to .kicad_pro, .kicad_sch, or project directory Returns: ERC report with violation counts and schematic PDF path.

  • kicad_ctrl_execute_ripup

    Station 3: Execute rip-up — remove tracks and return a diff. The API removes the tracks/vias and returns a unified diff. If apply_diff is True, the diff is applied to the local .kicad_pcb file. Otherwise, the diff is returned for review. IMPORTANT: After applying, open the PCB in KiCad for manual rerouting. Args: project_path: Path to .kicad_pro, .kicad_pcb, or project directory net_names: Net names to rip up apply_diff: If True, apply the diff to the local file Returns: Unified diff text + removal stats.

  • kicad_ctrl_export

    Station 6: Export gerbers, drill files, and positions. Downloads a ZIP from the API containing all fabrication files. Args: project_path: Path to .kicad_pro, .kicad_pcb, or project directory output_dir: Local directory to save the export (default: CAM/ next to PCB) Returns: Path to the exported ZIP and file list.

  • kicad_ctrl_netlist_diff

    Station 0b: Compare old and new schematic netlists. Shows what connectivity changed — added/removed/modified nets and components. This tells you exactly which PCB traces need rerouting. IMPORTANT: Review the diff before proceeding to PCB analysis. Args: project_path: Path to the NEW .kicad_sch (current version) old_schematic: Path to the OLD .kicad_sch (previous version). If not provided, uses git to find the previous version. Returns: Net and component diff with added/removed/changed details.

  • kicad_ctrl_propose_ripup

    Station 2: Propose rip-up — enumerate what would be removed. IMPORTANT: Review the proposal before proceeding. Ask the operator to approve before calling kicad_ctrl_execute_ripup. Args: project_path: Path to .kicad_pro, .kicad_pcb, or project directory net_names: Net names to rip up Returns: Track/via inventory per net with totals.

  • kicad_ctrl_validate

    Station 5: Run DRC validation on the PCB. IMPORTANT: Review DRC results before proceeding to export. Args: project_path: Path to .kicad_pro, .kicad_pcb, or project directory Returns: DRC report with violation counts and details.

  • list_datasheet_sections

    List table-of-contents sections from a datasheet PDF. A lightweight way to discover what's in a datasheet before reading specific chunks with read_datasheet. Returns only section titles and page numbers, no chunk text. Two input modes: - file_path: Upload a local PDF file - sku: Fetch cached data from CDN by part number Args: file_path: Path to a local PDF datasheet sku: Part SKU to fetch cached data for Returns: TOC entries with section titles and page numbers

  • list_devices

    List all devices registered for the current user. Each device has an ID, name, last-seen timestamp, and any device-specific preference overrides. Returns: List of devices with their preferences

  • list_doc_safelist

    List all MIME types currently on the document upload safelist. Returns the full set of file types that are permitted for upload after Magika content-type scanning. Types not on this list will be rejected at the API boundary.

  • logistics_consignment_manifest

    Station 4: Generate a consignment manifest by diffing BOM vs inventory. Uploads BOM and compares against current inventory levels to determine what needs to be shipped to the CM (contract manufacturer). IMPORTANT: Review the manifest before shipping. Verify short items. Args: bom_path: Path to BOM file (.csv or .json) inventory_levels: Dict mapping part_number to quantity on hand at CM cm_address: Contract manufacturer shipping address Returns: Manifest with items to ship, items on hand, and shortages.

  • logistics_create_shipment

    Station 1: Create a shipment with label, packing list, and customs docs. Creates a shipment for an order, generates shipping label data, packing list, and customs declaration for international shipments. IMPORTANT: Review shipment details and label before dispatching. Args: order_id: Order identifier (e.g. ORD-A1B2C3D4) destination: Destination address dict with keys: name, street, city, state, postal_code, country carrier: Preferred carrier (dhl, fedex, sf_express, usps) weight_kg: Package weight in kilograms Returns: Shipment data with label URL, packing list, and cus…

  • logistics_customs_declare

    Station 3: Generate customs declaration from BOM with HS code mapping. Uploads BOM file and maps components to HS codes based on category. Calculates declared values for each line item. IMPORTANT: Review HS codes and declared values before submitting to customs. Args: bom_path: Path to BOM file (.csv or .json) invoice_amount: Total invoice amount in USD destination_country: Destination country code (e.g. US, DE, JP) origin_country: Origin country code (default CN) Returns: Customs declaration with HS-coded line items and total declared value.

  • logistics_inventory_reconcile

    Station 5: Reconcile physical inventory count against system records. Uploads physical count CSV and system inventory CSV. Diffs quantities and reports matches, overages, and shortages. IMPORTANT: Review discrepancies and investigate before adjusting system records. Args: physical_count_path: Path to physical count CSV (columns: part_number, counted_quantity) system_inventory_path: Path to system inventory CSV (columns: part_number, system_quantity) Returns: Reconciliation report with matches, overages, shortages, and accuracy.

  • logistics_track_shipment

    Station 2: Track a shipment and get current status. Returns tracking events with timestamps, locations, and status updates. Args: shipment_id: Shipment identifier (e.g. SHP-A1B2C3D4) carrier: Carrier name (dhl, fedex, sf_express, usps) Returns: Tracking events array with current status and ETA.

  • match_components_to_parts

    Match KiCad components to real parts. Args: components: List of components from KiCad auto_search: Whether to automatically search for parts Returns: Matched components with part suggestions

  • open_in_kicad

    Open a KiCad project in the KiCad application. Args: project_path: Path to KiCad project file Returns: Operation result

  • parts_cli
  • pcb_fab_quote

    Instant cross-vendor PCB fab quote with a cost-driver breakdown and ranked cost-optimization tips (JLCPCB, PCBWay). Replicates the vendors' price calculators so you can optimize board cost from the start — see exactly what each feature (layers, ENIG, 2oz copper, castellated edges, soldermask color, fine traces) adds, and what to change to save money. Board fee only (excludes shipping + tariffs). Args: layers: Copper layer count (1, 2, 4, 6, 8 …). width_mm, height_mm: Board dimensions in mm. qty: Number of boards. finish: Surface finish — HASL, HASL_leadfree, ENIG, OSP, … …

  • quality_compliance_check

    Station 4: Check BOM regulatory compliance for target markets. Uploads BOM and checks every component against RoHS, REACH SVHC, conflict minerals (3TG), and market-specific requirements (CE/UL/CCC). IMPORTANT: Review non-compliant components and compliance summary per market before proceeding with production or export. Args: bom_path: Path to BOM file (.csv or .json) target_markets: List of target market codes (EU, US, CN) Returns: Compliance report per component and per market, with non-compliant list.

  • quality_fai_inspect

    Station 3: First Article Inspection — verify assembled board against BOM. Uploads assembled board photos and BOM file. Server cross-references each visible component against the BOM for presence, polarity, orientation, and correct value. IMPORTANT: Review flagged components manually. Vision-based checks should be confirmed by operator before accepting the first article. Args: board_photos: List of paths to assembled board photos (JPEG/PNG) bom_path: Path to BOM file (.csv or .json) Returns: Inspection report with component statuses, pass rate, and flagged items.

  • quality_iqc_inspect

    Station 1: Incoming quality control inspection. Uploads component reel/packaging photos and PO reference data. Server validates label readability, checks date code freshness, verifies MPN, and checks MSL level. IMPORTANT: Review the inspection checks before accepting components into stock. Rejected components must not enter production. Args: photos: List of paths to component reel/packaging photos (JPEG/PNG) part_number: Expected manufacturer part number (MPN) expected_quantity: Expected quantity from PO expected_date_code: Expected date code (YYWW format, optional) Returns…

  • quality_xray_analyze

    Station 2: X-ray solder joint analysis for BGA/QFN packages. Uploads X-ray images of solder joints. Server analyzes void percentage, checks for solder bridges, head-in-pillow defects, and other anomalies per IPC-7095/IPC-A-610 standards. IMPORTANT: Review the defect report and void percentages before accepting the board. Joints exceeding 25% void require rework. Args: xray_images: List of paths to X-ray images (JPEG/PNG) Returns: Analysis report with joints analyzed, void %, defects, and disposition.

  • quote_assembly

    Get a combined fabrication + assembly quote. Uploads gerbers for fab quotation and a BOM for assembly costing. Polls the BOM status to get a bom_id, then calculates COGS. Args: gerber_path: Path to the gerber zip file bom_path: Path to the BOM file (CSV, XLSX, etc.) quantity: Number of assemblies (default 5) layers: Number of PCB layers (default 2) thickness: Board thickness in mm (default 1.6) surface_finish: Surface finish (HASL, ENIG, OSP, etc.) color: Solder mask color priority: Priority level (low, normal, high) Returns: Combined quote with fab job_i…

  • quote_fabrication

    Get a fabrication quote for a project. Submits a fab quotation request using a project reference. Use upload_gerbers_for_quote to upload gerber files directly instead. Args: project_id: Project ID to quote quantity: Number of boards (default 5) layers: Number of PCB layers (default 2) thickness: Board thickness in mm (default 1.6) surface_finish: Surface finish (HASL, ENIG, OSP, etc.) color: Solder mask color (green, red, blue, black, white, yellow) priority: Priority level (low, normal, high) Returns: Quote result with job_id for tracking

  • read_datasheet

    Read and chunk a datasheet PDF for analysis. Two input modes: - file_path: Upload a local PDF file for chunking - sku: Fetch cached chunks from CDN by part number If query is provided, only chunks matching the query keywords are returned, reducing context usage. Use list_datasheet_sections first to discover what's in a datasheet before reading specific chunks. Args: file_path: Path to a local PDF datasheet sku: Part SKU to fetch cached chunks for query: Optional keywords to filter chunks (e.g. "maximum input voltage") chunk_pages: Pages per chunk (default 5) max_chunks: …

  • remove_doc_safelist

    Remove a MIME type from the document upload safelist. After removal, uploads whose Magika-detected type matches this MIME type will be rejected. Requires admin role. Args: mime_type: MIME type to remove, e.g. "application/pdf".

  • render_schematic

    Render a schematic as PDF for visual review. Uses kicad-cli on the server to export the schematic as a PDF. Args: file_path: Path to .kicad_sch file save_to: Optional directory to save the PDF locally

  • review_schematic

    Compare two schematic versions and return structured diff. Shows added/removed components, changed values, and net changes. Args: old_file_path: Path to the old/baseline .kicad_sch file new_file_path: Path to the new/modified .kicad_sch file

  • sales_commission_calculate

    Station 5: Calculate sales commission on an order. Computes commission payout based on order total and the given commission structure (percentage or flat amount). Args: order_id: Order identifier (e.g. ORD-A1B2C3D4) commission_rate: Commission rate — decimal for percentage (e.g. 0.05 for 5%) or dollar amount for flat commission_type: "percentage" (default) or "flat" Returns: Commission breakdown with net revenue.

  • sales_invoice_generate

    Station 4: Generate invoice data from an order. Creates a draft invoice with line items, tax calculation, totals, and due date based on payment terms. IMPORTANT: Review invoice details before sending to customer. Args: order_id: Order identifier (e.g. ORD-A1B2C3D4) payment_terms: Payment terms (net30, net60, due_on_receipt, etc.) tax_rate: Decimal tax rate (e.g. 0.0875 for 8.75%) Returns: Invoice data with line items, tax, totals, and due date.

  • sales_order_convert

    Station 3: Validate stock/lead times and convert quote to order. Checks inventory for all line items in the quote and flags any shortages or long lead times. If all clear, creates the order. IMPORTANT: Review items at risk before confirming the order. Args: quote_id: Quote identifier to convert (e.g. QUO-A1B2C3D4) Returns: Order readiness report (all clear or items at risk).

  • sales_quote_build

    Station 1: Price a BOM and generate a quote breakdown. Uploads the BOM file to the API, which prices all components using the internal DB, adds fab + assembly + margin, and returns a full quote breakdown for operator review. IMPORTANT: Review the quote before sending to the customer or proceeding to negotiation. Args: bom_path: Path to BOM file (.csv or .json) quantity: Build quantity (number of units) customer_name: Customer name or identifier Returns: Quote breakdown with line items, subtotals, and margin analysis.

  • sales_quote_negotiate

    Station 2: Revise quantities or pricing on an existing quote. Recalculates the quote at new terms and shows the margin delta compared to the original quote. IMPORTANT: Review margin impact before accepting revised terms. Args: quote_id: Existing quote identifier (e.g. QUO-A1B2C3D4) revised_quantity: New build quantity (optional) revised_margin_pct: New margin percentage as decimal (optional, e.g. 0.20 for 20%) Returns: Revised quote with margin delta vs. original.

  • scan_doc

    Scan a local file with Magika to detect its true content type. Uses the Source Parts document scanning API (backed by Google Magika) to identify what a file actually is, regardless of its extension. Useful for checking whether a file would be accepted by the safelist before uploading it. Args: file_path: Absolute path to the local file to scan.

  • sch_check_structure

    Validate structural integrity of a .kicad_sch file. Uploads to /v1/sch/check. Use this before and after edits to confirm the file is intact (paren balance, no premature close, no malformed placed-symbol blocks). Args: schematic_path: Path to .kicad_sch to validate

  • sch_erc_categorize

    Parse a kicad-cli ERC JSON report, group violations by type. Pure-local (no API call). Entry point for an agent deciding what to fix and in what order. Args: erc_report_path: Path to the kicad-cli ERC JSON report Returns: {total, by_type: {type: {count, uuids, sample_description}}, by_sheet?}

  • sch_export_bom

    Extract the bill of materials from a KiCad schematic. Uploads to /v1/eda/sch/export/bom, which runs `kicad-cli sch export bom` server-side, and returns the components both parsed and raw. Prefer this over reading a .kicad_sch yourself — the file's lib_symbols block holds symbol definitions that are easily miscounted as placed parts. Supply exactly one of schematic_path or schematic_content. Args: schematic_path: Path to a .kicad_sch (local mode only) schematic_content: Schematic file text, for hosted mode fields: Comma-separated fields to emit, e.g. "Reference,Value,Footprint" …

  • sch_export_graphic

    Plot a KiCad schematic to PDF, DXF, HPGL or PostScript. Runs `kicad-cli sch export <format>` server-side. For a bill of materials use sch_export_bom instead — it returns parsed components rather than an opaque file. hpgl and ps are plotted one file per page, so those come back as a ZIP archive whatever output_path is named. is_archive says which you got. Supply exactly one of schematic_path or schematic_content. In hosted mode the file is returned base64 in content_base64, since there is no filesystem to write to. Args: format: "pdf", "dxf", "hpgl" or "ps" schematic_path: Path to a…

  • sch_libsync

    Consolidate lib_symbols from sub-sheets into root .kicad_sch. Uploads root + sub-sheets to /v1/sch/libsync. Resolves the lib_symbol_issues class of ERC violations. On name collision, the root's version is kept and the conflict is reported. Args: root_path: Path to root .kicad_sch sub_sheet_paths: List of sub-sheet .kicad_sch paths (≥1) output_path: Output path (default: overwrite root_path)

  • sch_pin_position

    Compute the absolute schematic coordinate of a component pin. Pure math — no file I/O, no API call. Encodes the sym_pos + rotate_CW(angle, negate_Y(pin_lib_pos)) formula that's easy to get wrong by hand. Args: sym_x: Symbol placement X (mm) sym_y: Symbol placement Y (mm) sym_angle: Symbol rotation angle in degrees (CW) pin_lib_x: Pin X in library symbol definition (mm) pin_lib_y: Pin Y in library symbol definition (mm) Returns: {abs_x, abs_y, description}

  • sch_remove_wires

    Remove (wire ...) blocks by UUID from a .kicad_sch. Uploads to /v1/sch/clean with an explicit UUID list. The server verifies paren balance after removal and refuses to return a broken file (returns HTTP 422 instead). On success, writes the modified file back to schematic_path (unless dry_run). Args: schematic_path: Path to .kicad_sch to modify uuids: List of wire UUIDs to remove dry_run: If true, don't write the modified file

  • search_by_marking

    Resolve an IC/SMD top-marking code to candidate parts. The code printed on a package (e.g. "F407VG" on an STM32, "UADD" on a SOT-23) goes in; ranked candidate parts come out. Markings are not unique across vendors, so treat the answer as candidates to confirm against package and pinout, not a definitive ID. Each candidate carries a "match" lane: catalog — a part whose stored marking equals the code identified — a prior identify.parts photo recognition that read this code (returns its mpn_candidates) mpn — a part whose MPN starts or ends with the code …

  • search_by_parameters

    Search parts by specific parameters within a category. BOTH arguments are required — calling with only `parameters` fails with missing_argument: category. Example: search_by_parameters( parameters={"resistance": "10k", "tolerance": "1%", "package": "0603"}, category="resistor", ) Args: parameters: Parametric search criteria as {name: value} category: Part category (required — e.g. "resistor", "capacitor", "mosfet") limit: Maximum results Returns: Matching parts

  • search_parts

    Search for electronic parts across suppliers. Args: query: Search query (part number, description, or keywords) category: Optional category filter (e.g., "resistor", "capacitor") filters: Optional parametric filters (e.g., {"resistance": "10k", "tolerance": "1%"}) limit: Maximum number of results to return Returns: Search results with part information

  • set_preferences

    Set user preferences, optionally for a specific device. Merges the provided key-value pairs into existing preferences. To delete a key, set its value to null. Args: preferences: Key-value pairs to set. Keys use dot notation (e.g. "ecn.default_author", "fab.default_scale"). device_id: Optional device identifier. If provided, preferences are stored as device-specific overrides. Returns: Updated preferences

  • submit_dfm

    Queue a DFM (Design for Manufacturability) analysis for a project. Args: project_id: Project ID to analyze bom_id: Optional BOM ID to include in analysis revision: Optional revision identifier notes: Optional notes for the analysis priority: Priority level ("low", "normal", "high") Returns: Submission result with job_id for tracking

  • suggest_reroute

    Suggest routing paths for disconnected nets after rip-up. Runs an A* pathfinder on the server and returns suggested track segments as KiCad S-expressions for operator review. Args: file_path: Path to .kicad_pcb file nets: List of net names to route grid_step: Routing grid resolution in mm (default 0.25) layer: Copper layer to route on (default "F.Cu") width: Track width in mm (default 0.25)

  • supply_chain_avl_qualify

    Station 2: Check components against AVL rules and score counterfeit risk. Uploads the BOM file to the API, which checks each component against the Approved Vendor List (AVL): authorized distributors, source control requirements (e.g. SI1304BDL), and counterfeit risk scoring based on component age, popularity, and price anomalies. IMPORTANT: Review flagged components before proceeding with procurement. Args: bom_path: Path to BOM file (.csv or .json) Returns: Component-level AVL status (approved/flagged/rejected) with risk scores.

  • supply_chain_obsolescence_check

    Station 3: Check lifecycle status for each part and suggest alternatives. Uploads the BOM file to the API, which checks each component's lifecycle status (active, NRND, obsolete, EOL, unknown) and suggests drop-in alternatives for at-risk parts. IMPORTANT: Review at-risk components and alternatives before design freeze. Args: bom_path: Path to BOM file (.csv or .json) Returns: Lifecycle status per component with alternative suggestions for at-risk parts.

  • supply_chain_procurement_approve

    Station 1: Group BOM by vendor, check MOQs, calculate price breaks, estimate lead times. Uploads the BOM file to the API, which groups components by vendor, validates minimum order quantities, applies price-break discounts, and estimates lead times for each purchase order. IMPORTANT: Review the purchase orders before placing with vendors. Args: bom_path: Path to BOM file (.csv or .json) quantity: Build quantity (number of units) target_date: Target delivery date (ISO 8601, e.g. 2026-04-15) Returns: Purchase orders grouped by vendor with MOQ status, price breaks, and lead ti…

  • trigger_part_render

    Queue a Blender render job for an electronic component. Every image is generated from parametric .blend templates — no supplier assets. Pass either sku or part_id. The system will match the part to the correct Blender template based on category, package, and MPN suffix. Args: sku: Source Parts SKU (required if no part_id) part_id: Internal part ID (required if no sku) force: If false (default), skip if a render already exists template_override: Force a specific .blend template file Returns: Job ID and status, or existing render URL if short-circuited

  • upload_bom

    Upload a BOM file for processing and part matching. Reads the file from the local filesystem, uploads it to the API for processing. Use check_bom_status with the returned job_id to track progress and see which parts are unknown. Supported formats: CSV, XLSX, XLS, JSON, XML. Args: file_path: Path to the BOM file on the local filesystem Returns: Upload result with job_id for tracking processing status

  • upload_gerbers_for_quote

    Upload a gerber zip file to get a fabrication quote. Reads the gerber zip from disk and submits it for fabrication quotation. Use check_manufacturing_status with the returned job_id to track progress. Args: file_path: Path to the gerber zip file quantity: Number of boards (default 5) layers: Number of PCB layers (default 2) thickness: Board thickness in mm (default 1.6) surface_finish: Surface finish (HASL, ENIG, OSP, etc.) color: Solder mask color (green, red, blue, black, white, yellow) priority: Priority level (low, normal, high) Returns: Quote result with…

  • user_profile

    Get the current user's profile, role, and preferences. Returns the authenticated user's profile including their role level (public, admin, owner), global preferences, and per-device overrides. Returns: User profile with role, preferences, and device list

Signals

Stars
2
Forks
1
Open issues
0
Weekly downloads
55
Last commit
Oct 19, 2026 (10 days ago)
Last release
Aug 16, 2026 (2 months ago)
Last package publish
Aug 16, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.SourceParts/parts-mcp
Version
0.5.3
Auth
Auth not stated
Packages
pypi parts-mcp
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Source Parts MCP server. Agent Mart. https://agentmart.dev/connectors/sourceparts-parts-mcp (last updated 2026-10-24)