MCP server for AI-assisted management of Altium Designer component libraries
- ✓Open-source license (GPL-3.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/embedded-society/altium-designer-mcp{
"mcpServers": {
"altium-designer-mcp": {
"command": "altium-designer-mcp"
}
}
}Resumen de MCP Servers
# altium-designer-mcp
[](https://github.com/embedded-society/altium-designer-mcp/actions/workflows/ci_main.yml)
[](https://app.codecov.io/gh/embedded-society/altium-designer-mcp)
**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.
| Approach | Problem |
|----------|---------|
| Draw every footprint by hand in Altium | Slow and repetitive; the AI can't touch the file |
| Ask an AI to emit the binary file directly | It produces a corrupt file Altium won't open |
| Pre-programmed footprint generators | Only the package types someone coded in advance |
---
## The Core Idea
**The AI handles the intelligence. The tool handles file I/O.**
| Responsibility | Owner |
|---------------|-------|
| IPC-7351B calculations | AI |
| Package layout decisions | AI |
| Style choices | AI |
| Datasheet interpretation | AI |
| Reading/writing Altium files | This tool |
| Primitive placement | This tool |
| STEP model attachment | This tool |
This means the AI can create **any footprint** — not just pre-programmed package types.
See [docs/VISION.md](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.
| If you… | Then… |
|---------|-------|
| Use Claude Code, Claude Desktop, Cursor, Antigravity, VS Code + Copilot — [any MCP client](docs/CLIENT_SETUP.md) — and design in Altium | ✅ This is for you |
| Want pre-baked generators for a fixed set of packages | ❌ Not this — the point is *any* component |
| Don't use Altium | ❌ Not applicable |
---
## Quick Start
> **[Client Setup](docs/CLIENT_SETUP.md)** — 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](docs/USAGE.md)** — what to ask for once it is connected: example
> workflows, prompts and tips, identical for every client.
---
## How It Works
```text
┌─────────────────────────────────────────────────────────────────────────────┐
│ AI-ASSISTED COMPONENT CREATION │
│ │
│ Engineer AI MCP Server │
│ │ │ │ │
│ │ "Create 0603 resistor" │ │ │
│ ├────────────────────────►│ │ │
│ │ │ │ │
│ │ │ AI reasons about: │ │
│ │ │ • IPC-7351B pad sizes │ │
│ │ │ • Courtyard margins │ │
│ │ │ • Silkscreen/symbol style │ │
│ │ │ │ │
│ │ │ write_pcblib(primitives) │ │
│ │ ├─────────────────────────────►│ │
│ │ │ │ Writes │
│ │ │ │ .PcbLib + │
│ │ │ write_schlib(symbol) │ .SchLib files │
│ │ ├─────────────────────────────►│ │
│ │ │◄─────────────────────────────┤ │
│ │ │ { status: "success" } │ │
│ │ │ │ │
│ │ "Done! Footprint │ │ │
│ │ and symbol created" │ │ │
│ │◄────────────────────────┤ │ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
```
---
## 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](docs/TOOLS.md)** — this is the categorised overview.
### Read & write
| Tool | Purpose |
|------|---------|
| [`read_pcblib`](docs/TOOLS.md#read_pcblib) | Read footprints from a `.PcbLib`. |
| [`write_pcblib`](docs/TOOLS.md#write_pcblib) | Write footprints to a `.PcbLib`. |
| [`read_schlib`](docs/TOOLS.md#read_schlib) | Read symbols from a `.SchLib`. |
| [`write_schlib`](docs/TOOLS.md#write_schlib) | Write symbols to a `.SchLib`. |
### Inspect & visualise
| Tool | Purpose |
|------|---------|
| [`list_components`](docs/TOOLS.md#list_components) | List component names (paginated). |
| [`get_component`](docs/TOOLS.md#get_component) | Get one component's full data. |
| [`search_components`](docs/TOOLS.md#search_components) | Search across libraries by regex/glob. |
| [`component_exists`](docs/TOOLS.md#component_exists) | Check whether components exist. |
| [`render_footprint`](docs/TOOLS.md#render_footprint) | ASCII-art preview of a footprint. |
| [`render_symbol`](docs/TOOLS.md#render_symbol) | ASCII-art preview of a symbol. |
| [`extract_style`](docs/TOOLS.md#extract_style) | Extract styling from an existing library. |
### Compare
| Tool | Purpose |
|------|---------|
| [`diff_libraries`](docs/TOOLS.md#diff_libraries) | Compare two library files. |
| [`compare_components`](docs/TOOLS.md#compare_components) | Diff two specific components. |
### Edit in place
| Tool | Purpose |
|------|---------|
| [`update_component`](docs/TOOLS.md#update_component) | Update a component, preserving its position. |
| [`update_pad`](docs/TOOLS.md#update_pad) | Update one pad's properties. |
| [`update_primitive`](docs/TOOLS.md#update_primitive) | Update one primitive (track/arc/text/fill/region). |
| [`batch_update`](docs/TOOLS.md#batch_update) | Batch updates across all components. |
| [`reorder_components`](docs/TOOLS.md#reorder_components) | Reorder components in a library. |
| [`manage_schlib_parameters`](docs/TOOLS.md#manage_schlib_parameters) | List/get/set/remove SchLib parameters. |
| [`manage_schlib_footprints`](docs/TOOLS.md#manage_schlib_footprints) | Manage footprint links in SchLib symbols. |
### Manage components
| Tool | Purpose |
|------|---------|
| [`delete_component`](docs/TOOLS.md#delete_component) | Delete one or more components. |
| [`copy_component`](docs/TOOLS.md#copy_component) | Duplicate a component within a library. |
| [`rename_component`](docs/TOOLS.md#rename_component) | Rename a component (atomic). |
| [`copy_component_cross_library`](docs/TOOLS.md#copy_component_cross_library) | Copy a component to another library. |
| [`bulk_rename`](docs/TOOLS.md#bulk_rename) | Pattern-based multi-rename. |
### Library operations
| Tool | Purpose |
|------|---------|
| [`merge_libraries`](docs/TOOLS.md#merge_libraries) | Merge multiple libraries into one. |
| [`write_libpkg`](docs/TOOLS.md#write_libpkg) | Write a `.LibPkg` project grouping libraries for IntLib compilation. |
| [`export_library`](docs/TOOLS.md#export_library) | Export to JSON/CSV. |
| [`import_library`](docs/TOOLS.md#import_library) | Import from JSON (inverse of export). |
| [`validate_library`](docs/TOOLS.md#validate_library) | Validate for common issues. |
| [`repair_library`](docs/TOOLS.md#repair_library) | Remove orphaned data. |
| [`extract_step_model`](docs/TOOLS.md#extract_step_model) | Extract embedded STEP 3D models. |
### Backups & safety
| Tool | Purpose |
|------|---------|
| [`list_backups`](docs/TOOLS.md#list_backups) | List automatic backups. |
| [`restore_backup`](docs/TOOLS.md#restore_backup) | Restore from a backup. |
## Primitive Types
### Footprint Primitives (PcbLib)
| Primitive | Description |
|-----------|-------------|
| **Pad** | SMD or through-hole pad with designator, position, size, shape, layer (see Pad Shapes below) |
| **Via** | Vertical interconnect with layer span, hole size, and thermal relief |
| **Track** | Line segment on any layer (silkscreen, assembly, etc.) |
| **Arc** | Arc or circle on any layer |
| **Region** | Filled polygon (courtyard, copper pour) |
| **Text** | Text string with font, size, position, layer |
| **Fill** | Filled rectangle on any layer |
| **ComponentBody** | 3D model reference (embedded STEP models) |
#### Pad Shapes and Pin 1 Indicator
The `shape` property on pads controls the copper shape. Use this to indicate pin 1:
| Shape Lo que la gente pregunta sobre altium-designer-mcp
¿Qué es embedded-society/altium-designer-mcp?
+
embedded-society/altium-designer-mcp es mcp servers para el ecosistema de Claude AI. MCP server for AI-assisted management of Altium Designer component libraries Tiene 50 estrellas en GitHub y su última actualización registrada es del 2026-09-02.
¿Cómo se instala altium-designer-mcp?
+
Puedes instalar altium-designer-mcp clonando el repositorio (https://github.com/embedded-society/altium-designer-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar embedded-society/altium-designer-mcp?
+
Nuestro agente de seguridad ha analizado embedded-society/altium-designer-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene embedded-society/altium-designer-mcp?
+
embedded-society/altium-designer-mcp es mantenido por embedded-society. La última actividad registrada en GitHub es del 2026-09-02, con 0 issues abiertos.
¿Hay alternativas a altium-designer-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega altium-designer-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/embedded-society-altium-designer-mcp)<a href="https://claudewave.com/repo/embedded-society-altium-designer-mcp"><img src="https://claudewave.com/api/badge/embedded-society-altium-designer-mcp" alt="Featured on ClaudeWave: embedded-society/altium-designer-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!