一个托管在Railway上的中心化模型上下文协议(MCP)服务器,结合了多个MCP提供商。包括Magic UI、Shadcn UI、Aceternity UI、8bitcn、品牌系统(设计API)、AI路由器和自定义组件——易于扩展以添加更多!
这是一个统一的MCP服务器,托管多个MCP提供商,提供单一端点来访问所有组件库、设计令牌和AI工具。非常适合Lovable开发,其中你需要一致地访问:
npm install
npm start
服务器将在http://localhost:4001上运行(或由PORT环境变量指定的端口)。
将你的GitHub仓库连接到Railway:
Railway会自动执行以下操作:
npm start启动服务器获取你的服务器URL:
https://your-app.railway.app)获取你的Railway服务器URL
https://design-api-mcp-production.up.railway.app在Lovable中,转到MCP/外部服务:
填写连接详情:
基本设置:
设计API MCP服务器(或你喜欢的任何名称)https://design-api-mcp-production.up.railway.appHTTP或MCPMCP端点(如果单独提示):
/mcp/initialize/mcp/tools/list/mcp/tools/call/mcp/resources/list/mcp/resources/readOAuth2设置(如果需要):
lovable-client(或任何值——我们的服务器接受任何值)lovable-secret(或任何值——我们的服务器接受任何值)https://design-api-mcp-production.up.railway.app/oauth2/authorizehttps://design-api-mcp-production.up.railway.app/oauth2/tokenmcp:read mcp:write(或留空)保存并测试:
手动测试连接:
# 健康检查
curl https://design-api-mcp-production.up.railway.app/health
# 应返回:{"status":"ok","service":"mcp-server"}
如果你仍然遇到OAuth错误:
https://design-api-mcp-production.up.railway.app/.well-known/oauth-authorization-serverPOST /mcp/initialize - 初始化MCP连接POST /mcp/tools/list - 列出可用工具POST /mcp/tools/call - 执行工具POST /mcp/resources/list - 列出可用资源POST /mcp/resources/read - 读取特定资源GET /health - 健康检查端点GET / - 服务器信息magicui_get_component - 根据名称获取组件magicui_list_components - 列出所有组件(按类别过滤)magicui_search_components - 关键词搜索组件magicui_get_component_context - 获取详细上下文、用例和示例shadcn_get_component - 根据名称获取组件shadcn_list_components - 列出所有组件(按类别过滤)shadcn_search_components - 关键词搜索组件shadcn_get_component_code - 获取完整源代码shadcn_get_installation_command - 获取CLI安装命令shadcn_get_component_context - 获取详细上下文、用例和示例aceternity_get_component - 根据名称获取组件aceternity_list_components - 列出所有组件aceternity_search_components - 关键词搜索组件aceternity_get_component_context - 获取详细上下文、用例和示例eightbit_get_component - 根据名称获取组件eightbit_list_components - 列出所有组件eightbit_search_components - 关键词搜索组件eightbit_get_component_context - 获取详细上下文、用例和示例品牌系统提供了完整的Design System API,具有嵌套属性访问、验证和有用的错误消息。
brand_get_color - 获取颜色值(支持嵌套:“primary.500”或简单:“success”)
colorName(字符串),theme(可选,默认:“default”)"primary.500","secondary.600","success"brand_list_colors - 列出主题的所有可用颜色
theme(可选)brand_get_spacing - 获取间距值(支持scale.4或semantic.md)
size(字符串),theme(可选)brand_list_spacing - 列出所有间距值
brand_get_typography - 获取字体值(支持嵌套:“fontSizes.base”)
property(字符串),theme(可选)"fontSizes.base","fontFamilies.sans","fontWeights.bold"brand_list_typography - 列出所有字体值
brand_get_radius - 获取边框半径值brand_get_shadow - 获取阴影值brand_get_theme - 获取完整的主题配置brand_list_tokens - 列出主题的所有设计令牌品牌系统功能:
primary.500,fontSizes.base)default,rpg_8bit)所有AI操作都通过n8n网络钩子路由(解耦架构):
ai_call - 通过n8n的通用AI操作ai_summarize - 通过n8n总结内容ai_extract - 通过n8n提取数据ai_generate - 通过n8n生成内容注意:这些工具POST到n8n网络钩子——AI逻辑在下游处理,而不是直接在Lovable中处理。
get_component - 获取自定义组件list_components - 列出自定义组件create_component - 创建新的自定义组件所有组件库提供的资源格式如下:
magicui://<component-name> - Magic UI组件(68个可用)shadcn://<component-name> - Shadcn UI组件(59个可用)aceternity://<component-name> - Aceternity UI组件(96个可用)8bit://<component-name> - 8bitcn组件(55个可用)component://<component-name> - 自定义组件brand://colors - 完整的颜色调色板(支持嵌套访问)brand://spacing - 间距比例(比例+语义值)brand://typography - 字体系统(字体、大小、权重、行高)brand://radii - 边框半径值brand://shadows - 阴影值brand://themes - 完整的主题配置示例用法:
// 获取嵌套颜色
brand_get_color({ colorName: "primary.500", theme: "default" })
// 返回:{ color: "#0ea5e9", valid: true }
// 获取字体
brand_get_typography({ property: "fontSizes.base", theme: "default" })
// 返回:{ value: "1rem", valid: true }
服务器使用模块化架构,使得添加新的MCP提供商变得容易:
在mcp-providers/中创建一个新的提供商文件:
// mcp-providers/my-provider.mjs
export const myProviderTools = [/* 工具定义 */];
export const myProviderResources = [/* 资源定义 */];
export async function handleMyProviderTool(name, args) { /* ... */ }
export async function handleMyProviderResource(uri) { /* ... */ }
在server.mjs中导入并注册:
import { myProviderTools, ... } from "./mcp-providers/my-provider.mjs";
合并到统一的端点:
/mcp/tools/list中的allTools数组/mcp/resources/list中的allResources数组/mcp/tools/call中路由工具调用/mcp/resources/read中路由资源读取mcp-providers/magic-ui.mjs - 68个组件,带有完整的上下文元数据mcp-providers/shadcn.mjs - 59个组件,带有完整的上下文元数据mcp-providers/aceternity-ui.mjs - 96个组件,带有完整的上下文元数据mcp-providers/eightbit.mjs - 55个组件,带有完整的上下文元数据所有组件提供商包括:
get_component_context工具提供详细信息mcp-providers/brand-system.mjsdesign-tokens/*.jsondefault,rpg_8bitmcp-providers/ai-router.mjsN8N_WEBHOOK_URL环境变量mcp-providers/custom-components.mjsPORT - 服务器端口(默认:4001,Railway自动设置)railway-mcp-test/
├── server.mjs # 主统一MCP服务器
├── mcp-providers/ # 模块化MCP提供商模块
│ ├── magic-ui.mjs # Magic UI提供商(68个组件)
│ ├── shadcn.mjs # Shadcn UI提供商(59个组件)
│ ├── aceternity-ui.mjs # Aceternity UI提供商(96个组件)
│ ├── eightbit.mjs # 8bitcn提供商(55个组件)
│ ├── brand-system.mjs # 品牌系统/设计API提供商
│ ├── ai-router.mjs # AI路由器提供商(n8n网络钩子)
│ └── custom-components.mjs # 自定义组件提供商
├── design-tokens/ # 设计令牌JSON文件
│ ├── colors.json # 颜色调色板(default,rpg_8bit)
│ ├── spacing.json # 间距比例
│ ├── typography.json # 字体系统
│ ├── radii.json # 边框半径
│ ├── shadows.json # 阴影值
│ └── themes.json # 主题配置
├── package.json # 依赖项和脚本
├── railway.json # Railway部署配置
├── .gitignore # Git忽略规则
└── README.md # 本文档
服务器使用模块化提供商架构和解耦AI:
提供商模式:
mcp-providers/中的独立模块server.mjs)合并所有提供商解耦AI架构:
组件上下文增强:
useCases - 常见用例commonPatterns - 使用模式whenToUse / whenNotToUse - 指导examples - 代码示例relatedComponents - 相关组件get_component_context工具提供详细的组件信息设计系统API:
*)primary.500,fontSizes.basedefault和rpg_8bit主题