Mimiq: test pages and sign-up flows on simulated people

Simulated people test your pages, copy and sign-up flows, and say why they would leave.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
94%
命名品質
50%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(9)

  • LOWTool 'mimiq.show_report' doesn't follow camelCase/snake_case在 mimiq.show_report 中
  • LOWTool 'mimiq.test_page' doesn't follow camelCase/snake_case在 mimiq.test_page 中
  • LOWTool 'mimiq.test_flow' doesn't follow camelCase/snake_case在 mimiq.test_flow 中
  • LOWTool 'mimiq.test_copy' doesn't follow camelCase/snake_case在 mimiq.test_copy 中
  • LOWTool 'mimiq.test_text' doesn't follow camelCase/snake_case在 mimiq.test_text 中
  • LOWTool 'mimiq.test_component' doesn't follow camelCase/snake_case在 mimiq.test_component 中
  • LOWTool 'mimiq.ask_audience' doesn't follow camelCase/snake_case在 mimiq.ask_audience 中
  • LOWTool 'mimiq.compare_copy' doesn't follow camelCase/snake_case在 mimiq.compare_copy 中
  • LOWTool 'mimiq.compare_urls' doesn't follow camelCase/snake_case在 mimiq.compare_urls 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~4,754Token(工具定義)
~4.5 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.71%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mimiq-mcp": {
      "url": "https://mcp.mimiqai.com/mcp"
    }
  }
}

遠端端點

https://mcp.mimiqai.com/mcpstreamable-http

它能做什麼

工具清單

工具(9)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢mimiq.show_report(session_id, compare_session_id)

Show the finished result of a saved Mimiq test, or two saved tests compared: the call, counts, objections in simulated people's words, and a full report link. Use session IDs from an earlier test result or report URL. Reads your account only and spends no credits.

輸入結構描述

{
  "type": "object",
  "properties": {
    "session_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,100}$"
    },
    "compare_session_id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,100}$"
    }
  },
  "required": [
    "session_id"
  ],
  "additionalProperties": false
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string"
    },
    "kind": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "finished",
        "running"
      ]
    },
    "progress": {
      "type": "object",
      "properties": {
        "done": {
          "type": "integer",
          "minimum": 0
        },
        "total": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "done",
        "total"
      ],
      "additionalProperties": false
    },
    "headline": {
      "type": "string"
    },
    "reason": {
      "type": "string"
    },
    "report_url": {
      "type": "string",
      "format": "uri"
    },
    "limitation": {
      "type": "string"
    },
    "versions": {
      "type": "array",
      "minItems": 0,
      "maxItems": 2,
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "counts": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "stayed": {
                "type": "integer",
                "minimum": 0
              },
              "left": {
                "type": "integer",
                "minimum": 0
              },
              "finished": {
                "type": "integer",
                "minimum": 0
              },
              "partway": {
                "type": "integer",
                "minimum": 0
              },
              "rated": {
                "type": "integer",
                "minimum": 0
              },
              "understood": {
                "type": "integer",
                "minimum": 0
              },
              "for_them": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [
              "total"
            ],
            "additionalProperties": false
          },
          "votes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "option": {
                  "type": "string"
                },
                "count": {
                  "type": "integer",
                  "minimum": 0
                }
              },
              "required": [
                "option",
                "count"
              ],
              "additionalProperties": false
            }
          },
          "unanswered": {
            "type": "integer",
            "minimum": 0
          },
          "answers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "person": {
                  "type": "string"
                },
                "option": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                }
              },
              "required": [
                "person",
                "option",
                "reason"
              ],
              "additionalProperties": false
            }
          },
          "objections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "quote": {
                  "type": "string"
                },
                "person": {
                  "type": "string"
                },
                "count": {
                  "type": "integer",
                  "minimum": 1
                }
              },
              "required": [
                "quote",
                "person",
                "count"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "label",
          "title",
          "counts",
          "objections"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "title",
    "kind",
    "headline",
    "reason",
    "report_url",
    "limitation",
    "versions"
  ],
  "additionalProperties": false
}
🟡mimiq.test_page(url, audience, review_id, confirm_audience, audience_fit_acknowledged, ...)

Starts immediately unless the recruited crowd is wrong (more than 1 in 5 not the requested audience); the result includes the audience summary, examples and fit. Only a wrong crowd returns audience_review: show the warning, then use review_id, confirm_audience and audience_fit_acknowledged to continue, or audience_correction to recruit again. Show a web page to simulated people and hear how they react: who would stay, who would leave, and why. Each person scrolls the page and says what confused them, what they doubted and what would change their mind. Use it after you build or change a landing, pricing or signup page, then fix what they raised and test again. Needs a public URL (for localhost, open a tunnel first; see the server instructions). Returns each person's action, thoughts and objections, and the counts. With a key, the result ends with a link to the full report in the Mimiq app.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "The page to test. Must be publicly reachable. For localhost, open a cloudflared tunnel and pass the tunnel URL."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "review_id": {
      "type": "string",
      "maxLength": 100,
      "description": "The review_id from a low-fit review or completed/running result. Bound to this URL and test kind."
    },
    "confirm_audience": {
      "type": "boolean",
      "description": "Start with the reviewed people after showing them to the user."
    },
    "audience_fit_acknowledged": {
      "type": "boolean",
      "description": "Set only after telling the user about an audience-fit warning and they choose to continue."
    },
    "audience_correction": {
      "type": "string",
      "maxLength": 1500,
      "description": "Not quite? Change who and rerun: use with review_id. Recruits a new crowd under the existing credit rules; starts unless the new crowd is wrong, otherwise returns a new review."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people (default 10, max 50). Each person uses one credit."
    },
    "goal": {
      "type": "string",
      "maxLength": 500,
      "description": "What the page should get people to do, e.g. \"sign up for the waitlist\"."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 30,
      "maximum": 900,
      "default": 300
    }
  },
  "required": [
    "url"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟡mimiq.test_flow(url, audience, review_id, confirm_audience, audience_fit_acknowledged, ...)

Starts immediately unless the recruited crowd is wrong (more than 1 in 5 not the requested audience); the result includes the audience summary, examples and fit. Only a wrong crowd returns audience_review: show the warning, then use review_id, confirm_audience and audience_fit_acknowledged to continue, or audience_correction to recruit again. Send simulated people through a multi-step flow (signup, onboarding, checkout) in a real browser, clicking and typing, to find the step where they get stuck or give up. Slower than test_page, and each person uses 5 credits. Returns each person's steps, where they stopped and why.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "Where the flow starts. Must be publicly reachable. For localhost, open a cloudflared tunnel and pass the tunnel URL."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "review_id": {
      "type": "string",
      "maxLength": 100,
      "description": "The review_id from a low-fit review or completed/running result. Bound to this URL and test kind."
    },
    "confirm_audience": {
      "type": "boolean",
      "description": "Start with the reviewed people after showing them to the user."
    },
    "audience_fit_acknowledged": {
      "type": "boolean",
      "description": "Set only after telling the user about an audience-fit warning and they choose to continue."
    },
    "audience_correction": {
      "type": "string",
      "maxLength": 1500,
      "description": "Not quite? Change who and rerun: use with review_id. Recruits a new crowd under the existing credit rules; starts unless the new crowd is wrong, otherwise returns a new review."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 5,
      "description": "How many simulated people (default 5, max 10; without a key a free flow has up to 3, and defaults to 3). Each runs a full browser session and uses 5 credits."
    },
    "goal": {
      "type": "string",
      "maxLength": 500,
      "description": "The task each person tries, e.g. \"complete the signup and reach the dashboard\". Default: sign up and start using it."
    },
    "max_steps": {
      "type": "integer",
      "minimum": 10,
      "maximum": 60,
      "description": "Optional step limit per person (10 to 60). The server defaults to 40."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 1800,
      "default": 1200
    }
  },
  "required": [
    "url"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.test_copy(variant_a, variant_b, audience, count, timeout_seconds)

Show one piece of copy (a headline, tagline, value proposition, email subject line or call to action) to simulated people and hear how they react and why. To choose between two versions, use mimiq.compare_copy. This tool still accepts variant_b and then runs that same comparison. Returns each person's reaction, objections and what would help, and the counts. With a key, the result ends with a link to the full report in the Mimiq app.

輸入結構描述

{
  "type": "object",
  "properties": {
    "variant_a": {
      "type": "string",
      "maxLength": 20000,
      "description": "The copy to test."
    },
    "variant_b": {
      "type": "string",
      "maxLength": 20000,
      "description": "Optional second version. With it, this runs mimiq.compare_copy."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people (default 10, max 50)."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 30,
      "maximum": 900,
      "default": 180
    }
  },
  "required": [
    "variant_a"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.test_text(text, audience, goal, count, timeout_seconds)

Show any text (a positioning statement, feature description, error message, instructions or an announcement) to simulated people and hear how they react. Pass goal to say what the text should achieve. Returns each person's reaction, objections and what would help. With a key, the result ends with a link to the full report in the Mimiq app.

輸入結構描述

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 20000,
      "description": "The text to test."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "goal": {
      "type": "string",
      "maxLength": 500,
      "description": "What the text should achieve, e.g. \"get people to update their card\"."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people (default 10, max 50)."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 30,
      "maximum": 900,
      "default": 180
    }
  },
  "required": [
    "text"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.test_component(component_html, component_text, audience, goal, count, ...)

Show a UI component (a button, card, form, modal, navigation or pricing table) to simulated people and hear whether they understand it, trust it and would use it. Provide component_html, component_text, or both. With a key, the result ends with a link to the full report in the Mimiq app.

輸入結構描述

{
  "type": "object",
  "properties": {
    "component_html": {
      "type": "string",
      "maxLength": 50000,
      "description": "The HTML of the component."
    },
    "component_text": {
      "type": "string",
      "maxLength": 20000,
      "description": "A description of the component (instead of, or with, the HTML)."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "goal": {
      "type": "string",
      "maxLength": 500,
      "description": "What the component should achieve, e.g. \"get people to click upgrade\"."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people (default 10, max 50)."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 30,
      "maximum": 900,
      "default": 180
    }
  },
  "required": []
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.ask_audience(audience, question, options, count, context, ...)

Ask simulated people a multiple-choice question (2 to 10 options) and get each person's pick and reasoning. Use it for naming, positioning, or which feature to build next. Each person answers on their own.

輸入結構描述

{
  "type": "object",
  "properties": {
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who to ask, e.g. \"SaaS founders with 10 to 50 employees\"."
    },
    "question": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "The question."
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 2,
      "maxItems": 10,
      "description": "Answer options (2 to 10)."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people (default 10, max 50)."
    },
    "context": {
      "type": "string",
      "maxLength": 500,
      "default": "Product validation survey",
      "description": "What the question is for."
    },
    "concurrency": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 6,
      "description": "Parallel workers (default 6)."
    },
    "timeout_seconds": {
      "type": "integer",
      "default": 300,
      "minimum": 30,
      "maximum": 900
    }
  },
  "required": [
    "audience",
    "question",
    "options"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.compare_copy(version_a, version_b, format, audience, count, ...)

Compare two versions of copy or an email on the same simulated people and get Mimiq's call on which to ship. The same people see version A and version B. Mimiq's call combines a forecast of how people like them behave, asked in both orders, with how the same people moved: clear, leaning, or too close to call (no pick). Returns the call, the reason in one sentence, how many people moved toward each version, each version's top objections, and a link to the report. Without a key, an agent also gets one free A/B test on up to 10 simulated people per version, while the daily free A/B allowance lasts. With a key, any size. The forecast has held up on headlines (76% right on 1,000 real headline A/B tests, against 61% for the best rule of thumb); on emails, text messages and ads it was no better than chance at ranking small wording changes, and on real web page tests it did not beat the simplest guess.

輸入結構描述

{
  "type": "object",
  "properties": {
    "version_a": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20000,
      "description": "Version A, usually the current one."
    },
    "version_b": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20000,
      "description": "Version B, usually the new one."
    },
    "format": {
      "type": "string",
      "enum": [
        "copy",
        "email"
      ],
      "default": "copy",
      "description": "\"copy\" for a headline, tagline or short message people come across; \"email\" for an email in an inbox (a first line \"Subject: ...\" is read as the subject)."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "count": {
      "type": "integer",
      "minimum": 3,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people see both versions (default 10). Use 5 or more: from 5 people up, Mimiq reads who moved. Uses count credits to recruit plus count for version B."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 900,
      "default": 480
    }
  },
  "required": [
    "version_a",
    "version_b"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}
🟢mimiq.compare_urls(url_a, url_b, audience, count, timeout_seconds)

Compare two web pages (for example a preview deployment and production) on the same simulated people and get Mimiq's call on which to ship. The same people see page A and page B. Mimiq's call combines a forecast, asked in both orders, with how the same people moved: clear, leaning, or too close to call (no pick). Returns the call, the reason in one sentence, how many people moved toward each page, each page's top objections, and a link to the report. Needs public URLs. Without a key, an agent also gets one free A/B test on up to 10 simulated people per version, while the daily free A/B allowance lasts. With a key, any size. On real web page tests the forecast did not beat the simplest guess in a pre-registered run: treat the call as a fast first read.

輸入結構描述

{
  "type": "object",
  "properties": {
    "url_a": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "Page A, usually the current one (for example production)."
    },
    "url_b": {
      "type": "string",
      "format": "uri",
      "maxLength": 2000,
      "description": "Page B, usually the new one (for example a preview deployment)."
    },
    "audience": {
      "type": "string",
      "maxLength": 500,
      "description": "Who the simulated people should be, in plain words, e.g. \"startup founders in SF\" or \"parents shopping for kids toys\". If omitted, Mimiq picks the likely audience from the content."
    },
    "count": {
      "type": "integer",
      "minimum": 3,
      "maximum": 50,
      "default": 10,
      "description": "How many simulated people see both pages (default 10). Use 5 or more: from 5 people up, Mimiq reads who moved."
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 60,
      "maximum": 900,
      "default": 600
    }
  },
  "required": [
    "url_a",
    "url_b"
  ]
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "tool": {
      "type": "string"
    },
    "report_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary_card": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "call": {
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "pick": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "run": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "tool"
  ],
  "additionalProperties": true
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本9 個工具
已驗證未記錄版本8 個工具