Modao Proto
STDIOMCP server for HTML prototyping with generation, design documentation, and import functionality
MCP server for HTML prototyping with generation, design documentation, and import functionality
基于Model Context Protocol的原型生成功能服务,专注于HTML代码生成、设计描述生成和HTML导入功能。
npm install
npm run build
# 基本用法 node dist/index.js --token YOUR_API_TOKEN # 指定API地址 node dist/index.js --token YOUR_API_TOKEN --url https://modao.cc # 启用调试模式 node dist/index.js --token YOUR_API_TOKEN --debug
--token: API服务的访问token(必需)--url: API服务地址(可选,默认:https://modao.cc)--debug: 启用调试模式(可选)适用于所有支持MCP的客户端:
{ "mcpServers": { "modao-proto-mcp": { "command": "npx", "args": [ "-y", "@modao-mcp/modao-proto-mcp", "--token=YOUR_TOKEN", "--url=https://modao.cc" ] } } }
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{ "mcpServers": { "modao-proto-mcp": { "command": "npx", "args": [ "-y", "@modao-mcp/modao-proto-mcp", "--token=YOUR_TOKEN", "--url=https://modao.cc" ] } } }
在 settings.json 中添加:
{ "mcp.servers": { "modao-proto-mcp": { "command": "npx", "args": [ "-y", "@modao-mcp/modao-proto-mcp", "--token=YOUR_TOKEN", "--url=https://modao.cc" ] } } }
在 ~/.windsurf/config.json 中添加:
{ "mcp": { "servers": { "modao-proto-mcp": { "command": "npx", "args": [ "-y", "@modao-mcp/modao-proto-mcp", "--token=YOUR_TOKEN", "--url=https://modao.cc" ] } } } }
在 ~/.claude-code/config.json 中添加:
{ "mcpServers": { "modao-proto-mcp": { "command": "npx", "args": [ "-y", "@modao-mcp/modao-proto-mcp", "--token=YOUR_TOKEN", "--url=https://modao.cc" ] } } }
获取 Token: 如果 token 报错,请登录 modao.cc 或 modao.cc/ai,点击右上角头像 → 令牌设置 → 创建令牌
积分不足: 如果 gen_html 无法生成(积分不够),请到 modao.cc/ai 进行积分充值
根据用户描述生成完整的HTML代码,支持现代化设计和响应式布局。
功能描述:
参数:
user_input (string, 必需): 用户的设计需求描述,例如:'创建一个现代风格的登录页面'reference (string, 可选): 可选的参考信息或上下文返回内容:
<!DOCTYPE html>到</html>)示例:
{ "name": "gen_html", "arguments": { "user_input": "创建一个现代风格的登录页面,包含用户名和密码输入框", "reference": "使用Material Design风格,主色调为蓝色" } }
基于用户简短的设计需求生成详细的设计说明文档。
功能描述:
参数:
user_input (string, 必需): 用户的设计想法或需求描述reference (string, 可选): 可选的参考信息或上下文示例:
{ "name": "gen_description", "arguments": { "user_input": "电商产品列表页面", "reference": "需要支持筛选、排序和分页功能" } }
将通过gen_html工具生成的HTML导入到用户的个人空间中。
功能描述:
参数:
key (string, 推荐): 从gen_html工具响应中获取的key参数,这是导入操作的主要参数htmlString (string, 可选): 可选的HTML字符串内容,通常不需要提供使用建议:
示例:
{ "name": "import_html", "arguments": { "key": "从gen_html工具获取的key值" } }
gen_html 工具根据需求生成HTML代码import_html 工具将生成的HTML导入到个人空间如果需要更详细的设计规范:
gen_description 工具扩展设计需求gen_html 工具import_html 工具保存到个人空间完整示例:
# 1. 生成HTML(基础流程) { "name": "gen_html", "arguments": { "user_input": "创建一个现代风格的登录页面,包含用户名和密码输入框" } } # 2. 导入HTML(使用返回的key) { "name": "import_html", "arguments": { "key": "gen_html工具返回的key值" } }
扩展示例(包含设计描述):
# 1. 生成详细设计描述 { "name": "gen_description", "arguments": { "user_input": "电商产品列表页面", "reference": "需要支持筛选、排序和分页功能" } } # 2. 基于设计描述生成HTML { "name": "gen_html", "arguments": { "user_input": "电商产品列表页面", "reference": "上一步生成的详细设计描述内容" } } # 3. 导入HTML { "name": "import_html", "arguments": { "key": "gen_html工具返回的key值" } }
modao-proto-mcp/
├── src/
│   ├── tools/
│   │   ├── base-tool.ts       # 工具基类,提供通用功能
│   │   ├── gen-html.ts        # HTML生成工具
│   │   ├── gen-description.ts # 设计描述生成工具
│   │   └── import-html.ts     # HTML导入工具
│   ├── http-util.ts           # HTTP工具类,处理API请求
│   ├── types.d.ts             # TypeScript类型定义
│   └── index.ts               # MCP服务器主入口点
├── bin/
│   └── cli.js                 # 命令行执行文件
├── examples/                  # 使用示例和文档
├── scripts/                   # 构建和发布脚本
├── build.js                   # 项目构建配置
├── package.json              # 项目依赖和配置
├── tsconfig.json             # TypeScript配置
├── API.md                    # API详细文档
├── README.md                 # 英文README
└── README.zh-CN.md           # 中文README(本文件)
用户请求 → MCP客户端 → MCP服务器 → HTTP工具类 → 后端API
                                              ↓
                     响应处理 ← 结果格式化 ← API响应
src/tools/ 目录下创建新的工具类文件BaseTool 抽象类getToolDefinition(): 定义工具的MCP规范execute(): 实现工具的核心功能逻辑src/index.ts 的 initializeTools() 方法中注册新工具import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { BaseTool } from './base-tool.js'; import { ToolResult } from '../types.js'; export class MyNewTool extends BaseTool { getToolDefinition(): Tool { return { name: "my_new_tool", description: "工具功能描述", inputSchema: { type: "object", properties: { input_param: { type: "string", description: "参数描述" } }, required: ["input_param"] } }; } async execute(args: Record<string, any>): Promise<ToolResult> { // 实现工具逻辑 const result = await this.httpUtil.post('/api/endpoint', args); return this.createSuccessResult(result.data); } }
validateRequiredArgs() 方法验证必需参数createErrorResult() 和 formatApiError() 处理错误this.httpUtil 发送API请求--debug 参数启用详细日志输出MIT License
欢迎提交Issue和Pull Request!
import_html)gen_description)gen_html)