
Altium Designer Mcp
io.github.embedded-society由 GitHub 账号 embedded-society 发布v1.4.0更新于 Nov 3, 2026
文件 I/O 和基元放置工具,让 AI 助手能够创建和管理 Altium 库。
AI 翻译由 AI 模型根据下方的原文描述翻译,可能有误。
原文描述
File I/O and primitive-placement tools so AI assistants can create and manage Altium libraries.
概览
Altium Designer 的本地 MCP 服务;无需登录;STDIO。
暂无 AI 概览:以下信息来自注册中心条目和服务本身。
安装
在 SourceWeft 中
- 打开 控制台中的 Altium Designer Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
altium-designer-mcp
[CI] [codecov] [altium-designer-mcp MCP server – quality and maintenance score on Glama] [altium-designer-mcp MCP server on mcprush]
Let an AI build your Altium libraries — it does the engineering, this tool writes the files.
An MCP server that gives AI assistants (Claude Code, Claude Desktop, Cursor, Antigravity, VS Code Copilot — any MCP client) file I/O
and primitive-placement tools for Altium Designer .PcbLib (footprint) and .SchLib (symbol)
libraries — so the AI can create and maintain any component, not just pre-programmed packages.
The Problem
Building Altium component libraries by hand is slow and repetitive — every footprint means
looking up IPC-7351B pad sizes, courtyards, and silkscreen, then placing each primitive by
hand. AI assistants are excellent at exactly that reasoning, but they cannot write Altium's
binary .PcbLib/.SchLib files — an undocumented OLE compound format that is easy to
corrupt, and Altium silently refuses to open a malformed file.
The Core Idea
The AI handles the intelligence. The tool handles file I/O.
This means the AI can create any footprint — not just pre-programmed package types. See docs/VISION.md for the full architectural rationale.
Who Is This For?
Anyone who builds or maintains Altium component libraries and uses an MCP-capable AI
assistant. The AI does the engineering (datasheet → dimensions → style); this server lets it
read and write the actual .PcbLib / .SchLib files.
Quick Start
Client Setup — verified configuration for Claude Code, Claude Desktop, Google Antigravity, Cursor, VS Code, GitHub Copilot CLI, Windsurf, Cline, Roo Code, Kiro, JetBrains, Zed, Gemini CLI, Codex CLI, Continue, Goose, OpenCode and any other stdio MCP client, plus troubleshooting — on Windows, Linux, and macOS.
Using the server — what to ask for once it is connected: example workflows, prompts and tips, identical for every client.
How It Works
MCP Tools
The server exposes 34 tools, working on both .PcbLib (footprints) and
.SchLib (symbols). Every tool's full parameters and examples live in
docs/TOOLS.md — this is the categorised overview.
Read & write
Inspect & visualise
Compare
Edit in place
Manage components
Library operations
Backups & safety
Primitive Types
Footprint Primitives (PcbLib)
Pad Shapes and Pin 1 Indicator
The shape property on pads controls the copper shape. Use this to indicate pin 1:
Example — marking pin 1 with a rectangular pad:
This follows the IPC-7351 convention where pin 1 has a distinct shape (typically rectangular or square corners) while other pads use rounded corners.
Symbol Primitives (SchLib)
Standard Altium Layers
Common layers for footprints (each has a Bottom equivalent):
Additional layers supported:
A layer may be named as Altium spells it (Top Overlay, Mechanical 13) or in camel
case (TopOverlay, Mechanical13), in any case; every tool accepts the same spellings.
Installation
Prebuilt binaries for Linux (x86_64), macOS (aarch64) and Windows (x86_64) are on the
Releases page — each
archive bundles a setup README plus docs/CLIENT_SETUP.md, which
wires the server into every MCP client we know of. The Linux binary needs glibc 2.34 or newer:
Ubuntu 22.04, Debian 12, RHEL 9 (and its free rebuilds, AlmaLinux and Rocky Linux 9) and later.
Claude Desktop users need no archive at all: install the one-click extension
altium-designer-mcp.mcpb from the same page (older builds: the identical
altium-designer-mcp.dxt) via Settings → Extensions → Advanced settings →
Install Extension… — see CLIENT_SETUP.md § Claude Desktop.
Code signing policy: docs/CODE_SIGNING_POLICY.md. The Windows binaries are to be signed through SignPath Foundation; until that is approved they are unsigned, and every release carries a signed build-provenance attestation.
In a container — for a Linux box, a NAS or a CI job that generates libraries into a
mounted folder (Altium itself never needs to be inside): the repository's Dockerfile
produces the same --locked release build as the published binaries.
The mounted /libraries folder is the container's whole allow-list. In a client's
configuration that is "command": "docker" with
"args": ["run", "-i", "--rm", "-v", "/path/to/libraries:/libraries", "altium-designer-mcp"].
To build from source instead, see
CONTRIBUTING.md § Development Setup; an optimised
binary comes from cargo build --release and lands at target/release/altium-designer-mcp.
Verifying a downloaded release
Released archives are built by GitHub Actions and carry a signed SLSA build provenance attestation, so a download can be traced back to the workflow run and commit that produced it:
The binaries are not code-signed, so Windows SmartScreen and macOS Gatekeeper warn on first run (on macOS, right-click → Open). The attestation is the stronger check. See docs/RELEASING.md for how releases are produced.
Command-Line Usage
Connecting an AI client
Every MCP client needs the same two absolute paths — the binary and your config file — and differs only in where they are written. The standard block most clients read:
Where that goes for Claude Desktop, Cursor, VS Code, Windsurf, Cline, Zed, JetBrains,
Gemini CLI, Codex CLI and the rest — and what to do when a client cannot see the server —
is in docs/CLIENT_SETUP.md. Use absolute paths: clients do not
search PATH or expand ~ for you.
Configuration
The server reads one JSON file — or none: altium-designer-mcp --allow <DIR> grants
folders on the command line and runs on defaults for everything else, which is how the
Claude Desktop extension starts it. Configuration file location:
- Linux/macOS:
~/.altium-designer-mcp/config.json - Windows:
%USERPROFILE%\.altium-designer-mcp\config.json
Configuration Options
STEP Model Integration
STEP models are attached, not generated. The tool links existing STEP files to footprints.
Embedded vs External Models
Altium supports two ways to reference 3D models:
When copying or merging components between libraries:
- Embedded models travel with the component —
copy_component_cross_libraryandmerge_librariesboth copy the referenced model streams into the target (a model shared by several footprints is copied once), so the bodies still resolve after the move. - External model references:
copy_component_cross_libraryremoves them with a warning by default, since a path relative to the source library rarely resolves elsewhere — passpreserve_external_paths=trueto keep them.merge_librariescarries them unchanged.
Embedding a model in the source library is the reliable way to keep 3D data through any copy.
Extracting Embedded Models
Use extract_step_model to extract embedded STEP data from a library:
For parametric 3D model generation, a dedicated mechanical MCP server is planned as a future project.
Automatic Backups
Before any destructive operation (delete, update, merge, batch update), the server automatically creates a timestamped backup of the target file. Backups use the format:
A backup never replaces another: a second one within the same second is
MyLibrary.PcbLib.20260125_143022_001.bak, then _002, and so on.
Backup retention: The 5 most recent backups per file are kept, and so is the first one the server made of the file since it started, which holds the file as it was before the session's changes. Older backups are automatically removed to prevent unbounded disk usage.
Operations that create backups:
delete_componentupdate_componentupdate_padupdate_primitiverename_componentcopy_componentcopy_component_cross_library(target file)merge_libraries(target file)reorder_componentsbatch_updatebulk_renamerepair_librarymanage_schlib_parametersmanage_schlib_footprintswrite_pcblib/write_schlib(when overwriting)import_library(when overwriting)restore_backup(the current file, before the chosen backup replaces it)
Managing backups: Use list_backups to view available backups and restore_backup to
recover from a previous version.
Dry-run support: These operations support dry_run=true to preview changes
without modifying files:
delete_component— preview which components would be deletedupdate_component— preview component replacement changesupdate_pad/update_primitive— preview property changesbulk_rename— preview name changesrepair_library— preview orphaned references to removebatch_update— preview library-wide updatescopy_component/rename_component/merge_libraries
Notes
Libraries from a Non-Western Windows
Altium stores most names as plain bytes in the Windows code page of the machine that wrote
them, with no record of which page that was. A library authored on a Chinese, Japanese,
Korean, Central European, Cyrillic, Greek, Turkish, Baltic, Hebrew, Arabic, Vietnamese or
Thai Windows therefore reads as mojibake (£¨0402 for (0402) in a tool that assumes
Windows-1252.
This server works out the library's code page from the footprints whose real name is recorded twice — once as those bytes, once in Unicode — reads every name through it, and writes it back unchanged, so a rewrite stays byte-identical. Nothing needs configuring to read or edit such a library.
Two cases are worth knowing:
- A name your Altium must display. Altium Designer 21 and earlier show a footprint's
name from those bytes, decoded through the code page of the machine they run on, and
never read the Unicode copy. A new or renamed footprint is therefore written in the
server's own code page — the system's on Windows. When the server runs on a machine with
a different locale from the Altium that opens the libraries, name that page with
ansi_code_pagein the configuration file or--ansi-code-pageon the command line (874, 932, 936, 949, 950, 1250 to 1258, or 65001). - A character the page cannot hold. Altium writes
?in its place, and so does this server; the full name is still preserved in the component parameters, as Altium preserves it, and comes back intact on the next read.
Long Component Names
Component names longer than 31 characters are supported. The OLE Compound File format limits storage names to 31 characters, so longer names are automatically truncated internally while the full name is preserved in component parameters. This is handled transparently — you can use any length component name and it will be preserved on read/write roundtrips.
Privacy Policy
altium-designer-mcp is a local tool and collects nothing.
- Data collection: none. The server has no telemetry and no analytics, and it never
contacts any service, including this project's. With
--httpit listens for an MCP client on the address you give; it still sends nothing anywhere. - Usage and storage: it reads and writes only the library files inside the folders
you grant (
allowed_pathsor--allow), plus the timestamped.bakcopies it makes beside them before a change. The optional audit log (logging.audit_log_path) is a local file you choose, holding tool names, file names and outcomes — never library contents. - Third-party sharing: none. Nothing leaves your machine.
- Data retention: the files and backups stay until you delete them; backups are capped at the five most recent per library.
- Contact: [email protected], or a GitHub issue for anything that need not be private.
Documentation
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
- Follow the style guide in STYLE.md
- Security issues: see SECURITY.md
Development
Write-path tests generate their own data programmatically; reader tests parse the committed
Altium-authored golden fixtures (see Sample Files). Temporary files are
created in .tmp/ (git-ignored) and automatically cleaned up.
The full build, formatting, and lint commands are canonical in CONTRIBUTING.md § Development Setup.
Licence
Copyright (C) 2026 The Embedded Society https://github.com/embedded-society/altium-designer-mcp.
GNU General Public License v3.0 — see LICENCE.
Links
Sample Files
Altium-authored sample libraries are committed under scripts/samples/ as golden fixtures:
the reader tests (tests/samples_pcblib.rs, tests/samples_schlib.rs) parse them in CI as
ground truth. The PowerShell/DelphiScript tooling that (re)generates them needs a real Altium
installation and is manual-only.
See scripts/README.md for details on the sample files and the on-site tooling.
Prior Art & Acknowledgements
This project stands on the shoulders of several excellent open-source efforts, and we're grateful for each:
- AltiumSharp (MIT) — the most complete open Altium
reader/writer. Used as the authoritative reference (its DTOs, binary serialisation code, and golden
TestData) for verifying our binary format against ground truth. - pyAltiumLib — an independent Python reader, used
as our CI readability oracle (
tests/integration/) to check that generated files actually parse. - python-altium — early Altium format documentation.
- coffeenmusic/altium-mcp (MIT) — an MCP server
that drives the live Altium application. It's the complement to this project (we generate and
edit library files offline; it controls a running session). We adapted its RunScript launch +
file-based bridge pattern for our on-site Altium automation
(
scripts/altium/).
来源:README.md,提交 eec84f5
工具
0版本历史
10- v1.4.0最新Nov 3, 2026
- v1.3.1Oct 29, 2026
- v1.3.0Oct 22, 2026
- v1.2.2Oct 9, 2026
- v1.2.1Oct 9, 2026
- v1.2.0Oct 3, 2026
- v1.1.0Sep 25, 2026
- v1.0.5Sep 19, 2026
- v1.0.4Sep 16, 2026
- v1.0.3Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分