Skip to main content
Glama

🎯 为什么用它,而不是别的

需求

逐个手搓命令

每个工具各接一遍 SDK

museav-mcp

一个 Agent 里同时用出图 / 看图 / 门禁 / 排版

❌ 四套用法

❌ 接四遍协议

✅ 一个 server 全给

换 Agent 就失效

❌ 命令绑定

⚠️ 各家 SDK 不同

✅ 换谁都认 MCP

没装的工具白占上下文

—

❌ 全量注册

✅ 探测式:装了才注册

大图 / 长文进上下文

❌ 手动处理

❌ 自己写 base64

✅ 一律走绝对路径

加新能力

各自记命令

❌ 得改 MCP 代码

✅ 升级 CLI 就生效(MCP 只做串联)

分层是硬的:能力在 CLI 里,MCP 只做串联。 这个仓自己零实现 —— 每个工具都是对某个项目 CLI 的一次薄封装。所以 CLI 一升级,MCP 这边立刻就有新能力;MCP 不重写任何逻辑,也就不存在 「两边行为不一致」。

传输方式 stdio。文件以绝对路径传入,处理结果写回磁盘并返回路径 —— 不走 base64。

Related MCP server: DreamLayer image tools

🧩 能力分组(这张就是版图)

分组

开源项目

工具

干什么

前置

museav

museav-cli

17

出图 / 出视频、本地后期(抠图·超分·去水印·压缩)、模板与技能清单、素材上传、图生模板、SCULPT 反推、小红书 SkillHub 发布

museav-cli ≥ 3.9.0

vlm

mlx-vlm-kit

4

本地离线看图:描述、任意提问、封面质检、反推出图 prompt

vlm(Apple Silicon)

contrast

contrast-guard

3

对比度门禁:静态查色值达不达标、渲染后量实际字号灰阶、存基线与基线对比

contrast-guard

facet

@webkubor/facet

2

Markdown 排版成 PDF / 长图 / 讲稿页(自带多套模板)

facet

reel

@kubor/reel-kit

3

素材 + 逐句文案 → 竖版成片(模板 / 转场 / 配乐 / 可选配音)

reel + ffmpeg

browser

lite-browser

13

真实 Chrome:打开/快照/点击/输入/截图/执行 JS + 人类交接协议 + 多 agent 会话隔离

lite-browser

—

本 MCP 自带

1

groups_list:列出全部分组、各自装什么、为什么没启用

无

默认策略是探测式:某个分组的 CLI 在 PATH 上,它的工具才会注册。理由是工具 schema 会随每一次模型请求发出去 —— 聚合 MCP 越串越多,不该让用户为「他机器上根本没装的工具」 付 token。没启用的分组不会消失:groups_list 始终可用,它会告诉你这个 MCP 还能干什么、 该装什么。

想强开或裁剪,用环境变量 MUSEAV_MCP_GROUPS:

MUSEAV_MCP_GROUPS=all              # 全开(缺 CLI 的分组也注册,调用时才报装什么)
MUSEAV_MCP_GROUPS=facet,contrast   # 只开这几个
MUSEAV_MCP_GROUPS=-museav          # 默认集里去掉这几个

⚡ 30 秒上手

npm i -g museav-cli                    # 想要哪组能力,就装哪个 CLI(这一行是出图那组)
claude mcp add museav -- npx -y museav-mcp

然后在 Agent 里说「用 museav 出一张图」,或者先问一句「这个 MCP 有哪些能力分组」。

工具(43 个)

museav 组 —— MUSE AV 出图中台(17)

工具

干什么

是否需要登录

gen_background

出背景图 / 一般出图 / 出视频(走中台)

✅ 需要

remove_bg

抠图去背景(BiRefNet / ISNet / U2Net),输出带 alpha 的 PNG

免登录,本地跑

upscale_image

超分放大(Real-ESRGAN + Vulkan GPU),默认 4x

免登录,本地跑

remove_watermark

去水印(LaMa 修复),自动定位,可传手工掩码

免登录,本地跑

compress_image

压缩(sharp),可指定最长边 / 质量 / 格式

免登录,本地跑

list_templates

查可用图片 / 文字模板(挑 template 用,别硬编码)

✅ 需要

list_skills

查可用技能(挑 skill slug 用,别硬编码)

✅ 需要

list_video_templates

查可用视频模板(与 list_templates 平级,配合 gen_background 的 video=true + template)

✅ 需要

list_models

查可用模型;video=true 查视频档次(可直接喂 gen_background 的 model)

✅ 需要

balance

查上游余额

✅ 需要

list_jobs

查自己的出图工作流(结果 URL、失败原因)

✅ 需要

upload_asset

上传素材拿公网直链(垫图要 URL 时用)

✅ 需要

image_to_template

图生模板:读图 + 文字层逆向 + 变量化

✅ 需要

reverse

读图反推 SCULPT prompt(中台 API)。与 vlm_reverse_prompt 互补:图像识别默认优先本地 vlm_*,要走 SCULPT 格式再调这个

✅ 需要

skillhub_tags

查小红书 SkillHub 内容标签(发布必带,别硬编码)

✅ 需要

skillhub_whoami

查 SkillHub 登录态(脱敏)

✅ 需要

skillhub_publish

把本地 Agent Skill 发到小红书 SkillHub。默认 dry-run,submit=true 才真提交

✅ 需要

本地后期那四个不联网、不消耗中台额度。

vlm 组 —— 本地看图理解(4)

工具

干什么

vlm_describe

描述图片主体与色调

vlm_ask

对图片任意提问

vlm_cover_check

音乐封面语义质检(batch=true 递归目录)

vlm_reverse_prompt

反推出图 prompt,喂回 gen_background

四个都免登录、零成本、不联网(本地 Qwen3-VL);需要 Apple Silicon。

contrast 组 —— 对比度门禁(3)

工具

干什么

contrast_check

静态查色值达不达标(读项目的 contrast.config.*),dir 指定项目目录

contrast_init

在项目里生成一份配置模板(第一次用要先跑这个)

contrast_measure

渲染后量实际字号 / 灰阶 / 动效,可存基线与基线对比(需要浏览器)

check 查「对不对」,measure 查「多少」——丑的每一处单看往往都『对』,所以两个都要跑。 不达标时工具会照常把完整报告交回来(CLI 用退出码当判据,不是调用失败)。

facet 组 —— Markdown 排版成成品(2)

工具

干什么

facet_templates

列可用排版模板名(facet_build 的 template 从这里取)

facet_build

把 Markdown 排成 PDF / 长图 / 讲稿页

reel 组 —— 竖版短视频合成(3)

工具

干什么

reel_templates

列可用版式模板名(reel_make 的 template 从这里取)

reel_bgm

列配乐库:别名、时长、风格、授权

reel_make

素材图 + 逐句文案 → mp4(模板 / 转场 / 配乐 / 标题 / 可选配音)

素材与文案按顺序一一对应,数量不等时取较少的一方并明确报出来,不会静默丢弃。 不给 voice 时镜头时长由 perShot 决定(不需要任何模型);给了才走本地 Qwen3-TTS。 硬依赖系统里的 ffmpeg(不在 npm 包里)。

museav 出的是原料(图、无声片),reel 出的是能发的成品 —— 这两段是一条业务线的前后半截。

browser 组 —— 浏览器操控(13)

工具

干什么

browser_open / browser_close

打开网页建立会话 / 用完关闭(reuse=true 免扫码复用已确认的登录态)

browser_snapshot

提取可交互元素并编号(@1、@2…)—— click / type 传编号比 CSS 选择器稳

browser_click / browser_type / browser_press / browser_scroll

点击 / 输入 / 按键 / 滚动

browser_screenshot

截图当前视口,返回路径

browser_eval

在页面里执行 JS —— 读正文/结构化数据只能靠它(snapshot 只给可交互元素)

browser_status

唯一状态真源:相位、在等谁、下一步做什么

browser_await_human / browser_resume

人类交接协议:阻塞等人登录 → 人完成后恢复

browser_sessions

列出所有 agent 的会话(排查「浏览器被谁占着」)

人类交接协议是这个组的核心价值:撞到登录墙不是死路,而是一条有契约的路径 —— status 看它在等什么 → await_human 阻塞等人(退出码 3/4 是状态不是故障, 工具会原样把「需要人类介入 / 等待超时」交回来)→ resume 继续。

身份隔离:lite-browser 的会话按 agent 隔离,而默认身份是 default。本 MCP 每次都 显式传自己的身份(默认 mcp,可用 MUSEAV_MCP_BROWSER_AGENT 改),不会跟别的 agent 抢会话——这是实测踩出来的(第一次没传,直接开在别人正在用的 default 会话上)。

刻意不暴露(是判断,不是遗漏):exec -- <命令>(把输入变成任意 shell 命令)、 cdp(裸协议通道)、cookie export / cookie pull-system(导出/解密 Cookie = 直接交出凭据, 与 kyvault 不进公开 MCP 同一条理由)。

发 Skill 之前必读

skillhub_publish 默认只预演(本地打包校验,不上传不提交),把待提交内容返回给你核对。 只有用户明确说「提交 / 确认 / submit」才带 submit=true —— 提交不可逆,Skill ID 是 平台主键、跨版本不可改名。

真提交前会先查登录态。未登录时 MCP 不会挂在那儿等你:二维码要等进程结束才能 返回给用户,硬等就是死锁,所以会直接报错,让你引导用户去终端跑一次 museav skillhub login 扫码。

CLI 自带平台资产护栏:Skill 正文里抄了 MUSE AV 平台公共模板的提示词会被拒绝发布, 只引用模板 slug(museav gen --template xxx)则放行——搬运是重新分发资产,引用是正常集成。 被拒时按提示把正文换成调用方式。

两个「先查再调」

gen_background 的 template / skill 是必填二选一,但 id 和 slug 只能从中台实时拉: 先用 list_templates / list_skills 查真实清单,再传进去。凭印象编一个,中台只会报 「模板不存在」,Agent 分不清是自己拼错了还是真没有。

模板自带哪些占位符看清单里「字段:」那一列,取值用 gen_background 的 fields 传 (JSON 对象字符串)。

facet_build 的 template 同理 —— 先用 facet_templates 拿清单。

前置条件

npm i -g museav-cli        # museav 组:出图 / 后期 / 素材 / SkillHub(需要 >= 3.9.0)
pipx install git+https://github.com/webkubor/mlx-vlm-kit.git   # vlm 组
npm i -g contrast-guard    # contrast 组
npm i -g @webkubor/facet   # facet 组
npm i -g @kubor/reel-kit   # reel 组(另外要 brew install ffmpeg)
curl -fsSL https://raw.githubusercontent.com/webkubor/lite-browser/main/install.sh | bash   # browser 组

装哪几个由你决定 —— 没装的组就是不会注册,不会报错。

gen_background 还需要中台 apiKey(按 museav-cli 的说明配置)。 本地工具首次运行会下载对应模型(抠图 ~214MB、超分 ~65MB、去水印 ~200MB、 vlm 的 Qwen3-VL-4B 约 2.9GB)。

可执行文件不在全局 PATH 时,用环境变量指定绝对路径: MUSEAV_BIN、MLX_VLM_BIN、CONTRAST_GUARD_BIN、FACET_BIN。

接到 Agent 上

Claude Code 一行:

claude mcp add museav -- npx -y museav-mcp

DSH 在 profile 的 cordis.patch.yml 里加一行:

- id: mcp-museav
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: museav
    transport: stdio
    command: npx
    args: ['-y', 'museav-mcp']

或手写配置(任意支持 MCP 的 Agent):

{
  "mcpServers": {
    "museav": {
      "command": "npx",
      "args": ["-y", "museav-mcp"]
    }
  }
}

想让某个没装 CLI 的分组也出现在工具列表里(调用时才报装什么),加上 env:

{
  "mcpServers": {
    "museav": {
      "command": "npx",
      "args": ["-y", "museav-mcp"],
      "env": { "MUSEAV_MCP_GROUPS": "all" }
    }
  }
}

本地开发(改这个仓库时)

pnpm install && pnpm build     # 产物在 dist/,package.json 的 bin 指向它

配置里把 command 换成 node、args 指向 /绝对路径/museav-mcp/dist/index.js 即可。

还没进来的项目(以及为什么)

这张版图是逐步长出来的,不是一次列全。没进来分三种情况,都不是「忘了」:

项目

为什么还没进

scorecard

仓库里有 CLI,但 npm 上的 scorecard 被一个无关的旧包占着(tarball 里只有一个 index.js)。npm i -g scorecard 装不到它 —— 得先改名或加 scope 发布

kyvault

密钥库,get 会打印明文。这类能力不进公开 MCP,是红线

voxflow

工具面很清晰,但环境门槛高(本地 TTS 模型约 2.9GB),适合单独一组慢慢加

trend-radar / path-guard / tombstone-reaper

能力好,但没有可安装的 CLI:前两个仓库还没开源 / 没发布,最后一个只有仓内脚本

im-notify-kit / ai-sse-kit / talk-skills 等

纯库或纯提示词,没有命令行工具面 —— 要进得先给它们写一个 CLI

想加一组? 三步:给那个项目确认 CLI 能装、在 src/clis.ts 加一份 CliSpec、 在 src/groups/ 加一个分组文件并挂到 src/registry.ts 的 GROUPS。 MCP 侧不写任何业务逻辑。

验证

node test-mcp.mjs      # 起 server 跑 initialize + tools/list
                       # 断言:30 个工具、21 个老工具名一个不少、分组开关逻辑

MUSEAV_MCP_GROUPS=all 是测试用的启动方式 —— CI 机器上什么 CLI 都没装, 走默认的探测策略会一组都不启用,那就测不到工具集本身了。

说明

gen_background 的 prompt / skill / template 三者必须且只能提供一个:prompt 是直接给提示词,skill 和 template 是让中台在服务端展开提示词(配合 input 传一句业务描述)。

四个本地后期工具的 out 已存在时,CLI 会拒绝覆盖 —— 这是防手滑的语义,MCP 保留它: 要覆盖就显式传 overwrite: true,否则报错原文会回到 Agent 手里。

list_templates / list_skills 取的是 CLI 的人类可读表格(stderr),因为 stdout 只有裸 id; list_jobs 取 stdout 的完整 JSON(含 cdn_url / status / error)。清单超过 8000 字会截断, 并附一句「输出已截断」——不附的话 Agent 会把截断处当成清单结尾。

本地工具的超时上限是 10 分钟 —— 超分和 LaMa 修复在大图上确实会慢。

License

MIT

Available Tools

5 tools
compress_imageA

本地压缩图片(sharp,免登录),默认同目录 <名>-min.<格式>

ParametersJSON Schema
NameRequiredDescriptionDefault
outNo输出路径
fileYes输入图片绝对路径
formatNo输出格式
maxEdgeNo最长边缩到此像素(等比)
qualityNojpg/webp 质量,默认 82

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It usefully discloses the auth requirement (no login), processing location (local), implementation library (sharp), and default output behavior (same directory as <name>-min.<format>). It does not explicitly mention whether the original file is preserved or whether existing output files are overwritten, but the default filename strongly implies a new file is created.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is one compact sentence with no unnecessary words. It front-loads the core action and then packs auth, locality, and default output into a short clause. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple image-compression tool with five fully documented parameters and no output schema, the description plus schema covers the essential invocation details: purpose, input, output location, format options, and sizing/quality controls. The lack of an explicit return-value description is a minor gap but the predictable output filename mitigates it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to compensate for undocumented parameters. The schema already describes file, out, format, maxEdge, and quality. The description adds only the default output path behavior, which is useful but not a significant expansion beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('compress'), a resource ('image'), and a concrete scope ('local, sharp, no login'), which immediately distinguishes it from the sibling tools (gen_background, remove_bg, upscale_image, remove_watermark). The default output naming convention adds further precision. An agent can confidently identify this as the local image-compression tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear when to use it: for local image compression without authentication, using the sharp library. It provides context about the local/no-login nature of the operation but does not explicitly name alternatives or state when not to use it, which prevents a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gen_backgroundA

用 MUSE AV 出图中台生成壁纸背景图/一般出图/出视频(在线,需登录)

ParametersJSON Schema
NameRequiredDescriptionDefault
refNo垫图文件绝对路径,多张用逗号分隔
inputNo配合 skill 的一句业务描述
modelNo模型名,如 gpt-image-2
ratioNo宽高比
skillNo中台技能 slug,提示词在服务端展开
videoNo生成视频
promptNo出图提示词(与 skill/template 三选一)
qualityNo质量(仅 gpt-image)
templateNo图片模板 id,提示词在服务端展开
transparentNo透明背景 PNG(抠掉背景)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It usefully notes that the tool is online and requires login, and the verb '生成' indicates it creates new assets rather than modifying existing ones. However, it does not describe output behavior, potential waiting times, video-vs-image behavioral differences, or failure modes, leaving significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence that front-loads the action, names the platform, enumerates the output types, and adds the operational constraint '在线,需登录'. There is no filler; every segment contributes to a quick understanding of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, zero required parameters, no output schema, and no annotations, the description carries a heavy burden to explain the overall invocation model, return values, and default behavior. It only gives a high-level capability statement and a login requirement, leaving ambiguity about what happens after generation, how video generation is triggered or awaited, and which parameter combinations are valid. The schema is rich, but the surrounding operational context is too thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description itself adds little parameter-level meaning; it merely hints at video and general-image outputs that relate to 'video' and 'prompt'/'skill'. Since the schema already documents all parameters thoroughly, the description does not need to compensate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb '生成' (generate) and the resources: wallpaper backgrounds, general images, or videos via the MUSE AV platform. This distinguishes it from the sibling tools (remove_bg, upscale_image, remove_watermark, compress_image), which are all post-processing operations rather than generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: use this tool when generating wallpaper, general images, or video. However, it does not explicitly state when to use this tool versus the sibling alternatives, nor does it give exclusion conditions or guidance on choosing among skill/template/prompt modes. Some guidance exists in the schema, but the description itself stops at implication.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_bgB

本地抠图去背景(ISNet/U2Net,免登录),输出带 alpha 的 PNG

ParametersJSON Schema
NameRequiredDescriptionDefault
outNo输出路径(默认 <名>-nobg.png)
fileYes输入图片绝对路径
modelNo模型,isnet 默认

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the output format (alpha PNG) and the default model (ISNet), but does not disclose important behaviors such as processing time, file size limits, input format constraints, failure modes, or whether the operation is destructive to the input file. With zero annotation coverage, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the core action (抠图去背景), then packs the key differentiators (models, auth-free, output format) without any filler. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-required-parameter tool with a complete schema and no output schema, the description is reasonably complete: the agent knows the action, the models, the output format, and that no login is required. Missing behavioral context—such as expected runtime, input restrictions, or edge cases—prevents a higher score, but the core call path is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (out, file, model), including the enum for model and the default naming convention. The description adds the default model ('isnet 默认') and the alpha-PNG output detail, but these are minor additions since the schema carries the parameter meanings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('抠图去背景') and resource (local image, with named models ISNet/U2Net and an alpha-PNG output). It clearly identifies what the tool does and distinguishes it from a remote service by noting '免登录' (no login required) and local processing. It could be slightly more explicit about the resource being an image file, but the verb-and-resource clarity is solid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: to remove backgrounds locally without authentication. It lists no explicit alternatives or exclusions, but the '免登录' note suggests a context where no account/API key is needed. No explicit guidance on when NOT to use it or which sibling tools to prefer, leaving some inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_watermarkA

本地去水印(LaMa 修复,免登录),自动定位,复杂画面可用 mask 指定

ParametersJSON Schema
NameRequiredDescriptionDefault
outNo输出路径(默认 <名>-clean.png)
fileYes输入图片绝对路径
maskNo手工掩码图(白色=去除区),跳过自动定位

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It reveals meaningful traits: works locally, requires no login, uses LaMa inpainting, automatically locates watermarks, and allows manual masks for difficult cases. This goes beyond a simple 'removes watermarks' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, compact sentence packs in the core purpose, technical method, access mode, and the auto-detection versus manual mask distinction. Every clause earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description plus schema cover the function, the behavior, and the output path default. It could be richer with explicit when-not-to-use scenarios or input format constraints, but nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all 3 parameters with 100% coverage, including the fact that mask skips auto-detection. The description's mention of auto-locating and mask use for complex scenes slightly reinforces parameter behavior but adds minimal new semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (remove watermark), the method (LaMa inpainting), and key attributes (local processing, no login). It distinguishes itself from sibling tools like remove_bg (background removal) and upscale_image by targeting watermarks specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use when an image has a watermark, and use a mask for complex scenes. However, there is no explicit guidance on when not to use this tool or how it compares to alternatives like remove_bg for image cleanup tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upscale_imageA

本地超分放大(Real-ESRGAN + Vulkan GPU,免登录),默认 4x 输出 PNG

ParametersJSON Schema
NameRequiredDescriptionDefault
outNo输出路径
fileYes输入图片绝对路径
modelNo模型
scaleNo放大倍数,默认 4

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It adds useful behavioral context: local processing, GPU-based acceleration via Vulkan, no login required, and PNG output. It does not disclose failure cases or side effects, but the core operational traits 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence that commicates the essential purpose, backend, authentication requirement, default behavior, and output format with no filler. Every segment earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters, no output schema, and no annotations, the description covers the key operational context: local execution, GPU requirement, no login, default scale, and output format. Minor gaps remain around default model choice and error behavior, but the schema covers the parameters thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a baseline of 3 applies. The description goes slightly beyond the schema by specifying '输出 PNG', which clarifies the format of the out parameter, and '默认 4x', which reinforces the scale default. This adds meaningful value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action (super-resolution upscaling), resource (image), engine (Real-ESRGAN + Vulkan), and output behavior (default 4x PNG). This clearly separates it from sibling tools like remove_bg, remove_watermark, and compress_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose and sibling names imply that upscale_image is for enlarging/enhancing images rather than background removal, watermark removal, or compression. However, there is no explicit guidance about when to choose this tool over alternatives 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedcompress_image
    • First observedgen_background
    • First observedremove_bg
    • First observedremove_watermark
    • First observedupscale_image

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct transformation: generation, background removal, upscaling, watermark removal, and compression. There is no meaningful overlap; even the two remove_* tools operate on clearly different subjects.

Naming Consistency5/5

All tool names follow a verb_noun snake_case pattern: gen, remove, upscale, remove, compress. The use of 'bg' as an abbreviation for 'background' is minor and does not break the overall consistency.

Tool Count5/5

Five tools is a well-scoped set for an image-processing server. Each tool earns its place and together they cover a practical generation-to-optimization workflow without redundancy.

Completeness4/5

The set covers a coherent image workflow: generate, remove background/watermark, upscale, and compress. Minor gaps exist, such as image format conversion or metadata inspection, but common tasks are not blocked.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers