Material 3 MCP Server

Material 3 MCP Server

Provides AI agents with tools to access Material 3 design components, design tokens, icons, and accessibility guidelines across multiple frameworks.

Category
访问服务器

README

Material 3 MCP Server

CI npm version License: MIT

MCP server providing AI agents with convenient access to Material 3 design system components, design tokens, icons, and accessibility guidelines across multiple frameworks.

Features

  • 5 Essential Tools for Material 3 development
  • Multi-framework support:
    • Web Components (Material Web - fully supported)
    • Flutter (Flutter Material - fully supported)
    • 🔜 React, Angular (coming soon)
  • Accessibility-first: WCAG 2.1 guidelines for every component
  • Design tokens: Export in CSS, SCSS, JSON, or JavaScript
  • Icon search: Access to 2,500+ Material Symbols

Quick Start

📚 Documentation

Installation

NPM (Recommended)

npm install -g @weppa-cloud/material3-mcp-server

From Source

git clone <repository-url>
cd material3-mcp-server
npm install
npm run build

Verify installation:

./scripts/test-package.sh

Configuration

Claude Desktop

Edit your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the following configuration:

{
  "mcpServers": {
    "material3": {
      "command": "npx",
      "args": ["-y", "@weppa-cloud/material3-mcp-server"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_optional",
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

Cursor IDE

Add to Cursor settings (~/.cursor/config/mcp.json):

{
  "mcpServers": {
    "material3": {
      "command": "npx",
      "args": ["-y", "@weppa-cloud/material3-mcp-server"],
      "env": {
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

Available Tools

1. list_material_components

List Material 3 components with filters.

Parameters:

  • category (optional): buttons, cards, chips, dialogs, lists, menus, navigation, progress, selection, sliders, text-fields, all
  • complexity (optional): simple, medium, complex, all
  • framework (optional): web, flutter, react, angular, all
  • includeDeprecated (optional): boolean

Example usage:

"List all Material 3 button components"
"Show me simple components for React"

2. get_component_code

Get real source code for Material 3 components.

Parameters:

  • componentName: Component name (e.g., 'button', 'card', 'text-field')
  • framework (optional): web, flutter (default: flutter). React and Angular coming soon.
  • variant (optional): Variant name (e.g., 'filled', 'outlined', 'elevated')
  • includeExamples (optional): boolean (default: true)
  • includeDependencies (optional): boolean (default: true)

Supported Frameworks:

  • Flutter: Fetches Dart code from flutter/flutter GitHub repo
  • Web: Fetches TypeScript/JavaScript from material-components/material-web repo
  • 🔜 React, Angular: Planned for future releases

Example usage:

"Get code for a Material 3 button" → Returns Flutter code (default)
"Get code for an elevated button in Flutter"
"Show me the card component code for web"
"Get outlined button code for Flutter with examples"

3. get_design_tokens

Export Material 3 design tokens in multiple formats.

Parameters:

  • tokenType (optional): color, typography, spacing, elevation, shape, motion, all
  • format (optional): css, scss, json, javascript (default: json)
  • includeDocumentation (optional): boolean (default: true)

Example usage:

"Get Material 3 color tokens in CSS format"
"Export all design tokens as JSON"

4. search_material_icons

Search Material Symbols icon library.

Parameters:

  • query: Search query (e.g., 'home', 'settings')
  • style (optional): outlined, rounded, sharp
  • filled (optional): boolean
  • limit (optional): number (max 100, default 20)

Example usage:

"Search for home icons in Material Symbols"
"Find navigation icons"

5. get_accessibility_guidelines

Get WCAG 2.1 accessibility guidelines for components.

Parameters:

  • componentName: Component name
  • wcagLevel (optional): A, AA, AAA (default: AA)
  • includeARIA (optional): boolean (default: true)
  • includeKeyboard (optional): boolean (default: true)

Example usage:

"What are the accessibility guidelines for Material 3 buttons?"
"Get WCAG AAA guidelines for text fields"

Environment Variables

Core Settings

  • GITHUB_TOKEN (optional): GitHub personal access token for higher API rate limits (5,000/hour vs 60/hour)
  • LOG_LEVEL (optional): DEBUG, INFO, WARN, ERROR (default: INFO)

Web Scraping (Future Feature)

The following environment variables will be used for the upcoming web scraping feature (see PRPs/web-scraping-quick-wins.md):

  • ENABLE_WEB_SCRAPING (optional): Enable web scraping from m3.material.io (default: false)
  • WEB_SCRAPING_RATE_LIMIT (optional): Maximum requests per second for web scraping (default: 10)
  • HTTP_TIMEOUT (optional): HTTP request timeout in milliseconds (default: 5000)
  • HTTP_RETRY_ATTEMPTS (optional): Number of retry attempts for failed requests (default: 3)
  • CACHE_TTL (optional): Cache time-to-live in seconds (default: 3600)
  • CACHE_CHECK_PERIOD (optional): Cache cleanup interval in seconds (default: 600)
  • MIN_COMPONENTS_THRESHOLD (optional): Minimum number of components for healthy cache (default: 15)

Development

Run in Development Mode

npm run dev

Build

npm run build

Test with MCP Inspector

npm run inspector

This opens a web interface at http://localhost:6274 where you can test all tools interactively.

Success Metric

The agent can use the tools conveniently to implement features using Material 3 guidelines.

Testing

The server has been designed to be tested with MCP Inspector following the official MCP guidelines. All tools return structured JSON responses that can be easily consumed by AI agents.

Architecture

material3-mcp-server/
├── src/
│   ├── tools/           # 5 MCP tools
│   ├── providers/       # Data providers (no cache for MVP)
│   ├── utils/           # Logger and validators
│   ├── types/           # TypeScript types
│   └── index.ts         # Entry point
├── build/               # Compiled output
└── package.json

Roadmap

  • [x] Real GitHub API integration for live component code ✅
  • [x] Material Symbols API integration (Iconify JSON) ✅
  • [x] Cache system for optimized performance ✅
  • [x] Unit testing with Vitest ✅
  • [x] CI/CD with GitHub Actions ✅
  • [ ] Web scraping for m3.material.io documentation (optional)
  • [ ] Flutter documentation integration
  • [ ] Figma integration (optional)

Release & Publishing

This project uses automated NPM publishing via GitHub Actions.

For Maintainers

Quick Release

./scripts/release.sh 1.2.0 "New features and improvements"

The script will:

  1. ✅ Update version in package.json
  2. ✅ Run tests and build
  3. ✅ Commit and create git tag
  4. ✅ Push to GitHub
  5. ✅ Create GitHub Release
  6. Trigger automatic NPM publish via GitHub Actions

Manual Release

# Update version in package.json manually
git add package.json
git commit -m "chore: bump version to 1.2.0"
git tag v1.2.0
git push && git push --tags
gh release create v1.2.0 --title "v1.2.0" --notes "Release notes..."

First-time Setup

To enable automatic NPM publishing, configure the NPM_TOKEN secret:

  1. Generate NPM token: https://www.npmjs.com/settings/weppa-cloud/tokens (Automation type)
  2. Add to GitHub: https://github.com/weppa-cloud/material3-mcp-server/settings/secrets/actions
  3. Name: NPM_TOKEN, Value: your token

See RELEASE.md for detailed instructions.

License

MIT

Author

weppa-cloud

Links

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选