MasterGo Magic MCP
OfficialMasterGo 魔法 MCP
MasterGo Magic MCP 是一项独立的 MCP(模型上下文协议)服务,旨在将 MasterGo 设计工具与 AI 模型连接起来。它使 AI 模型能够直接从 MasterGo 设计文件中检索 DSL 数据。
主要特点
从 MasterGo 设计文件中检索 DSL 数据
直接使用 npx 运行
无需外部依赖,只需要 Node.js 环境
Related MCP server: Vextra MCP Server
教程
用法
获取MG_MCP_TOKEN
进入个人设置
单击安全设置选项卡
查找个人访问令牌
点击生成token
命令行选项
npx @mastergo/magic-mcp --token=YOUR_TOKEN [--url=API_URL] [--rule=RULE_NAME] [--debug]参数:
--token=YOUR_TOKEN(必需):用于身份验证的 MasterGo API 令牌--url=API_URL(可选):API 基本 URL,默认为http://localhost:3000--rule=RULE_NAME(可选):添加要应用的设计规则,可多次使用--debug(可选):启用调试模式以获取详细的错误信息
您还可以对参数使用空格分隔的格式:
npx @mastergo/magic-mcp --token YOUR_TOKEN --url API_URL --rule RULE_NAME --debugLINGMA 用法
在VSCode扩展市场中搜索LINGMA并安装。
登录后,点击聊天框中的[MCP工具]。
点击顶部【MCP广场】进入MCP市场,找到MasterGo设计协作工具并安装。
安装完成后,返回[MCP 服务器],并编辑我们的 MCP 服务以将其替换为您自己的 MasterGo 代币。
最后在聊天界面将聊天模式切换为代理模式。
游标用法
Cursor Mcp 使用指南参考: https://docs.cursor.com/context/model-context-protocol#using-mcp-tools-in-agent
{
"mcpServers": {
"mastergo-magic-mcp": {
"command": "npx",
"args": [
"-y",
"@mastergo/magic-mcp",
"--token=<MG_MCP_TOKEN>",
"--url=https://mastergo.com"
],
"env": {}
}
}
}cline 用法
{
"mcpServers": {
"@master/mastergo-magic-mcp": {
"command": "npx",
"args": [
"-y",
"@mastergo/magic-mcp",
"--token=<MG_MCP_TOKEN>",
"--url=https://mastergo.com"
],
"env": {}
}
}
}项目结构
src 目录
src目录包含 MasterGo Magic MCP 服务的核心实现:
index.ts:初始化 MCP 服务器并注册所有工具的应用程序入口点http-util.ts:用于处理 MasterGo API 的 HTTP 请求的实用程序types.d.ts:项目的 TypeScript 类型定义
src/工具
包含 MCP 工具的实现:
base-tool.ts:所有 MCP 工具的基类get-dsl.ts:从 MasterGo 设计文件中检索 DSL(领域特定语言)数据的工具get-component-link.ts:从链接检索组件文档的工具get-meta.ts:检索元数据信息的工具get-component-workflow.ts:为 Vue 和 React 组件提供结构化组件开发工作流的工具,生成工作流文件和组件规范
src/markdown
包含带有附加文档的 markdown 文件:
meta.md:关于元数据结构和使用的文档component-workflow.md:组件开发工作流文档,指导结构化组件开发流程
本地开发
运行
yarn和yarn build来安装依赖项并构建代码找到
bin/cli.js的绝对路径使用您的令牌添加本地 MCP 配置
"mastergo-mcp-local": {
"command": "node",
"args": [
"absolute/path/to/bin/cli.js",
"--token=mg_xxxxxx",
"--url=https://mastergo.com",
"--debug"
],
"env": {}
},重启编辑器以确保本地 MCP 已启用
执行成功后,您可以根据本地运行结果进行调试。您可以根据修改后的版本构建您自己的 MCP 服务。
欢迎您的代码贡献,期待共同打造MasterGo的MCP服务。
执照
国际学习中心
Available Tools
12 toolsmcp__C2dA
使用此工具将代码文件发送到 MasterGo MCP 服务进行 C2D(代码转设计)处理,将用户代码同步到设计稿。
参数说明:
filePath:HTML 文件的完整路径(如 /path/to/file.html),工具会自动读取文件内容并发送给后端。
fileId: 不提供 shortLink 时至少需要 fileId。layerId 不是必填,没有就不要传。
layerId: 可选。图层 ID(只读取 URL 参数 layer_id)。不传或解析不到则仅按 file 维度同步;pageid/page_id 不会被当作 layerId。
shortLink:可选,短链接形式(例如 https://{domain}/goto/xxxx)。 注意事项:只允许使用 URL 中的 layer_id 参数作为 layerId,严禁将 pageid/page_id 等任何页面 ID 当作 layerId。 如果短链接或 URL 中没有解析出 layer_id,则不传 layerId。
工具会读取 filePath 指定文件的内容,并传给后端,附带 fileId 与可选的 layerId。
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | 文件 ID(URL 中 file= 或路径中的数字段)。未传 shortLink 时必填。 | |
| layerId | No | 可选。图层 ID(只读取 URL 参数 layer_id)。不传或解析不到则仅按 file 维度同步;pageid/page_id 不会被当作 layerId。 | |
| filePath | Yes | HTML 文件的完整路径,工具会读取文件内容并发送给后端 | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool reads a file and sends it to the backend, and includes parameter constraints. However, it does not mention destructive behavior, idempotency, permissions, rate limits, or error conditions. The transparency is moderate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with separate sections for parameter details and a note. It is concise overall, though there is minor redundancy (the tool's purpose is stated both at the beginning and implicitly at the end). A slightly more streamlined version would improve efficiency, but it remains clear and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and no output schema, the description thoroughly covers input semantics but omits any mention of return values, error handling, or what happens after the file is processed. This is a significant gap for an agent to use the tool correctly, as it has no information about expected responses or failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all parameters. The description adds significant value beyond the schema by explaining the relationship between fileId, shortLink, and layerId, including examples and explicit restrictions (e.g., 'pageid/page_id will not be treated as layerId'). This enriches the agent's understanding of parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'send code files to MasterGo MCP service for C2D processing, synchronizing user code to the design draft.' It uses a specific verb (send/sync) and resource (code to design), and it distinguishes itself from sibling tools like extractSvg and getComponentGenerator by being the only code-to-design tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed parameter usage guidelines (e.g., when to provide fileId vs shortLink, restrictions on layerId) but lacks explicit guidance on when to use this tool versus alternative tools. No sibling comparisons or when-not-to-use conditions are mentioned, leaving usage decisions implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__extractSvgA
Extract SVG data from MasterGo design files. This tool retrieves the DSL from a design layer, finds all PATH nodes (typically inside INSTANCE/icon components), resolves their color references, and generates SVG markup strings. You can provide either:
fileId and layerId directly, or
a short link (like https://{domain}/goto/LhGgBAK) Returns { count, svgs: [{ name, id, svg }] } — one entry per icon/instance found in the design.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | MasterGo design file ID (format: file/<fileId> in MasterGo URL). Required if shortLink is not provided. | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | No | Layer ID of the specific component or element to retrieve (format: ?layer_id=<layerId>). Required if shortLink is not provided. | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. | |
| backgroundColor | No | Solid background color for the SVG (e.g. '#000000', 'black'). Useful for previewing white/light icons. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the internal process: retrieving DSL, finding PATH nodes, resolving color references, and generating SVG markup. It also describes the return format ({ count, svgs }). However, it does not mention potential side effects or permission requirements, which would elevate transparency further.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, starting with a clear purpose statement. Each sentence adds essential information about the tool's functionality, input methods, and output. There is no redundancy or irrelevant detail, making it easy for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, conditionally required inputs) and the absence of an output schema, the description adequately captures both input options and the return structure. It covers the core behavior and output format but omits details like error handling or limitations, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter's purpose is already documented. The description adds high-level context about the workflow and output but does not enhance understanding of individual parameters beyond their schema descriptions. Thus, it delivers marginal added value, meeting the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Extract SVG data from MasterGo design files.' It provides specific details about the process (retrieving DSL, finding PATH nodes, resolving color references, generating SVG markup) and distinguishes the tool's output format. This differentiates it from sibling tools like mcp__getDesignSvgs by focusing on SVG extraction specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers two input methods (fileId+layerId or shortLink) and notes conditionality, but it does not explicitly state when to use this tool over alternatives such as mcp__getDesignSvgs. The guidance is implied but lacks direct comparisons or exclusion criteria, leaving the agent without clear boundary conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getComponentGeneratorB
Users need to actively call this tool to get the component development workflow. When Generator is mentioned, please actively call this tool. This tool provides a structured workflow for component development following best practices. You must provide an absolute rootPath of workspace to save workflow files.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | MasterGo design file ID (format: file/<fileId> in MasterGo URL) | |
| layerId | Yes | Layer ID of the specific component or element to retrieve (format: ?layer_id=<layerId> / file=<fileId> in MasterGo URL) | |
| rootPath | Yes | The root path of the project, if the user does not provide, you can use the current directory as the root path | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It mentions saving files but does not disclose what exactly is created, whether it is destructive, or any side effects. The description is vague about the workflow structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, consisting of three sentences. The first sentence is somewhat redundant ('Users need to actively call this tool'), but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about the output (no output schema exists), such as the structure of the workflow or file types. With four parameters and no output specification, the description is incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description in the input schema. The description only adds 'save workflow files' context for rootPath but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it provides a component development workflow and requires a rootPath to save files. The verb 'get' is used, making the purpose clear. However, it does not differentiate from sibling tools like getFlutterGenerator or getD2c, which are likely different generators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'When Generator is mentioned, please actively call this tool,' giving a clear when-to-use hint. It also emphasizes providing an absolute rootPath. However, no exclusions or alternative tools are mentioned, so guidance is limited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getComponentLinkA
When the data returned by mcp__getDsl contains a non-empty componentDocumentLinks array, this tool is used to sequentially retrieve URLs from the componentDocumentLinks array and then obtain component documentation data. The returned document data is used for you to generate frontend code based on components.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Component documentation link URL, from the componentDocumentLinks property, please ensure the URL is valid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions sequential retrieval but does not describe side effects, error handling for invalid URLs, or rate limits. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the usage condition, and contains no unnecessary words. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema) and lack of annotations, the description adequately covers purpose, usage condition, and parameter source. It could detail return value structure but notes its use for code generation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in the schema already explains the URL source and validity. The tool description adds little new semantic value beyond restating the source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves component documentation data using URLs from the componentDocumentLinks array, distinguishing it from its sibling mcp__getDsl which returns DSL data. The verb 'retrieve' and resource 'component documentation data' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly specifies the condition for use: when mcp__getDsl returns a non-empty componentDocumentLinks array. It implies sequential retrieval but does not specify when not to use it or mention alternatives beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getD2cA
使用此工具从 MasterGo 获取 D2C 数据,并在本地落盘: 1)将返回的 code 写入 html; 2)将返回的 svg / image 资源按 resourcePath 落盘到对应目录; 3)返回落盘摘要,避免把大体积资源塞进上下文。
| Name | Required | Description | Default |
|---|---|---|---|
| outDir | No | 可选,输出目录(绝对路径或相对当前工作目录)。 | |
| contentId | Yes | MasterGo D2C contentId,例如 mastergo://getd2c/176452330285910-2-2845 中的 176452330285910-2-2845。 | |
| documentId | Yes | MasterGo 文档 ID,通常为 contentId 的第一段,例如 contentId 为 176452330285910-2-9032 时 documentId 为 176452330285910。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It details side effects (writing files to disk, avoiding large resources in context), which is commendable. However, it does not mention error handling, permission requirements, or reversibility, preventing a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses a numbered list for clarity. Every sentence adds value, though some redundancy exists (e.g., restating resourcePath in step 2). Still, it is well-structured for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description adequately covers inputs, outputs (a summary), and side effects. It addresses potential context overflow by omitting large resources. For a tool of moderate complexity, this is sufficient but not exhaustive (e.g., no mention of return format or error states).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but the description adds significant context: it explains the role of contentId and documentId with examples, and clarifies outDir as optional. This goes beyond mere schema replication, adding practical meaning for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches D2C data from MasterGo and persists it locally, including writing code to HTML and saving SVG/image resources. It well specifies the action and resource, but does not explicitly differentiate from sibling tools like mcp__C2d or mcp__extractSvg.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists steps but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria or prerequisites. Usage is implied by the context of D2C data retrieval, but lack of explicit guidance hurts score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getDesignSectionsA
[PRIMARY] This is the main tool for all designs. Operates in TWO modes:
Mode 1 — Get layout overview (sectionIndex NOT provided): Returns the list of all sections with id, name, type, nodeCount, and a page-absolute bounding box (x, y, width, height) for each section, plus totalSections and totalNodes. Also returns rootMetadata (root layer width/height/name/type/fill) when available. Use this FIRST to understand the design scope. The per-section bbox tells you exactly where each section sits inside the root container — use it for absolute positioning when generating code. Example: { "fileId": "123", "layerId": "456:789" }
Mode 2 — Get section DSL (sectionIndex provided): Returns the full DSL for ONE specific section.
PATH nodes have their svgHtml stripped. After fetching ALL sections, call mcp__getDesignSvgs to retrieve them.
IMPORTANT workflow:
First call WITHOUT sectionIndex to get the section list with node counts.
Then call WITH sectionIndex=0, sectionIndex=1, ... up to totalSections-1.
You MUST fetch ALL sections. Do NOT skip any section index.
CRITICAL: Fetch sections in BATCHES of 3-5 at a time. Do NOT request all sections simultaneously — too many concurrent requests will cause timeouts. Send 3-5 sectionIndex calls, wait for all results, then send the next batch.
After fetching all sections, call mcp__getDesignSvgs to get SVG icons.
Generate the complete HTML with all SVG data.
DO NOT call mcp__getDsl after completing this workflow — all data is already provided. If this tool returns an error (e.g. old server), fall back to mcp__getDsl.
You can provide either:
fileId and layerId directly, or
a short link (like https://{domain}/goto/LhGgBAK)
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | MasterGo design file ID. Required if shortLink is not provided. | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | No | Root layer ID of the design. Required if shortLink is not provided. | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). | |
| sectionIndex | No | 0-based section index. If omitted, returns the section list only. If provided, returns full DSL for that specific section. | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden. It discloses behavior such as two modes, stripping svgHtml from PATH nodes, batching requirements, timeout risks, and error handling. No contradictions or omissions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear section headers, bullet points, and examples. It is verbose but every sentence adds value. Minor redundancy (e.g., repeated emphasis on batching) could be trimmed, but overall efficient for the information density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, multi-step workflow, no output schema), the description covers all necessary context: input modes, workflow, batching, fallback, and format options. It leaves no ambiguity about how to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, the description adds significant meaning beyond the schema. It explains the effect of omitting/providing sectionIndex, the meaning of each format option (json, yaml, tree), and provides usage examples. This greatly aids an agent in using parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is the main tool for designs and distinguishes two modes (layout overview vs section DSL). It differentiates from siblings by explicitly mentioning fallback to mcp__getDsl and directing to mcp__getDesignSvgs for SVGs, avoiding confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit, step-by-step usage guidelines: first call without sectionIndex, then fetch all sections in batches of 3-5, and not to call mcp__getDsl after. It also specifies when to fall back to mcp__getDsl on error, giving clear context for when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getDesignSvgsA
After fetching ALL sections via mcp__getDesignSections, call this tool to retrieve all cached SVG HTML strings. Each PATH node in the DSL has an id. Look up that id in the returned svgs map to get the complete SVG string. Insert the svgHtml string directly into HTML where icons should appear.
You can provide either:
fileId and layerId directly, or
a short link (like https://{domain}/goto/LhGgBAK)
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | MasterGo design file ID. Required if shortLink is not provided. | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | No | Root layer ID of the design. Required if shortLink is not provided. | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since there are no annotations, the description bears full responsibility. It states the tool retrieves cached data, implying a read-only operation with no destructive side effects. It also describes the caching behavior and the mapping from path IDs to SVG strings. No contradictory or missing critical traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with a few focused sentences. The most important information (prerequisite, purpose, and usage) is front-loaded. No unnecessary words or repetition, though it could be slightly shortened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently covers the return format (map of ids to SVG strings) and how to integrate into HTML. It also mentions caching. Missing some error conditions (e.g., if sections not fetched) but overall adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description reiterates the two invocation methods (fileId+layerId vs shortLink) already present in the schema, and does not add new insights or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly explains that the tool retrieves cached SVG HTML strings after fetching design sections. It mentions the prerequisite tool (mcp__getDesignSections) and how to use the output (look up id in svgs map, insert svgHtml). However, it does not explicitly differentiate from sibling tools like mcp__extractSvg, which might also deal with SVGs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage sequence: call after mcp__getDesignSections. Also offers two input alternatives (fileId+layerId or shortLink) and explains how to use the returned data. Lacks when-not-to-use or alternative comparisons, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getDesignTextsA
After fetching ALL sections via mcp__getDesignSections, call this tool to retrieve exact text content for large text nodes. In the section DSL, TEXT nodes with long content (>50 chars) have their "text" field replaced with a key like "T{sectionIndex}|{nodeId}". This tool returns the original text mapped by those keys. You MUST use the exact text from this response — never invent, paraphrase, or translate text.
You can provide either:
fileId and layerId directly, or
a short link (like https://{domain}/goto/LhGgBAK)
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | MasterGo design file ID. Required if shortLink is not provided. | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | No | Root layer ID of the design. Required if shortLink is not provided. | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the key format and that text must be used exactly, but does not mention error handling, rate limits, or consequences of missing keys. Basic behavioral context is present but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first paragraph explains context and key mapping, then a bullet list of parameter options. Every sentence is necessary and no fluff. It is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (text retrieval from a design system), the description covers the workflow, key mapping, and parameter options adequately. It lacks an output schema but describes the return value as original text. Some edge cases (e.g., missing keys) are not addressed, but the core functionality is well explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the bar is higher. The description adds value by explaining when to use each parameter (e.g., shortLink alternative, sourceLayerId override) and the format parameter's use cases. It goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves exact text content for large text nodes after fetching sections, explaining the key mapping and that original text is returned. It distinguishes itself from sibling tools by specifying its role in the workflow (after getDesignSections).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to call this tool after getDesignSections, provides two calling methods (fileId/layerId or shortLink), and warns against inventing text. It doesn't mention when not to use it relative to siblings, but the workflow guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getDslA
[FALLBACK] Use only when mcp__getDesignSections is unavailable or returns an error. This returns the FULL DSL in one response — may be large and exceed context limits for complex designs. Prefer mcp__getDesignSections as the primary tool for all designs. You can provide either:
fileId and layerId directly, or
a short link (like https://{domain}/goto/LhGgBAK) This tool returns the raw DSL data that you can then parse and analyze. Use the optional 'format' parameter (json/yaml/tree, defaults to json) to control the serialization. This tool also returns the rules you must follow when generating code. The DSL data can also be used to transform and generate code for different frameworks.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | No | MasterGo design file ID (format: file/<fileId> in MasterGo URL). Required if shortLink is not provided. | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | No | Layer ID of the specific component or element to retrieve (format: ?layer_id=<layerId> / file=<fileId> in MasterGo URL). Required if shortLink is not provided. | |
| shortLink | No | Short link (like https://{domain}/goto/LhGgBAK). | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description warns that the response may be large and exceed context limits, discloses it returns raw DSL data and rules for code generation, and explains the format parameter behavior. Auth or rate limits are not mentioned, but the key behavioral trait of size is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and front-loading of purpose and fallback role. It is slightly verbose but each sentence adds value. Could be more concise, but overall it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description covers all necessary aspects: purpose, usage guidelines, parameter explanation, output characteristics, and behavioral warnings. It is fully sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds context beyond the schema by explaining the fallback scenario, clarifying how shortLink relates to fileId/layerId, and describing the outcome of each format option. This extra guidance justifies a score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the full DSL in one response, functions as a fallback for mcp__getDesignSections, and distinguishes itself by warning of large output. Purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use only when mcp__getDesignSections is unavailable or returns an error' and 'Prefer mcp__getDesignSections as the primary tool,' providing clear when-to-use and when-not-to-use guidance. Also explains two ways to provide input (fileId+layerId or shortLink).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getFlutterGeneratorA
Users need to actively call this tool to get the Flutter component development workflow. When Flutter Generator or Flutter Component is mentioned, please actively call this tool. This tool provides a structured workflow for Flutter component development following best practices. It includes MasterGo DSL to Flutter Widget mapping rules, screen adaptation with flutter_screenutil, and feature-based architecture guidance. It also downloads all image resources from the design file to local disk, rewrites CSS and DSL references to point at Flutter asset paths, and generates an asset manifest. You must provide an absolute rootPath of workspace to save workflow files.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | MasterGo design file ID (format: file/<fileId> in MasterGo URL) | |
| layerId | Yes | Layer ID of the specific component or element to retrieve (format: ?layer_id=<layerId> / file=<fileId> in MasterGo URL) | |
| rootPath | Yes | The root path of the Flutter project, if the user does not provide, you can use the current directory as the root path | |
| featureName | No | Optional feature directory name under assets/image/ and the Flutter feature module. Defaults to the root component name. | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses that the tool downloads images, rewrites references, and generates manifests, implying file system modifications. However, it does not state if these actions are reversible, require permissions, or have side effects like overwriting existing files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the activation instruction and then lists functionalities. It is reasonably concise with no redundancy, though it could be improved by using bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and moderate complexity, the description covers the workflow but lacks details on expected return values, error handling, or what happens when parameters are invalid. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a description. The tool description adds no additional semantic detail beyond what's in the schema, except reinforcing the requirement for rootPath. Per guidelines, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the Flutter component development workflow. It lists specific deliverables (DSL mapping, asset download, etc.), establishing a distinct purpose. However, it does not explicitly differentiate from sibling tools like mcp__getComponentGenerator, which could be confused. The purpose is clear but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to call the tool: 'When Flutter Generator or Flutter Component is mentioned, please actively call this tool.' It also notes the requirement for an absolute rootPath. However, it does not provide alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mcp__getMetaB
Use this tool when the user intends to build a complete website or needs to obtain high-level site configuration information. You must provide a fileld and layerld to identify the specific design element. This tool returns the rules and results of the site and page. The rules is a markdown file, you must follow the rules and use the results to analyze the site and page.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | MasterGo design file ID (format: file/<fileId> in MasterGo URL) | |
| format | No | Output format for design data. Defaults to json. - json — default; useful when piping output into tools that expect JSON. - yaml — fewer tokens than JSON for typical designs. - tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings. | |
| layerId | Yes | Layer ID of the specific component or element to retrieve (format: ?layer_id=<layerId> / file=<fileId> in MasterGo URL) | |
| sourceLayerId | No | Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states that the tool returns 'rules and results,' but does not clarify if the operation is read-only, whether any state changes occur, or any prerequisites (e.g., authentication). This is insufficient for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a brief paragraph of three sentences, but contains typos ('fileld', 'layerld') and includes an imperative instruction ('you must follow the rules') that could be integrated more concisely. It is not overly long, but clarity is slightly reduced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters (including optional format and sourceLayerId) and no output schema. The description does not mention the optional parameters or explain what 'rules and results' means in terms of output structure. For a tool with moderate complexity, the description lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all four parameters with descriptions (100% coverage). The description repeats the need for fileId and layerId but adds no new semantic meaning beyond what the schema already provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies that the tool is used when building a complete website or obtaining high-level site configuration, which clearly states its purpose. However, it does not explicitly differentiate this tool from its siblings (e.g., getD2c, getDesignSections), which all retrieve design-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context ('when user intends to build a complete website') and states that fileId and layerId are required. However, it does not mention when not to use this tool or suggest alternatives among sibling tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
version_0_2_2C
the current version is 0.2.2
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavior beyond stating the version. It fails to mention that this is a read-only operation or how the information is obtained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (a single fragment) but not well-structured. It lacks a full sentence explaining the tool's purpose. It cannot be considered concise as defined; it is underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, no output schema), the description should at least indicate that this tool returns the current version. The absence of such context makes it incomplete for an agent to understand its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description does not add meaning beyond the schema, but given zero parameters, no additional parameter information is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'the current version is 0.2.2' which is a statement of fact rather than describing tool functionality. It does not clarify that the tool returns or retrieves version information. The name 'version_0_2_2' could be misinterpreted as a static constant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool. Siblings like getMeta and getDsl suggest other ways to obtain metadata, but no exclusions or contextual advice are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
v1.0.1- Added
mcp__C2d - Added
mcp__extractSvg - Changed
mcp__getComponentGenerator1 field changed- added
Input schema / properties / sourceLayerIdAdded value: +{ + "description": "Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries.", + "type": "string" +}
- Added
mcp__getD2c - Added
mcp__getDesignSections - Added
mcp__getDesignSvgs - Added
mcp__getDesignTexts - Changed
mcp__getDsl2 fields changed- added
Input schema / properties / formatAdded value: +{ + "description": "Output format for design data. Defaults to json.\n- json — default; useful when piping output into tools that expect JSON.\n- yaml — fewer tokens than JSON for typical designs.\n- tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings.", + "enum": [ + "json", + "yaml", + "tree" + ], + "type": "string" +} - added
Input schema / properties / sourceLayerIdAdded value: +{ + "description": "Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries.", + "type": "string" +}
- Added
mcp__getFlutterGenerator - Changed
mcp__getMeta2 fields changed- added
Input schema / properties / formatAdded value: +{ + "description": "Output format for design data. Defaults to json.\n- json — default; useful when piping output into tools that expect JSON.\n- yaml — fewer tokens than JSON for typical designs.\n- tree — experimental compact format. Structural keys (id, name, type) are encoded positionally on each node line, and style values stay deduplicated in a globalVars block. Designs with heavy style reuse see the largest token savings.", + "enum": [ + "json", + "yaml", + "tree" + ], + "type": "string" +} - added
Input schema / properties / sourceLayerIdAdded value: +{ + "description": "Source layer ID from URL parameter source_layer_id. When provided, use this instead of layerId for all queries.", + "type": "string" +}
- Removed
version_0_1_1 - Added
version_0_2_2
5 tool updates
v1.0.0- First observed
mcp__getComponentGenerator - First observed
mcp__getComponentLink - First observed
mcp__getDsl - First observed
mcp__getMeta - First observed
version_0_1_1
TDQS
Scored across 12 tools
Most tools have distinct purposes, but getDesignSections and getDsl overlap as primary and fallback for design data. Descriptions clarify the relationship, so confusion is minimal. The version tool and workflow tools are distinct.
All tools except version_0_2_2 follow the mcp__<action><Object> pattern with consistent camelCase. The version tool breaks the pattern but is a minor outlier.
12 tools is well-scoped for a design-to-code server covering extraction, generation, and linking. Each tool serves a clear role without redundancy.
The tool surface covers the full design-to-code pipeline: design section retrieval with supplementary SVG/text tools, DSL fallback, C2D and D2C conversion, component generators for multiple frameworks, and metadata. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that connects AI tools and LLMs to Figma designs, enabling them to extract design data, analyze design systems, and generate development documentation.4,276 npm2MIT
- -licenseNot gradedqualityNot gradedmaintenanceA server based on Model Context Protocol that processes and parses design files (Vextra/Figma/Sketch/SVG), enabling AI assistants to access and manipulate design content.3-
- AlicenseAqualityDmaintenanceConnects AI models with MasterGo design tools to retrieve and process DSL data from design files, enabling AI-powered design analysis and manipulation.21,382 npmISC
- AlicenseNot gradedqualityDmaintenanceConnects AI models to MasterGo design tools, enabling retrieval of DSL data, component documentation, and metadata from MasterGo design files for structured component development workflows.1,382 npmISC