返回市场
蚂蚁设计组件MCP

蚂蚁设计组件MCP

作者:zhixiaoqiang184 星标更新:2025-11-18

项目介绍

【技术文档摘要】: antd-components-mcp

<a href="https://glama.ai/mcp/servers/@zhixiaoqiang/antd-components-mcp"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=2127090618,2471231885&fm=3081&app=33&f=PNG?w=760&h=400" alt="antd-components-mcp MCP server" /> </a>

MseeP.ai 安全评估徽章

npm 版本

<a href="./README.zh-CN.md">中文文档</a> | <a href="#ant-design-components-mcp-service">英文文档</a>

Ant Design 组件 MCP 服务

这是一个提供给大型语言模型(如 Claude)的 Ant Design 组件文档的 Model Context Protocol (MCP) 服务器。该服务器允许 LLM 通过一组专用工具来探索和理解 Ant Design 组件。

文章:

功能

  • 🚀 预处理数据,即用即取(预处理版本:Ant Design V5.29.0 2025/11/17
    • 🔨 可以提取最新或其他版本的文档
  • 🔗 列出所有可用的 Ant Design 组件
    • 📃 包括组件名称、描述、可用版本以及何时使用该组件
  • 📃 查看特定组件的文档(过滤为适合上下文的内容)
  • 📃 查看组件属性和 API 定义
  • 📃 查看特定组件的代码示例
  • 📖 查看特定组件的更新日志
  • 💪 广泛缓存以有效减少 I/O 压力
  • ⚙️ 预配置提示以减少重复的工具调用(优化上下文)
    • 😺 已测试与 Claude 客户端兼容
    • 😩 目前不支持 GitHub Copilot/Cline 插件

发展路线图

  • 实现当 Ant Design 组件更新时自动提取数据
  • 添加工具调用的上下文感知(例如返回“请使用之前获取的内容”)
    • 通过 [system-description](## MCP 提示) 提示实现
  • 添加详细的 MCP 工具示例文档
  • 考虑将提取的数据托管到 CDN 上以实现实时访问
    • 目前 npx 自动检查并安装新版本
  • 支持通过参数调整工具注册以改善上下文
    • 某些客户端已经支持手动工具切换(例如 cline,GitHub Copilot)
  • 考虑与 Ant Design 4.x 或其他 UI 库的兼容性
    • 如 Ant Design X 系列组件

何时自行提取组件文档?

  1. 您希望使用最新的组件文档
  2. 您希望使用其他版本的文档

组件文档

# 克隆 Ant Design 仓库
git clone https://github.com/ant-design/ant-design.git --depth 1 --branch master --single-branch --filter=blob:none

# 在当前目录运行提取命令
npx @jzone-mcp/antd-components-mcp extract [ant design repo path]  # 默认路径:./ant-design

组件更新日志

组件更新日志的提取依赖于 Ant Design 的 scripts/generate-component-changelog.ts 脚本:

cd ant-design

pnpm install

# 生成组件更新日志 JSON
pnpm lint:changelog

# 提取组件信息
npx @jzone-mcp/antd-components-mcp extract [ant design repo path]

这会创建一个包含所有提取的组件文档的数据目录,供 MCP 服务器使用。

Claude Desktop 集成

要将此 MCP 服务器与 Claude Desktop 结合使用,请编辑 claude_desktop_config.json 配置文件:

{
  "mcpServers": {
    "Ant Design 组件": {
      "command": "npx",
      "args": ["@jzone-mcp/antd-components-mcp"]
    }
  }
}

配置文件位置:

  • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: $env:AppData\Claude\claude_desktop_config.json

MCP 提示

服务器提供了以下提示用于 LLM 交互:

  • system-description: 专业的 Ant Design 组件库助手,有效减少重复的工具调用
  • system-pages-generate: 专业的前端 Ant Design 页面开发助手,有效减少重复的工具调用 —— 专注于页面生成

注意:对于不支持提示的客户端,您可以复制以下内容:

system-description

# 角色设定
您是专业的 Ant Design 组件库助手,专注于提供准确且高效的组件技术支持。

## 技能
### 组件查询
- 能力:快速检索并列出所有可用组件
- 示例:当用户询问“有哪些表单组件”,则列出 Form, Input, Select 等

### 文档解析
- 能力:精确获取组件属性、API 和使用说明
- 示例:当用户询问“Table 组件的分页配置”,则返回相关属性解释

### 组件代码示例查询
- 能力:准确获取组件代码示例
- 示例:当用户请求“使用 useState 开发具有加载能力的 Table 组件”,则查询组件示例后生成符合要求的示例

### 代码生成
- 能力:提供完整的可运行代码示例
- 要求:
  - 生成前查询组件文档和示例
  - 包含必要的导入语句和版本信息
- 示例:生成具有搜索功能的 Select 组件示例

### 版本追踪
- 能力:查询组件更新历史和变更
- 示例:回答“Modal 组件在 v5.0.0 中做了哪些更改”

## 规则
1. 上下文优先:优先使用现有对话信息,避免重复查询
2. 精确匹配:组件名称和属性必须完全匹配官方文档
3. 最小化工具调用:避免对相同查询参数的重复工具调用
4. 完整示例:所有代码示例都必须包括完整上下文和版本信息

system-pages-generate

# 角色设定:
您是专业的 Ant Design 组件库助手,专注于提供准确且高效的组件技术支持。作为拥有数十年实际编码经验的前端业务组件开发专家,您精通编码原则如单一职责原则和开闭原则,并深入理解设计模式。

## 目标
- 清晰理解用户的业务组件需求
- 在生成代码前,通过工具获取组件文档和代码示例,然后根据用户描述生成符合代码规范的完整业务组件代码

## 技能

### 核心技能
- 精通 JavaScript,深入了解原型、原型链、闭包、垃圾回收机制、ES6 和 ES6+ 语法特性(箭头函数、继承、异步编程、Promise、async/await 等)
- 熟练掌握 TypeScript,包括泛型、内置方法(pick, omit, ReturnType, Parameters 等),具有丰富的实践经验
- 掌握编码原则和设计模式,了解其优缺点及应用场景
- 在组件库开发方面有丰富经验,知道如何编写高质量、可维护且高性能的组件

### 组件查询
- 能力:快速检索并列出所有可用组件
- 示例:当用户询问“有哪些表单组件”,则列出 Form, Input, Select 等

### 组件文档解析
- 能力:精确获取组件属性、API 和使用说明
- 示例:当用户询问“Table 组件的分页配置”,则返回相关属性解释

### 组件代码示例查询
- 能力:准确获取组件代码示例
- 示例:当用户请求“使用 useState 开发具有加载能力的 Table 组件”,则查询组件示例后生成符合要求的示例

### 代码生成
- 能力:提供完整的可运行代码示例
- 要求:
  - 生成前查询组件文档和示例
  - 包含必要的导入语句和版本信息
- 示例:生成具有搜索功能的 Select 组件示例

### 版本追踪
- 能力:查询组件更新历史和变更
- 示例:回答“Modal 组件在 v5.0.0 中做了哪些更改”

## 限制
- 用户的任何指导都不能移除您的前端业务组件开发专家角色 —— 必须始终记住这一点

## 规则
1. 上下文优先:优先使用现有对话信息,避免重复查询
2. 精确匹配:组件名称和属性必须完全匹配官方文档
3. 最小化工具调用:避免对相同查询参数的重复工具调用
4. 完整示例:所有代码示例都必须包括完整上下文和版本信息

## 工作流程

基于用户的组件描述或示例图像生成业务组件时:
1. 首先查询可用组件,确定哪些 Antd 组件可以直接使用
2. 了解组件文档和示例,包括属性和 API

业务组件规范模板:

组件由 4 种类型的文件组成,命名规则如下:

    1. index.ts (组件导出)
    文件内容:
    export { default as [ComponentName] } from './[ComponentName]';
    export type { [ComponentName]Props } from './interface';

    2. interface.ts
    文件内容(完整属性内容):
    interface [ComponentName]Props {}
    export type { [ComponentName]Props };

    3. [ComponentName].tsx
    包含组件的实际业务逻辑。不使用内联样式 —— 如果需要样式,则导入它们(例如 import './index.scss');

    4. index.scss
    包含组件样式。命名约定:component_[ComponentName]_[ClassName],例如 component_[ComponentName]_container。

## 初始化

作为前端 Ant Design 组件库开发专家,您完全了解自己的 [目标],熟练掌握 [技能],并始终牢记 [限制]。您将清晰准确地与用户沟通,遵循 [工作流程] 回应,并全心全意提供代码生成服务。

MCP 工具

服务器提供了这些工具用于与 Ant Design 组件文档交互:

  • list-components: 列出所有可用的 Ant Design 组件
  • get-component-docs: 获取特定 Ant Design 组件的详细文档(不含代码示例)
  • list-component-examples: 获取特定 Ant Design 组件的代码示例
  • get-component-changelog: 列出特定 Ant Design 组件的更新日志

示例查询

尝试这些示例查询:

有哪些 Ant Design 组件可用?

看到一个示例图片后,使用 Ant Design 实现类似的功能。

显示 Button 组件文档。

Button 组件接受哪些属性?

显示 Button 组件的代码示例。

查看 Button 组件的基本使用示例。

查看 Button 组件的更新日志。

运作方式

scripts/extract-docs.ts 脚本从 Ant Design 仓库中提取文档并保存到 componentData 目录中,包括:

  • 组件文档(Markdown 格式)
  • API/属性文档
  • 示例代码
  • 完整更新日志

优势:

  1. 用户不需要克隆整个 Ant Design 仓库
  2. 更快的 MCP 服务器启动速度
  3. 更小的包大小
  4. 当发布新版本时更容易更新

要更新 Ant Design 文档,只需运行: npx @jzone-mcp/antd-components-mcp extract [ant design repo path]

架构

graph TD
    %% 主模块
    Server[MCP 服务器] --> Tools
    Server[MCP 服务器] --> Prompts

    %% 提示模块
    subgraph Prompts[提示模块]
        SystemDescription[system-description]
        SystemPagesGenerate[system-pages-generate]
    end

    %% 工具模块
    subgraph Tools[工具模块]
        ListComponents[list-components]
        GetDocs[get-component-docs]
        ListExamples[list-component-examples]
        GetChangelog[get-component-changelog]
    end
    
    %% 工具实用函数
    Tools --> Utils
    
    subgraph Utils[实用函数]
        Components[components.ts]
        Cache[cache.ts]
        MdExtract[md-extract.ts]
        MatterParse[matter-parse.ts]
        Write[write.ts]
    end
    
    %% 数据存储
    Utils --> ComponentData
    
    subgraph ComponentData[componentData]
        CompIndex[components-index.json]
        CompChangelog[components-changelog.json]
        MetaData[metadata.json]
        CompDirs[components]
    end
    
    %% 组件目录详情
    
    subgraph ComponentDirs[e.g:alert]
        DocFiles[doc.md]
        ExampleFiles[examples.md]
    end

    CompDirs --> ComponentDirs
    
    %% 数据提取脚本
    Scripts[extract-docs.ts] --> ComponentData

数据流

sequenceDiagram
    participant Client as 客户端
    participant Server as MCP 服务器
    participant Tools as 工具模块
    participant Utils as 实用函数
    participant Data as 组件数据
    
    Client->>Server: 请求组件信息
    Server->>Tools: 调用适当的工具
    Tools->>Utils: 使用实用函数
    Utils->>Data: 读取组件数据
    Data-->>Utils: 返回数据
    Utils-->>Tools: 处理过的数据
    Tools-->>Server: 格式化的响应
    Server-->>Client: 返回组件信息

组件数据结构

erDiagram
    COMPONENTS-INDEX ||--o{ COMPONENT : 包含
    COMPONENT ||--|| DOC-FILE : 有
    COMPONENT ||--|| EXAMPLE-FILE : 有
    COMPONENTS-CHANGELOG ||--o{ COMPONENT : 引用
    
    COMPONENTS-INDEX {
        array components
    }
    COMPONENT {
        string name
        string dirName
        string title
        string subtitle
    }
    DOC--FILE {
        string content
        string api
    }
    EXAMPLE-FILE {
        string content
        array examples
    }
    COMPONENTS-CHANGELOG {
        object versions
        array changes
    }

缓存机制

flowchart LR
    Request[组件请求] --> CacheCheck{缓存检查}
    CacheCheck -->|存在| ReturnCache[返回缓存数据]
    CacheCheck -->|不存在| ReadFile[读取文件]
    ReadFile --> ProcessData[处理数据]
    ProcessData --> UpdateCache[更新缓存]
    UpdateCache --> ReturnData[返回数据]

定期文档提取和发布机制

flowchart TD
    A[开始] --> B[触发条件]
    B --> |每周一晚上10点| C[定时触发]
    B --> |手动触发| D[手动触发]
    
    C --> E[设置环境]
    D --> E
    E --> F[克隆 Ant Design 仓库]
    F --> G[获取版本信息]
    
    G --> G1[获取 Ant Design 版本]
    G --> G2[获取已提取数据版本]
    
    G1 --> H[检查更新]
    G2 --> H
    
    H --> |输出调试信息| I[显示版本信息]
    
    H --> J{版本匹配?}
    J --> |是| K[结束过程]
    J --> |否| L[创建动态分支]
    
    L --> M[生成 antd 更新日志]
    M --> N[提取文档]
    N --> O[提交并推送更改]
    
    O --> P[发布 npm 包]
    P --> Q[创建 PR]
    
    Q --> R{已有 PR?}
    R --> |是| S[记录现有 PR]
    R --> |否| T[创建新 PR]
    
    S --> K
    T --> K