一个全面的 模型上下文协议 (MCP) 服务器,为 Fluent UI React 组件开发提供智能辅助。此服务器作为您的 AI 助手,帮助您创建、验证和维护遵循 v9 设计系统模式的 Fluent UI 应用程序。
什么是 MCP? 模型上下文协议使 AI 助手能够安全地访问外部数据源和工具。此服务器通过深入的 Fluent UI 知识扩展了 AI 的能力。
makeStyles 和设计令牌生成样式# 克隆或下载服务器
cd fluentui-mcp-server
# 安装依赖
npm install
# 构建服务器
npm run build
# 测试服务器
npm run test
# 启动 MCP 服务器
npm start
# 或在开发模式中运行并启用热重载
npm run dev
服务器提供了组织成 4 类别的 12 种强大工具:
get_component_info获取关于任何 Fluent UI 组件的综合信息。
{
"name": "get_component_info",
"arguments": {
"componentName": "Button"
}
}
返回: 完整的组件文档,包括描述、属性、插槽、示例和可访问性指南。
search_components根据功能、类别或关键词查找组件。
{
"name": "search_components",
"arguments": {
"query": "表单输入",
"category": "inputs",
"limit": 5
}
}
get_component_props获取特定组件的详细属性信息。
{
"name": "get_component_props",
"arguments": {
"componentName": "Avatar",
"propName": "size"
}
}
get_component_examples检索组件的使用示例。
{
"name": "get_component_examples",
"arguments": {
"componentName": "Card",
"exampleType": "advanced"
}
}
get_design_tokens按类别访问设计令牌,并附带使用指南。
{
"name": "get_design_tokens",
"arguments": {
"category": "colors",
"includeUsage": true
}
}
类别: colors, typography, spacing, shadows, borders, motion
validate_design_tokens检查代码中的令牌使用情况并提出改进建议。
{
"name": "validate_design_tokens",
"arguments": {
"code": "const styles = makeStyles({ color: '#0078d4' });"
}
}
generate_component生成带有 TypeScript 的完整组件实现。
{
"name": "generate_component",
"arguments": {
"componentName": "CustomCard",
"componentType": "layout",
"requirements": "用于用户资料的卡片组件,包含头像和简介"
}
}
组件类型: form-input, layout, feedback, navigation
generate_component_hook创建符合 Fluent UI 模式的自定义钩子。
{
"name": "generate_component_hook",
"arguments": {
"componentName": "CustomButton",
"hookType": "state-management"
}
}
generate_component_styles生成带有设计令牌的 makeStyles 实现。
{
"name": "generate_component_styles",
"arguments": {
"componentName": "CustomCard",
"slots": ["root", "header", "content", "footer"]
}
}
validate_component_design全面的设计验证并评分。
{
"name": "validate_component_design",
"arguments": {
"componentCode": "const Button = () => { ... }",
"componentName": "Button"
}
}
返回: 验证分数(0-100),发现的问题和改进建议。
check_accessibility分析组件的可访问性合规性。
{
"name": "check_accessibility",
"arguments": {
"componentCode": "const Component = () => { ... }"
}
}
analyze_component_patterns检测组件代码中的模式和反模式。
{
"name": "analyze_component_patterns",
"arguments": {
"componentCode": "const Component = () => { ... }"
}
}
服务器包含了跨越所有类别的 50 多个 Fluent UI v9 组件的综合知识:
<details> <summary><strong>🔤 输入组件 (15+)</strong></summary>访问完整的 Fluent UI 设计令牌系统,跨越 6 类别的 45 多个令牌:
colorNeutralForeground1; // #242424 - 主要文本
colorNeutralBackground1; // #ffffff - 默认背景
colorBrandBackground; // #0078d4 - 主要品牌
colorStatusSuccessBackground1; // 成功状态
colorStatusErrorBackground1; // 错误状态
// ... 更多
fontFamilyBase; // 'Segoe UI', 系统字体
fontSizeBase100; // 10px
fontSizeBase200; // 12px
fontSizeBase300; // 14px
fontWeightRegular; // 400
fontWeightSemibold; // 600
// ... 完整比例
spacingHorizontalXS; // 2px
spacingHorizontalS; // 4px
spacingHorizontalM; // 8px
spacingHorizontalL; // 12px
spacingHorizontalXL; // 16px
// ... 完整间距比例
shadow2; // 微弱的提升
shadow4; // 卡片提升
shadow8; // 对话框提升
shadow16; // 最大提升
borderRadiusNone; // 0px
borderRadiusSmall; // 2px
borderRadiusMedium; // 4px
borderRadiusLarge; // 6px
strokeWidthThin; // 1px
strokeWidthThick; // 2px
durationUltraFast; // 50ms
durationFaster; // 100ms
durationFast; // 150ms
durationNormal; // 200ms
curveAccelerateMax; // 缓入曲线
curveDecelerateMax;
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_component_info", "arguments": {"componentName": "Button"}}}' | node dist/server.js
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "generate_component", "arguments": {"componentName": "UserCard", "componentType": "layout", "requirements": "显示用户头像、姓名和角色的卡片"}}}' | node dist/server.js
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "validate_component_design", "arguments": {"componentCode": "const Button = () => <button>点击</button>", "componentName": "Button"}}}' | node dist/server.js
src/
├── server.ts # 主 MCP 服务器实现
├── types.ts # TypeScript 接口
└── tools/
├── component-tools.ts # 组件知识与搜索
├── design-tools.ts # 设计令牌与验证
├── generation-tools.ts # 代码生成模板
└── validation-tools.ts # 设计与可访问性验证
data/
├── components.json # 组件数据库
└── patterns.json # 设计模式与模板
# 安装依赖
npm install
# 开发模式并启用热重载
npm run dev
# 为生产构建
npm run build
# 运行测试
npm test
# 代码检查
npm run lint
# 类型检查
npm run type-check
npm start - 启动 MCP 服务器npm run dev - 开发模式并使用 tsxnpm run build - TypeScript 编译npm test - 测试服务器功能npm run lint - ESLint 代码检查# 测试服务器启动并列出工具
npm run test
# 手动测试使用 curl/echo
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | node dist/server.js
此服务器兼容任何 MCP 客户端。以下是集成方法:
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"fluentui": {
"command": "node",
"args": ["/path/to/fluentui-mcp-server/dist/server.js"]
}
}
}
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const client = new Client(
{
name: "my-app",
version: "1.0.0",
},
{
capabilities: {},
}
);
const transport = new StdioClientTransport({
command: "node",
args: ["./dist/server.js"],
});
await client.connect(transport);
服务器实现了全面的验证规则:
我们欢迎贡献!以下是开始的方法:
git clone https://github.com/yourusername/fluentui-mcp-server.git
cd fluentui-mcp-server
git checkout -b feature/new-component-support
data/components.json 中添加新组件src/tools/ 中实现新工具npm run build
npm test
npm run lint
MIT 许可证 - 详情见 LICENSE 文件。
为 Fluent UI 社区打造的 ❤️
使用 [