Token导航 LogoToken导航TokenDH.com
Altium Designer MCP logo
设计创作未说明官方级别未说明来源级核验

Altium Designer MCP

MCP Server

一个AI操作的Altium Designer库编辑器,提供文件I/O和基本放置工具,使AI助手能够创建和管理Altium Designer组件库。

工具数

33

提示词数

0

GitHub Stars

15

资源数

0
RustClaude设计Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

embedded-society

提供方

embedded-society

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

altium设计师mcp

人工智能操作的Altium Designer库编辑器。

提供文件I/O和基本放置工具的MCP服务器,支持AI助手 (Claude Code、Claude Desktop、VSCode Copilot)创建和管理Altium Designer 组件库。

______________________________________________________________________

核心思想

人工智能处理智能。该工具处理文件I/O。

责任所有者
IPC-7351B计算人工智能
包装布局决策AI
风格选择AI
数据表解释AI
读取/写入Altium文件此工具
图元放置此工具
STEP模型附件此工具

这意味着AI可以创造 任何足迹 --不仅仅是预编程的包类型。 看 docs/VISION.md 了解完整的架构原理。

______________________________________________________________________

Claude Code快速入门

Claude代码设置指南 --完成分步说明 用于在上使用此MCP服务器和Claude Code CLI 视窗, Linux,以及 macOS.

______________________________________________________________________

运作原理

┌─────────────────────────────────────────────────────────────────────────────┐
│  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 │
│    │                         ├─────────────────────────────►│               │
│    │                         │◄─────────────────────────────┤               │
│    │                         │  { success: true }           │               │
│    │                         │                              │               │
│    │  "Done! Footprint       │                              │               │
│    │   and symbol created"   │                              │               │
│    │◄────────────────────────┤                              │               │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

______________________________________________________________________

MCP工具

read_pcblib

读取Altium的脚印 .PcbLib 文件。所有坐标单位均为毫米。

{
    "name": "read_pcblib",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib"
    }
}

分页选项 (适用于大型图书馆):

{
    "name": "read_pcblib",
    "arguments": {
        "filepath": "./LargeLibrary.PcbLib",
        "component_name": "RESC1608X55N",
        "limit": 10,
        "offset": 0,
        "compact": true
    }
}
参数说明
component_name仅获取此特定足迹
limit返回的最大足迹
offset跳过前N个足迹
compact统一时省略冗余的每层焊盘数据(默认值: true)

write_pcblib

在Altium上留下脚印 .PcbLib 文件。人工智能提供了原始定义。

{
    "name": "write_pcblib",
    "arguments": {
        "filepath": "./Passives.PcbLib",
        "footprints": [{
            "name": "RESC1608X55N",
            "description": "Chip resistor, 0603 (1608 metric)",
            "pads": [
                { "designator": "1", "x": -0.75, "y": 0, "width": 0.9, "height": 0.95 },
                { "designator": "2", "x": 0.75, "y": 0, "width": 0.9, "height": 0.95 }
            ],
            "tracks": [
                { "x1": -0.8, "y1": -0.425, "x2": 0.8, "y2": -0.425, "width": 0.12, "layer": "Top Overlay" },
                { "x1": -0.8, "y1": 0.425, "x2": 0.8, "y2": 0.425, "width": 0.12, "layer": "Top Overlay" }
            ],
            "regions": [
                { "vertices": [{"x": -1.45, "y": -0.73}, {"x": 1.45, "y": -0.73}, {"x": 1.45, "y": 0.73}, {"x": -1.45, "y": 0.73}], "layer": "Top Courtyard" }
            ]
        }],
        "append": false
    }
}
参数说明
append如果 true,向现有文件添加封装;如果 false,创建新文件(默认值: false)

read_schlib

从Altium读取符号 .SchLib 文件。坐标以原理图单位表示(10个单位=1个网格)。

{
    "name": "read_schlib",
    "arguments": {
        "filepath": "./MySymbols.SchLib"
    }
}

分页选项 (适用于大型图书馆):

{
    "name": "read_schlib",
    "arguments": {
        "filepath": "./LargeLibrary.SchLib",
        "component_name": "RES_0603",
        "limit": 10,
        "offset": 0
    }
}

write_schlib

将符号写入Altium .SchLib 文件。人工智能提供了原始定义。

{
    "name": "write_schlib",
    "arguments": {
        "filepath": "./MySymbols.SchLib",
        "symbols": [...],
        "append": false
    }
}
参数说明
append如果 true,将符号添加到现有文件中;如果 false,创建新文件(默认值: false)

符号属性:

属性描述
name符号名称(必填)
description符号说明
designator_prefix指示符前缀(例如“R”、“U”、“C”)
part_count多零件符号的零件数(默认值:1)
pins引脚定义数组

引脚属性:

属性描述
designator引脚编号(必填)
name引脚名称(必填)
x, y以示意图单位表示的位置(必填)
length针脚长度(必填)
orientationleft, right, up, down (必填)
electrical_typeinput, output, bidirectional, passive, power
owner_part_id多零件符号的零件号(从1开始,默认值:1)
symbol_inner_edge内边缘的图钉符号: none, dot, clock, schmitt等等。
symbol_outer_edge外边缘的图钉符号: none, dot, active_low_input等等。
symbol_inside内部引脚符号: none, dot, clock等等。
symbol_outside外部引脚符号: none, dot, clock等等。

list_components

列出Altium库文件中的组件名称。支持大型库的分页。

{
    "name": "list_components",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "limit": 50,
        "offset": 0,
        "include_metadata": true
    }
}
参数必填说明
filepath库文件的路径
limit要返回的最大组件数(默认值:全部)
offset要跳过的组件数量(默认值:0)
include_metadata包括焊盘/引脚计数等组件元数据(默认值: false)

答复包括:

  • total_count:库中的组件总数
  • returned_count:此响应中的组件数量
  • offset:当前偏移
  • has_more:是否有更多组件可用

随着 include_metadata: true (PcbLib):

{
    "components": [
        { "name": "RESC0603", "pad_count": 2, "track_count": 4, "has_3d_model": true }
    ]
}

随着 include_metadata: true (SchLib):

{
    "components": [
        { "name": "RESISTOR", "part_count": 1, "pin_count": 2, "footprint_count": 1 }
    ]
}

extract_style

从现有库中提取样式信息。

{
    "name": "extract_style",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib"
    }
}

返回有关轨迹宽度、焊盘形状、引脚长度、颜色和层使用情况的统计信息。

delete_component

从Altium库文件中删除一个或多个组件。两者都适用 .PcbLib.SchLib 文件夹。 使用 dry_run=true 预览更改而不修改文件。

{
    "name": "delete_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_names": ["OLD_FOOTPRINT", "UNUSED_COMPONENT"],
        "dry_run": false
    }
}
参数说明
component_names要删除的组件名称数组
dry_run如果 true,显示在不修改文件的情况下将删除的内容(默认值: false)

按组件状态返回(deletednot_found)并更新了组件计数。

删除前会自动创建备份(请参阅 自动备份).

validate_library

验证Altium库文件是否存在常见问题。两者都适用 .PcbLib.SchLib 文件夹。

{
    "name": "validate_library",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib"
    }
}

检查:

  • 空组件(无焊盘/引脚)
  • 组件中的重复指示符
  • 无效坐标(NaN,无穷大)
  • 零尺寸或负尺寸
  • 缺少车身图形(SchLib)

返回状态(valid, warnings,或 invalid)发现了一系列问题。

export_library

将Altium库导出为JSON或CSV格式,以进行版本控制、备份或外部处理。

{
    "name": "export_library",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "format": "json",
        "compact": true
    }
}
参数说明
format导出格式: json 对于完整数据, csv 用于汇总表
compact统一时省略冗余的每层焊盘数据(默认值: true)

JSON格式 返回包括所有基元的完整组件数据。

CSV格式 返回一个包含列的摘要表:名称、描述、焊盘/引脚计数等。

extract_step_model

从Altium中提取嵌入式STEP 3D模型。PcbLib文件。模型压缩存储在库中; 此工具将它们提取为独立的.step文件。支持多种提取模式和分页。

{
    "name": "extract_step_model",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "output_path": "./extracted_model.step",
        "model": "RESC1005X04L.step",
        "mode": "auto"
    }
}
参数必填说明
filepath通往的路径。包含嵌入式3D模型的PcbLib文件
output_path保存提取的.step文件的路径。如果省略,则返回base64编码的数据。
model型号名称(例如。, RESC1005X04L.step)或要提取的GUID。如果省略并且只存在一个模型,则自动提取它。如果存在多个模型但未指定模型,则列出可用模型。
mode提取模式: auto (默认), list, extract_all, extract_by_footprint
footprint_name封装名称(必填 extract_by_footprint 模式)
limit要列出的最大模型数(默认值:全部)
offset列出时要跳过的模型数量(默认值:0)

提取模式:

模式描述
auto默认行为——提取单个模型,如果存在多个模型,则列出
list列出所有可用型号,无需提取
extract_all将所有模型提取到一个目录中(需要 output_path 成为一个目录)
extract_by_footprint提取特定足迹使用的模型(需要 footprint_name)

回复(列出型号):

{
    "status": "list",
    "filepath": "./MyLibrary.PcbLib",
    "message": "Multiple models found. Specify 'model' parameter with name or ID to extract.",
    "total_count": 50,
    "returned_count": 10,
    "offset": 0,
    "has_more": true,
    "models": [
        { "id": "{GUID...}", "name": "model1.step", "size_bytes": 12345 },
        { "id": "{GUID...}", "name": "model2.step", "size_bytes": 67890 }
    ]
}

响应(提取成功):

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "output_path": "./extracted_model.step",
    "model_id": "{GUID...}",
    "model_name": "RESC1005X04L.step",
    "size_bytes": 12345,
    "message": "STEP model extracted to './extracted_model.step'"
}

import_library

将组件从JSON数据导入Altium库。这与 export_library — 它接受相同的JSON格式 export_library 生成,实现往返工作流。

{
    "name": "import_library",
    "arguments": {
        "output_path": "./NewLibrary.PcbLib",
        "json_data": {
            "file_type": "PcbLib",
            "footprints": [...]
        },
        "append": false
    }
}
参数说明
output_path输出库文件(.PcbLib或.SchLib)的路径
json_data包含库数据的JSON对象(格式与 export_library 输出)
append如果 true,将组件添加到现有文件中;如果 false,创建新文件(默认值: false)

JSON格式(PcbLib):

{
    "file_type": "PcbLib",
    "footprints": [
        {
            "name": "RESC1608X55N",
            "description": "Chip resistor, 0603",
            "pads": [...],
            "tracks": [...],
            "regions": [...]
        }
    ]
}

JSON格式(SchLib):

{
    "file_type": "SchLib",
    "symbols": [
        {
            "name": "RESISTOR",
            "description": "Generic resistor",
            "pins": [...]
        }
    ]
}

库类型由以下因素确定:

  1. file_type JSON数据中的字段(首选)
  2. 输出文件扩展名(.PcbLib或.SchLib)

使用案例:

  • 往返编辑:导出→ 修改JSON→ 导入
  • 版本控制:将库存储为JSON,需要时导入
  • 迁移:在格式之间转换或合并来自外部源的数据
  • 备份还原:从JSON备份中重新创建库

diff_libraries

比较两个Altium库文件并报告差异。两个文件的类型必须相同。

{
    "name": "diff_libraries",
    "arguments": {
        "filepath_a": "./OldLibrary.PcbLib",
        "filepath_b": "./NewLibrary.PcbLib"
    }
}
参数说明
filepath_a第一个(基本/旧)库的路径
filepath_b第二个(新的/更改的)库的路径

退货:

  • 添加:组件在B中,但不在A中
  • 移除:组件在A中,但不在B中
  • 修改过的:两个组件都发生了变化(计数差异、描述变化)

batch_update

对Altium库文件中的所有组件执行批量更新。支持PcbLib 操作(轨道宽度更新、图层重命名)和SchLib操作(参数更新)。

{
    "name": "batch_update",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "operation": "update_track_width",
        "parameters": {
            "from_width": 0.2,
            "to_width": 0.25,
            "tolerance": 0.001
        }
    }
}
参数说明
filepathPcbLib或SchLib文件的路径
operation其中之一: update_track_width, rename_layer, update_parameters
parameters操作特定参数

PcbLib操作:

操作参数说明
update_track_widthfrom_width, to_width, tolerance更新所有匹配的曲目 from_width (±公差)至 to_width
rename_layerfrom_layer, to_layer将所有图元从一个图层更改为另一个图层

SchLib操作:

操作参数说明
update_parametersparam_name, param_value, symbol_filter?, add_if_missing跨符号更新参数值

示例:重命名图层(PcbLib)

{
    "name": "batch_update",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "operation": "rename_layer",
        "parameters": {
            "from_layer": "Mechanical 1",
            "to_layer": "Mechanical 2"
        }
    }
}

图层名称接受两种间隔格式(Top Layer)和camelCase(TopLayer).

示例:跨符号更新参数(SchLib)

{
    "name": "batch_update",
    "arguments": {
        "filepath": "./MySymbols.SchLib",
        "operation": "update_parameters",
        "parameters": {
            "param_name": "Manufacturer",
            "param_value": "Acme Corp",
            "symbol_filter": "^RES.*",
            "add_if_missing": true
        }
    }
}
参数说明
param_name要更新的参数的名称
param_value参数的新值
symbol_filter可选正则表达式,用于过滤要更新的符号
add_if_missing如果为true,则将参数添加到没有该参数的符号中(默认值:false)

copy_component

复制Altium库文件中的组件。使用以下命令创建新组件 名称不同,但基元相同。可用于创建变体。

{
    "name": "copy_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "source_name": "RESC0603_IPC_MEDIUM",
        "target_name": "RESC0603_IPC_MEDIUM_V2",
        "description": "0603 resistor variant 2"
    }
}
参数说明
filepath库文件的路径(.PcbLib或.SchLib)
source_name要复制的组件的名称
target_name新复制组件的名称
description新组件的可选描述

返回复制后的新组件计数。

rename_component

重命名Altium库文件中的组件。这是一个改变的原子操作 组件的名称,同时保留所有基元和属性。比 复制+删除以进行简单重命名。

{
    "name": "rename_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "old_name": "RESC0603_OLD",
        "new_name": "RESC0603_NEW"
    }
}
参数说明
filepath库文件的路径(.PcbLib或.SchLib)
old_name要重命名的组件的当前名称
new_name组件的新名称

返回重命名后的组件计数(未更改)。

copy_component_cross_library

将组件从一个Altium库复制到另一个库。两个库的类型必须相同 (PcbBib到PcbLib或SchLib到SchLib)。可用于整合库或共享 项目之间的组件。

{
    "name": "copy_component_cross_library",
    "arguments": {
        "source_filepath": "./SourceLibrary.PcbLib",
        "target_filepath": "./TargetLibrary.PcbLib",
        "component_name": "RESC0603_IPC_MEDIUM",
        "new_name": "RESC0603_COPIED",
        "description": "Copied from SourceLibrary",
        "ignore_missing_models": false,
        "preserve_external_paths": false
    }
}
参数说明
source_filepath源库文件(.PcbLib或.SchLib)的路径
target_filepath目标库文件的路径(必须与源文件类型相同)
component_name要从源库复制的组件的名称
new_name目标库中组件的可选新名称(默认为原始名称)
description组件的可选新描述(默认为原始描述)
ignore_missing_models如果 true,即使缺少引用的嵌入式3D模型,也要复制组件(仅限PcbLib)。组件体引用将被删除。(默认值: false)
preserve_external_paths如果 true,保留外部三维模型文件路径引用(默认值: false --外部路径被移除,因为它们不可移植)

行为:

  • 如果目标文件不存在,将创建它
  • 如果目标文件存在,组件将被添加到其中
  • 如果目标中已存在同名组件,则返回错误
  • 嵌入式3D模型与组件(如果存在且有效)一起复制
  • 默认情况下会删除外部STEP文件引用(路径不可移植);使用 preserve_external_paths: true 为了留住他们

merge_libraries

将多个Altium库合并为一个库。所有源库必须相同 类型(全部PcbLib或全部SchLib)。组件从每个源复制到目标库中。

{
    "name": "merge_libraries",
    "arguments": {
        "source_filepaths": [
            "./LibraryA.PcbLib",
            "./LibraryB.PcbLib",
            "./LibraryC.PcbLib"
        ],
        "target_filepath": "./MergedLibrary.PcbLib",
        "on_duplicate": "skip"
    }
}
参数说明
source_filepaths源库文件(.PcbLib或.SchLib)的路径数组
target_filepath目标库文件的路径(将被创建或附加到)
on_duplicate如何处理重复名称: skip (忽略), error (失败), rename (自动后缀)。违约: error

行为:

  • 如果目标文件不存在,将创建它
  • 如果目标文件存在,组件将附加到该文件
  • 重复处理选项:

- error:如果发现重复项,则立即失败(默认) - skip:默默地忽略重复项,保留第一个出现项 - rename:使用自动重命名重复项 _1, _2等后缀

示例响应:

{
    "status": "success",
    "target_filepath": "./MergedLibrary.PcbLib",
    "file_type": "PcbLib",
    "sources_count": 3,
    "merged_count": 45,
    "skipped_count": 2,
    "renamed_count": 0,
    "final_count": 45,
    "message": "Merged 45 components from 3 sources into './MergedLibrary.PcbLib' (total: 45)"
}

reorder_components

在Altium库文件(.PcbLib或.SchLib)中重新排序组件。将所需订单指定为 组件名称列表。不在列表中的组件将放置在原始组件的末尾 相对顺序。

{
    "name": "reorder_components",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_order": ["RESC1608X55N", "RESC0805X40N", "RESC0402X20N"]
    }
}
参数说明
filepath通往的道路。PcbLib或。SchLib文件
component_order组件名称按所需顺序排列

行为:

  • 中列出的组件 component_order 按指定顺序先出现
  • 不在列表中的组件将按其原始相对顺序附加在末尾
  • 姓名在 component_order 库中不存在的内容将被忽略

示例响应:

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "component_count": 5,
    "original_order": ["CAPC0402X20N", "RESC1608X55N", "RESC0805X40N", "RESC0402X20N", "INDC1005X55N"],
    "new_order": ["RESC1608X55N", "RESC0805X40N", "RESC0402X20N", "CAPC0402X20N", "INDC1005X55N"],
    "not_in_library": [],
    "appended_at_end": ["CAPC0402X20N", "INDC1005X55N"],
    "message": "Reordered 5 components in './MyLibrary.PcbLib' (2 components appended at end)"
}

update_component

更新Altium库文件中的组件,保留其位置。对于PcbLib 文件,提供 footprint 对象。对于SchLib文件,请提供 symbol 对象。组件 与 component_name 参数。

{
    "name": "update_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_name": "RESC0402X20N",
        "footprint": {
            "name": "RESC0402X20N",
            "description": "Updated resistor 0402",
            "pads": [
                {"designator": "1", "x": -0.5, "y": 0, "width": 0.5, "height": 0.5, "layer": "TopLayer"},
                {"designator": "2", "x": 0.5, "y": 0, "width": 0.5, "height": 0.5, "layer": "TopLayer"}
            ]
        }
    }
}
参数说明
filepath通往的道路。PcbLib或。SchLib文件
component_name要更新的组件的名称(必须存在)
footprint对于PcbLib:封装数据(格式与 write_pcblib)
symbol对于SchLib:符号数据(格式与 write_schlib)

示例响应:

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "file_type": "PcbLib",
    "component_name": "RESC0402X20N",
    "new_name": "RESC0402X20N",
    "renamed": false,
    "component_count": 5,
    "message": "Updated component 'RESC0402X20N' in './MyLibrary.PcbLib'"
}

search_components

使用正则表达式或glob模式在多个Altium库中搜索组件。退货 将组件名称与其源库路径进行匹配。支持两者 .PcbLib (脚印) 和 .SchLib (符号)文件。

{
    "name": "search_components",
    "arguments": {
        "filepaths": [
            "./Resistors.PcbLib",
            "./Capacitors.PcbLib",
            "./ICs.PcbLib"
        ],
        "pattern": "SOIC-*",
        "pattern_type": "glob"
    }
}
参数说明
filepaths要搜索的库文件路径数组(.PcbLib或.SchLib)
pattern搜索模式以匹配组件名称
pattern_type图案类型: glob (通配符如 *?)或 regex默认值: glob

球形图案:

  • * 匹配任意数量的字符
  • ? 匹配单个字符
  • 搜索不区分大小写

示例响应:

{
    "status": "success",
    "pattern": "SOIC-*",
    "pattern_type": "glob",
    "libraries_searched": 3,
    "components_searched": 150,
    "matches_found": 5,
    "matches": [
        { "name": "SOIC-8", "library": "./ICs.PcbLib", "type": "PcbLib" },
        { "name": "SOIC-14", "library": "./ICs.PcbLib", "type": "PcbLib" },
        { "name": "SOIC-16", "library": "./ICs.PcbLib", "type": "PcbLib" }
    ],
    "message": "Found 5 matches for 'SOIC-*' across 3 libraries (150 components searched)"
}

get_component

从Altium库中按名称获取单个组件。返回完整的组件数据 (封装或符号),无需读取和过滤整个库。支持两者 .PcbLib (脚印)和 .SchLib (符号)文件。

{
    "name": "get_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_name": "SOIC-8"
    }
}
参数说明
filepathAltium库文件的路径(.PcbLib或.SchLib)
component_name要检索的组件的确切名称

示例响应(PcbLib):

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "component_name": "SOIC-8",
    "type": "PcbLib",
    "units": "mm",
    "component": {
        "name": "SOIC-8",
        "description": "8-pin SOIC package",
        "pads": [...],
        "tracks": [...]
    },
    "message": "Retrieved footprint 'SOIC-8' from './MyLibrary.PcbLib'"
}

错误响应(找不到组件):

{
    "isError": true,
    "content": [{
        "type": "text",
        "text": "Component 'SOIC-99' not found in library. Available components: SOIC-8, SOIC-14, SOIC-16 ... and 5 more"
    }]
}

compare_components

详细比较两个特定组件,显示基元、参数和 物业。组件可以来自同一个库或不同的库。返回详细信息 原始电平差(焊盘、轨道、引脚等)。

{
    "name": "compare_components",
    "arguments": {
        "filepath_a": "./LibraryA.PcbLib",
        "component_a": "RESC0603_V1",
        "filepath_b": "./LibraryB.PcbLib",
        "component_b": "RESC0603_V2",
        "include_geometry": true,
        "tolerance": 0.001
    }
}
参数说明
filepath_a第一个库文件(.PcbLib或.SchLib)的路径
component_a第一个组件的名称
filepath_b第二个库文件的路径(可以与 filepath_a)
component_b第二个组件的名称
include_geometry包括详细的几何图形比较(默认值: true)
tolerance浮点比较的公差(mm)(默认值: 0.001)

示例响应:

{
    "status": "different",
    "summary": {
        "identical": false,
        "pad_differences": 2,
        "track_differences": 1,
        "description_changed": true
    },
    "differences": {
        "pads": [
            { "designator": "1", "field": "width", "a": 0.9, "b": 1.0 }
        ]
    }
}

render_footprint

从PcbLib文件渲染足迹的ASCII艺术可视化。显示焊盘、轨迹、, 以及简单文本格式的其他图元,用于快速预览。

{
    "name": "render_footprint",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_name": "RESC0603_IPC_MEDIUM",
        "scale": 2.0,
        "max_width": 80,
        "max_height": 40
    }
}
参数说明
filepathPcbLib文件的路径
component_name要渲染的足迹名称
scale每毫米字符数(默认值:2.0)
max_width最大字符宽度(默认值:80)
max_height最大字符高度(默认值:40)

返回带有完整显示的焊盘指示符的ASCII艺术(例如,“1”、“10”、“A01”)。传说: # =焊盘面积, - =轨道, o =电弧, + =来源。

render_symbol

从SchLib文件中渲染原理图符号的ASCII艺术可视化。显示引脚, 以简单的文本格式显示矩形、线条和其他图元,以便快速预览。

{
    "name": "render_symbol",
    "arguments": {
        "filepath": "./MyLibrary.SchLib",
        "component_name": "LM358",
        "scale": 1.0,
        "max_width": 80,
        "max_height": 40,
        "part_id": 1
    }
}
参数说明
filepathSchLib文件的路径
component_name要渲染的符号的名称
scale每10个原理图单位的字符数(默认值:1.0)
max_width最大字符宽度(默认值:80)
max_height最大字符高度(默认值:40)
part_id多零件符号的零件ID(默认值:1,所有零件使用0)

返回ASCII艺术,其中完整显示了引脚指示符(例如“1”、“10”、“VCC”)。传说: |-+ =矩形, ~ =引脚线, o =电弧, O =椭圆, + =来源。

manage_schlib_parameters

管理Altium SchLib文件中的组件参数。支持列表、获取、设置、, 添加和删除参数,如值、制造商、零件号等。

{
    "name": "manage_schlib_parameters",
    "arguments": {
        "filepath": "./MyLibrary.SchLib",
        "component_name": "LM358",
        "operation": "set",
        "parameter_name": "Value",
        "value": "LM358D"
    }
}
参数说明
filepathSchLib文件的路径
component_name符号名称
operation操作: list, get, set, add, delete
parameter_name参数名称(获取/设置/添加/删除所需)
value参数值(设置/添加时需要)
hidden参数是否隐藏(设置/添加可选)
x, y以原理图单位表示的位置(可选择添加)

操作:

操作说明
list返回符号的所有参数
get按名称返回单个参数
set更新现有参数的值
add创建新参数
delete删除参数

manage_schlib_footprints

管理Altium SchLib符号中的封装链接。支持列出、添加和删除 封装引用将原理图符号链接到PCB封装。

{
    "name": "manage_schlib_footprints",
    "arguments": {
        "filepath": "./MyLibrary.SchLib",
        "component_name": "LM358",
        "operation": "add",
        "footprint_name": "SOIC-8_3.9x4.9mm"
    }
}
参数说明
filepathSchLib文件的路径
component_name符号名称
operation操作: list, add, remove
footprint_name封装名称(添加/删除时需要)
description封装描述(可选添加)

操作:

操作说明
list返回符号的所有链接足迹
add将新足迹链接到符号
remove从符号中删除示意图链接

repair_library

通过删除孤立数据来修复库文件。对于PcbLib文件,这将删除组件主体 指向不存在的嵌入式STEP模型的引用。这修复了三维模型所在的库 数据已损坏或未完全删除。

{
    "name": "repair_library",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "dry_run": true
    }
}
参数说明
filepath库文件(.PcbLib)的路径
dry_run如果 true,报告在不修改文件的情况下将删除的内容(默认值: false)

示例响应:

{
    "library_type": "PcbLib",
    "footprints_checked": 5,
    "orphaned_references_removed": [
        { "footprint_name": "RESC0603", "removed_count": 2 }
    ],
    "total_removed": 2,
    "dry_run": false
}

bulk_rename

使用模式匹配重命名库中的多个组件。支持glob模式和 带有捕获组的正则表达式,用于灵活的批量重命名操作。

{
    "name": "bulk_rename",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "pattern": "^RESC(.*)$",
        "replacement": "RES_$1",
        "pattern_type": "regex",
        "dry_run": true
    }
}
参数说明
filepath库文件的路径(.PcbLib或.SchLib)
pattern匹配组件名称的模式
replacement替换字符串(使用 $1, $2等用于正则表达式捕获组)
pattern_type图案类型: globregex (默认值: glob)
dry_run如果 true,预览更改而不修改文件(默认值: false)

示例响应:

{
    "renamed": [
        { "old_name": "RESC0402", "new_name": "RES_0402" },
        { "old_name": "RESC0603", "new_name": "RES_0603" }
    ],
    "skipped": [],
    "conflicts": [],
    "dry_run": true
}

模式示例:

图案类型图案替换输入输出
globRESC*RES_RESC0603RES_0603 (后缀保留)
正则表达式^RESC(.*)$RES_$1RESC0603RES_0603
正则表达式^(.*)_V(\d+)$$1_REV$2CAP_V2CAP_REV2

component_exists

检查Altium库中是否存在一个或多个组件。可用于验证引用 在执行复制或合并等操作之前。

{
    "name": "component_exists",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_names": ["RESC0603", "CAPC0402", "MISSING_COMPONENT"]
    }
}
参数必填说明
filepath库文件的路径(.PcbLib或.SchLib)
component_namesYes要检查的组件名称数组

答复:

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "file_type": "PcbLib",
    "results": [
        { "name": "RESC0603", "exists": true },
        { "name": "CAPC0402", "exists": true },
        { "name": "MISSING_COMPONENT", "exists": false }
    ],
    "all_exist": false,
    "found_count": 2,
    "missing_count": 1
}

update_pad

更新PcbLib封装中焊盘的特定属性,而无需更换整个组件。 按指示符查找焊盘,并仅更新指定的属性。

{
    "name": "update_pad",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_name": "RESC0603",
        "designator": "1",
        "updates": {
            "width": 1.0,
            "height": 0.9,
            "shape": "rectangle"
        },
        "dry_run": false
    }
}
参数必填说明
filepathPcbLib文件的路径
component_name足迹名称
designator要更新焊盘指示符(例如“1”、“A1”)
updates要更新属性的对象
dry_run预览更改而不修改文件(默认值: false)

可更新的衬垫属性:

属性描述
x, y位置(mm)
width, height衬垫尺寸(mm)
shape衬垫形状: rectangle, round, oval, rounded_rectangle
rotation旋转角度(度)
hole_size孔径(mm)(用于通孔垫)

答复:

{
    "status": "success",
    "component_name": "RESC0603",
    "designator": "1",
    "changes": [
        { "property": "width", "old": 0.9, "new": 1.0 },
        { "property": "height", "old": 0.95, "new": 0.9 },
        { "property": "shape", "old": "RoundedRectangle", "new": "rectangle" }
    ]
}

update_primitive

更新PcbLib封装中图元(轨迹、圆弧、文本、填充、区域)的特定属性。 按类型和索引查找基元,并仅更新指定的属性。

{
    "name": "update_primitive",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_name": "RESC0603",
        "primitive_type": "track",
        "index": 0,
        "updates": {
            "width": 0.15,
            "layer": "Top Overlay"
        },
        "dry_run": false
    }
}
参数必填说明
filepathPcbLib文件的路径
component_name足迹名称
primitive_type类型: track, arc, text, fill, region
indexYes基元在其类型数组中的从零开始的索引
updates要更新属性的对象
dry_run预览更改而不修改文件(默认值: false)

按类型列出的可更新属性:

类型属性
trackx1, y1, x2, y2, width, layer
arcx, y, radius, start_angle, end_angle, width, layer
textx, y, text, height, rotation, layer
fillx1, y1, x2, y2, rotation, layer
regionlayer

list_backups

列出Altium库的可用备份文件。之前会自动创建备份 破坏性操作。

{
    "name": "list_backups",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib"
    }
}
参数必填说明
filepath库文件的路径

答复:

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "backups": [
        {
            "filename": "MyLibrary.PcbLib.20260126_143022.bak",
            "path": "./MyLibrary.PcbLib.20260126_143022.bak",
            "timestamp": "2026-01-26T14:30:22",
            "size_bytes": 45678
        },
        {
            "filename": "MyLibrary.PcbLib.20260125_091500.bak",
            "path": "./MyLibrary.PcbLib.20260125_091500.bak",
            "timestamp": "2026-01-25T09:15:00",
            "size_bytes": 44123
        }
    ],
    "backup_count": 2
}

restore_backup

从备份文件还原Altium库。如果没有指定特定的备份,则恢复 从最近的备份中。

{
    "name": "restore_backup",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "backup_filename": "MyLibrary.PcbLib.20260125_091500.bak"
    }
}
参数必填说明
filepath要还原的库文件的路径
backup_filename要还原的特定备份文件名(默认值:最新)

答复:

{
    "status": "success",
    "filepath": "./MyLibrary.PcbLib",
    "restored_from": "MyLibrary.PcbLib.20260125_091500.bak",
    "backup_timestamp": "2026-01-25T09:15:00",
    "message": "Restored './MyLibrary.PcbLib' from backup 'MyLibrary.PcbLib.20260125_091500.bak'"
}

______________________________________________________________________

原始类型

封装图元(PcbLib)

原始描述
带指示符、位置、尺寸、形状、层的SMD或通孔焊盘(见下面的焊盘形状)
经由具有层跨度、孔尺寸和热释放的垂直互连
轨道任何层上的线段(丝网印刷、装配等)
任何层上的圆弧或圆
区域填充多边形(庭院、铜浇注)
文本带有字体、大小、位置和图层的文本字符串
填充任何图层上的填充矩形
组件主体3D模型参考(嵌入式STEP模型)

焊盘形状和引脚1指示器

shape 焊盘上的属性控制铜的形状。使用此指示引脚1:

形状用法
矩形"rectangle"引脚1指示器 --用于第一个垫子,以便在视觉上区分它
圆角矩形"rounded_rectangle"SMD焊盘的默认值(最常见)
圆形"round""circle"圆形焊盘,默认为通孔(两个值相等)
椭圆形"oval"长方形衬垫,适用于受限空间

示例——用矩形垫标记引脚1:

{
    "pads": [
        { "designator": "1", "x": -0.75, "y": 0, "width": 0.9, "height": 0.95, "shape": "rectangle" },
        { "designator": "2", "x": 0.75, "y": 0, "width": 0.9, "height": 0.95, "shape": "rounded_rectangle" }
    ]
}

这遵循IPC-7351惯例,其中引脚1具有独特的形状(通常是矩形或方形角),而其他焊盘使用圆角。

符号图元(SchLib)

原始描述
带有名称、指示符、电气类型和方向的组件引脚
矩形填充或未填充的矩形(组件主体)
圆角矩形带圆角半径的圆角矩形
线路单线段
多段线多个连接的线段
多边形带边框和填充颜色的填充多边形
圆弧或圆
椭圆椭圆或圆形(填充或未填充)
椭圆弧具有分数半径的椭圆弧段
贝塞尔三次贝塞尔曲线(4个控制点)
标签文本标签(记录=4)
文本文本注释(记录=3)
参数组件参数(值、零件号等)
足迹模型引用PcbLib中的封装

标准Altium层

封装的常见层(每个层都有一个等效的底部):

图层用法
顶层铜焊盘(SMD)
底层底部铜垫
多层通孔焊盘(全铜层)
顶部覆盖丝网印刷
顶部焊膏焊膏模板
顶部焊料焊料掩模开口
顶部组件组件大纲(文件)
顶层庭院庭院边界(IPC-7351)
顶部3D车身3D模型轮廓

支持的其他层:

图层用法
中间层1–30内部铜层
内部平面1-16电源/接地平面
机械1-16用户定义的机械层
钻孔指南钻孔标记
钻孔图钻孔图表/表格
禁止进入层路由禁区

______________________________________________________________________

安装

CONTRIBUTING.md§开发设置 获取构建说明。

发布二进制文件将位于 target/release/altium-designer-mcp.

命令行用法

altium-designer-mcp [OPTIONS] [CONFIG_FILE]
选项描述
CONFIG_FILE配置文件的路径(可选,如果省略,则使用默认位置)
-v, --verbose增加日志记录的详细程度(-v 信息, -vv 调试, -vvv 跟踪)
-q, --quiet降低日志记录的详细程度(仅显示错误)
-h, --help打印帮助信息
-V, --version打印版本信息

使用Claude Desktop

添加到您的Claude Desktop MCP配置中:

{
    "mcpServers": {
        "altium": {
            "command": "altium-designer-mcp",
            "args": ["/path/to/config.json"]
        }
    }
}

______________________________________________________________________

配置

配置文件位置:

  • Linux/macOS: ~/.altium-designer-mcp/config.json
  • 窗户: %USERPROFILE%\.altium-designer-mcp\config.json
{
    "allowed_paths": [
        "/path/to/your/altium/libraries",
        "/another/library/path"
    ],
    "logging": {
        "level": "warn"
    }
}

配置选项

选项描述
allowed_paths可以访问库文件的目录路径数组(默认:当前目录)
logging.level日志级别:跟踪、调试、信息、警告、错误(默认:警告)

______________________________________________________________________

STEP模型集成

STEP模型是 附加,未生成。该工具将现有的STEP文件链接到封装。

{
    "step_model": {
        "filepath": "./3d-models/0603.step",
        "x_offset": 0,
        "y_offset": 0,
        "z_offset": 0,
        "rotation": 0
    }
}

嵌入式与外部模型

Altium支持两种引用3D模型的方式:

类型存储便携性
嵌入式STEP数据存储在内部。PcbLib文件完全可移植——模型随库一起旅行
外部的磁盘上.step文件的文件路径引用不可移植--要求文件存在于引用的路径中

使用时 copy_component_cross_librarymerge_libraries:

  • 嵌入式模型 与组件一起复制
  • 外部模型参考 由于文件路径不能在不同的计算机或目录结构之间移植,因此会被删除并显示警告

要在复制组件时保留三维模型,请确保它们嵌入到源库中(而不是外部引用)。

提取嵌入式模型

使用 extract_step_model 从库中提取嵌入式STEP数据:

{
    "name": "extract_step_model",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "output_path": "./extracted_model.step"
    }
}

对于参数化3D模型生成,计划在未来项目中使用专用的机械MCP服务器。

______________________________________________________________________

自动备份

在执行任何破坏性操作(删除、更新、合并、批量更新)之前,服务器会自动 创建目标文件的带时间戳的备份。备份使用以下格式:

MyLibrary.PcbLib.20260125_143022.bak

备份保留: 每个文件只保留5个最新备份。较旧的备份是 自动删除以防止无限制的磁盘使用。

创建备份的操作:

  • delete_component
  • update_component
  • update_pad
  • update_primitive
  • rename_component
  • copy_component
  • copy_component_cross_library (目标文件)
  • merge_libraries (目标文件)
  • reorder_components
  • batch_update
  • bulk_rename
  • write_pcblib / write_schlib (覆盖时)
  • import_library (覆盖时)

禁用备份: 所有写入操作都接受 create_backup 参数(默认值: true). 设置为 false 要跳过备份创建,请执行以下操作:

{
    "name": "delete_component",
    "arguments": {
        "filepath": "./MyLibrary.PcbLib",
        "component_names": ["OLD_COMPONENT"],
        "create_backup": false
    }
}

管理备份: 使用 list_backups 查看可用备份和 restore_backup 到 从以前的版本恢复。

模拟运行支持: 最具破坏性的行动支持 dry_run=true 预览更改 不修改文件:

  • delete_component --预览要删除的组件
  • update_component --预览组件替换更改
  • update_pad / update_primitive --预览属性更改
  • bulk_rename --预览名称更改
  • repair_library --预览要删除的孤立引用
  • copy_component / rename_component / reorder_components
  • write_pcblib / write_schlib / import_library
  • copy_component_cross_library / merge_libraries

______________________________________________________________________

备注

长组件名称

支持长度超过31个字符的组件名称。OLE复合文件格式限制 存储名称最多为31个字符,因此较长的名称会在内部自动截断,同时 全名保留在组件参数中。这是透明处理的——你可以 使用任何长度的组件名称,它将在读/写往返时保留。

______________________________________________________________________

贡献

欢迎投稿!看 贡献.md 作为指导方针。

______________________________________________________________________

发展

运行测试

cargo test

测试是自包含的,并以编程方式生成自己的数据。临时文件创建于 .tmp/ (git被忽略)并自动清理。

代码质量

cargo fmt --check  # Check formatting
cargo clippy       # Lint

______________________________________________________________________

许可证

版权所有(C)2026嵌入式社会 .

GNU通用公共许可证v3.0--请参阅 许可证.

______________________________________________________________________

链接

______________________________________________________________________

示例文件

Altium库文件示例包含在 scripts/ 文件夹 仅手动调试. 自动测试不依赖于这些文件。

scripts/README.md 有关可用示例文件和分析脚本的详细信息。

______________________________________________________________________

现有技术

该项目建立在以下工作的基础上:

目录标签

目录标签

RustClaude设计AltiumDesigner本地部署库编辑AI辅助设计PCB设计电子设计自动化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

33

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP