Skip to main content
Glama

⚠️ 别和 cs mcp serve 搞混

系统里有两个都叫「cs 的 MCP」的东西。它们互补,不重合 —— 接错的那个会得到一堆你不需要的工具:

cs mcp serve(CortexOS 内置)

本仓 cs-mcp

形态

Go,cs 的一个子命令

TypeScript,独立 npm 包

server 名

cortexos

cs

管什么

系统上下文:规则 / 技能 / 知识搜索 / CLI 台账 / Agent 上下文

工具链串联:各开源项目的 CLI 能力

真源

cli-registry.json + docs/rules + skills

各项目自己的 CLI

数量

11 个只读发现工具

43 个工具,6 个能力分组

一句话分界:想知道「cs 系统里有什么规矩、有什么技能」用 cs mcp serve; 想「出一张图、把 Markdown 排成 PDF、开个真浏览器」用 cs-mcp。

顺带一句:Agent 侧其实不需要 MCP。 能跑 Bash 的 Agent 直接调 cs CLI 就够, 而且那是主干道(MCP 的通路管不到远端机器)。MCP 的价值只在跑不了 Bash 的客户端上。 见 cs rule 里 cmd/mcp.go 的定位说明。

Related MCP server: DreamLayer image tools

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

需求

逐个手搓命令

每个工具各接一遍 SDK

cs-mcp

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

❌ 四套用法

❌ 接四遍协议

✅ 一个 server 全给

换 Agent 就失效

❌ 命令绑定

⚠️ 各家 SDK 不同

✅ 换谁都认 MCP

没装的工具白占上下文

—

❌ 全量注册

✅ 探测式:装了才注册

大图 / 长文进上下文

❌ 手动处理

❌ 自己写 base64

✅ 一律走绝对路径

加新能力

各自记命令

❌ 得改 MCP 代码

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

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

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

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

分组

层次

开源项目

工具

干什么

前置

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:列出全部分组、各自装什么、为什么没启用

无

六组里只有 museav 是在线服务:要登录、要网络、有余额配额、会花钱;其余五组是离线确定性计算。 这个差别在工具面上直接可读 —— 云能力那 17 个统一带 museav_ 前缀。owner 的口径就一句: cs 是核心,museav 是云能力。

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

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

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

3.0.0 之前的旧名 MUSEAV_MCP_GROUPS 仍兼容(新名优先,同时设置且不同时以新名为准并在 stderr 提示)。之所以必须留旧名:变量被忽略不会报错 —— 它会静默回落成探测式, 原来写 all 的人那些强开的分组会悄悄消失,连告警都没有。

⚡ 30 秒上手

⚠️ 3.0.0 尚未发到 npm(cs-mcp 这个名字 2025-04-25 被撤过、museav-mcp 2026-10-05 被撤过, 两个都还是空位)。发布前请用下面的「从源码起」那一种;npx -y cs-mcp 要等 3.0.0 真发出去才成立。

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

发布之后(一行接入,任何支持 MCP 的客户端都认):

claude mcp add cs -- npx -y cs-mcp

现在就能用(从本地 clone 起):

git clone https://github.com/webkubor/cs-mcp && cd cs-mcp
pnpm install && pnpm build
claude mcp add cs -- node "$PWD/dist/index.js"

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

工具(43 个)

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

工具

干什么

是否需要登录

museav_gen_background

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

✅ 需要

museav_remove_bg

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

免登录,本地跑

museav_upscale_image

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

免登录,本地跑

museav_remove_watermark

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

免登录,本地跑

museav_compress_image

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

免登录,本地跑

museav_list_templates

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

✅ 需要

museav_list_skills

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

✅ 需要

museav_list_video_templates

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

✅ 需要

museav_list_models

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

✅ 需要

museav_balance

查上游余额

✅ 需要

museav_list_jobs

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

✅ 需要

museav_upload_asset

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

✅ 需要

museav_image_to_template

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

✅ 需要

museav_reverse

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

✅ 需要

museav_skillhub_tags

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

✅ 需要

museav_skillhub_whoami

查 SkillHub 登录态(脱敏)

✅ 需要

museav_skillhub_publish

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

✅ 需要

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

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

工具

干什么

vlm_describe

描述图片主体与色调

vlm_ask

对图片任意提问

vlm_cover_check

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

vlm_reverse_prompt

反推出图 prompt,喂回 museav_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,可用 CS_MCP_BROWSER_AGENT 改;旧名 MUSEAV_MCP_BROWSER_AGENT 仍兼容),不会跟别的 agent 抢会话——这是实测踩出来的(第一次没传,直接开在别人正在用的 default 会话上)。

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

发 Skill 之前必读

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

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

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

两个「先查再调」

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

模板自带哪些占位符看清单里「字段:」那一列,取值用 museav_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 组

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

museav_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 上

⚠️ 下面三段默认都写 npx -y cs-mcp,而 3.0.0 还没发到 npm,照抄会起不来 (详见上文「30 秒上手」的警告)。发布前把 command / args 换成 node + /绝对路径/cs-mcp/dist/index.js 即可 —— 本机 Claude Code 与 DSH 现在都是这么接的。 下面保留 npx 写法,因为它是发布后的稳定形态。

Claude Code 一行(发布后):

claude mcp add cs -- npx -y cs-mcp

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

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

serverName 决定客户端里的工具命名空间:cs 让工具叫 mcp__cs__museav_gen_background。 3.0.0 之前是 museav,于是加了 museav_ 前缀后会变成 mcp__museav__museav_gen_background 这种双重前缀 —— 所以这次一并改成了 cs。 DSH 与 WorkBuddy 是 GUI 工具、不是 Agent(见 cs rule agent_governance 的 gui-not-agent 红线), 这份配置是修工具本身,不是给它派活。

或手写配置(任意支持 MCP 的客户端):

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

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

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

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

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

配置里把 command 换成 node、args 指向 /绝对路径/cs-mcp/dist/index.js 即可 (3.0.0 发布前这是唯一可用的接法,见「30 秒上手」)。

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

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

项目

为什么还没进

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
                       # 断言:43 个工具;每个名字以所属分组 id 开头;旧变量名仍生效

CS_MCP_GROUPS=all 是测试用的启动方式 —— CI 机器上什么 CLI 都没装, 走默认的探测策略会一组都不启用,那就测不到工具集本身了。旧名 MUSEAV_MCP_GROUPS 会被再起一次 server 验证,确认与新名等价(改名的静默降级只在这条路上暴露)。

说明

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

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

museav_list_templates / museav_list_skills 取的是 CLI 的人类可读表格(stderr),因为 stdout 只有裸 id; museav_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