8000 GitHub - andoma/viaduct · GitHub
[go: up one dir, main page]

Skip to content
andomaPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

viaduct-mcp

MCP server bridging Altium 365 design data (schematics, netlists, components, BOM, PCB info) to AI assistants via the Nexar GraphQL API.

Prerequisites

  • Node.js 18+
  • An Altium 365 workspace with design data
  • Nexar API credentials (see below)

Getting Nexar API Credentials

  1. Go to portal.nexar.com and create a free account
  2. Choose an organization name during signup
  3. Once logged in, create a new Application — this generates your Client ID and Client Secret
  4. Copy both values; you'll need them to configure the MCP server

The free tier allows limited supply queries (design queries are unlimited). You can test your credentials in the Nexar IDE before configuring the server.

Note for SSO / enterprise Altium users: Nexar and Altium 365 have separate account systems. The Nexar organization you create during signup does not need to match your Altium 365 org — it's just a container for your API keys. What matters is that you sign up for Nexar with the same email/SSO identity that has access to your Altium 365 workspace. Nexar uses that identity to resolve which A365 workspaces and designs the API can see. If you're the first person in your Altium org to use Nexar, you'll be prompted to create a new Nexar organization — this is expected and won't conflict with your existing A365 setup.

Setup

npm install
npm run build

Configure as an MCP server

Add to your .mcp.json (project-level) or ~/.claude/mcp.json (global):

{
  "mcpServers": {
    "viaduct": {
      "command": "npx",
      "args": ["tsx", "src/index.ts"],
      "env": {
        "NEXAR_CLIENT_ID": "<your client id>",
        "NEXAR_CLIENT_SECRET": "<your client secret>"
      }
    }
  }
}

Or using the compiled output:

{
  "mcpServers": {
    "viaduct": {
      "command": "node",
      "args": ["/absolute/path/to/viaduct/dist/index.js"],
      "env": {
        "NEXAR_CLIENT_ID": "<your client id>",
        "NEXAR_CLIENT_SECRET": "<your client secret>"
      }
    }
  }
}

Available Tools

Workspace & Library

Tool Description
list_workspaces List all accessible Altium 365 workspaces and their projects.
get_library_components Get the full workspace component library with parameters and manufacturer parts.

Project Navigation

Tool Description
list_projects List all projects in a workspace.
get_project_documents Get schematic and PCB document IDs/names for a project, including both WIP and released variants.

Design Data

Tool Description
get_nets Get net names and trace lengths from a project's PCB. Optionally filter by name pattern and include pad geometry.
get_bom Get the BOM for a project. Default mode returns a compact list; use mode='full' for complete data including parameters and supplier parts. Can filter by designator prefix.
search_component_supply Search for component supply/availability by manufacturer part number (MPN). Returns stock levels and seller info.

Analysis

Tool Description
bom_summary Get a compact BOM summary grouped by component category (ICs, passives, connectors, etc.) with key IC identification. Much smaller than get_bom.
search_nets Search for nets by name pattern (regex) and return their trace lengths. Use this instead of get_nets for targeted queries.
trace_length_analysis Analyze trace length matching for a group of nets. Returns min/max/spread/deviation stats. Use for checking DDR, SPI, RGMII, or other matched-length signal groups.
get_component_pins Get the pin-to-net mapping for a specific component on the PCB. Returns each pin/pad with the net it connects to, enriched with pin function names and datasheet URL from the workspace library. Essential for verifying MCU peripheral pin assignments and catching polarity errors.

Development

npm run dev    # run with tsx (auto-reloads)
npm run build  # compile to dist/

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

0