Skip to main content
Glama

pivision โ€” MCP Vision & Image Generation Server

One service, two ways to use it: an MCP server for AI assistants (CodeBuddy / Claude Desktop / any MCP client), and a FastAPI HTTP API (port 7002) for your own programs, scripts, and browser.

pivision is a plug-and-play "see images + draw images" toolbox. It recognizes what's inside a local image or video link, and generates images from a text description โ€” with no coding required to use it.

๐Ÿ’ก Free to use โ€” both the vision and image-generation APIs backed into pivision are currently free, with generous quotas that are enough for personal use and large projects. You only need to register and get your own API keys (see Getting API Keys).

Think of r-pic / r-vid as giving your LLM "eyes" โ€” your AI assistant can finally see the images and videos you hand it, describe them, and answer questions about them.

  • Vision (see): describe a local picture, parse a video URL โ€” the model's "eyes"

  • Generation (draw): text-to-image, infographic-to-image, image-to-image (reference + instruction)

  • Batch: run hundreds of tasks from a simple text file with resume support


โœจ Features

6 MCP tools

r-pic ยท r-vid ยท g-pic ยท i-pic ยท p-pic ยท b-gen โ€” one tool per pipeline, fully decoupled config

Dual interface

MCP (stdio) for AI clients + FastAPI HTTP server (8 endpoints, port 7002) for any program

Adapter architecture

Two-layer adapters (vendor-specific + OpenAI-compatible generic). Add a new model = fill in .env, zero code changes

5 isolated pipelines

VISION_ / VISION_VIDEO_ / GEN_IMAGE_ / GEN_INFOGRAPH_ / EDIT_IMAGE_ env prefixes, each with an ENABLED switch

Multi-key pool

Generation keys support comma-separated pools; auto-rotate on 401/403/429

Named instances

Multiple config instances per pipeline, selectable at call time via instance=

Smart fallback

Video config auto-falls-back to image config; named instances fall back to main instance field-by-field

Batch engine

b-gen runs tasks line-by-line with resume (skip completed rows after interruption)

Secure by design

Zero hardcoded keys, _safe_error() redaction, config preflight that never prints real keys


Related MCP server: Gemini Image MCP

๐Ÿ— Architecture

                 pivision.py (entry, FastMCP "pivision")
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  r-pic   r-vid   g-pic/i-pic   p-pic      b-gen
   โ”‚        โ”‚        โ”‚           โ”‚          โ”‚
   โ–ผ        โ–ผ        โ–ผ           โ–ผ          โ–ผ
get_vision_adapter      get_pipeline_adapter(pipeline, provider, instance)
(prefix VISION_ /      (prefix GEN_IMAGE_ / GEN_INFOGRAPH_ / EDIT_IMAGE_,
 VISION_VIDEO_ fallback)   main instance + named instances)
   โ”‚        โ”‚        โ”‚           โ”‚
   โ–ผ        โ–ผ        โ–ผ           โ–ผ
 /v1/chat/completions   /v1/images/generations (url) ยท /v1/images/edits (JSON+base64)
 (image / video_url)   ยท openai_compat multipart (image-to-image)

                 api_server.py (FastAPI, :7002 โ€” same business layer)
   /health ยท /tools ยท /r-pic ยท /r-vid ยท /g-pic ยท /i-pic ยท /p-pic ยท /b-gen

   utils.py (save/naming/size/base64/batch/history)
   adapters/__init__.py (adapter registry + factory + get_config_summary())
   On disk: art/*.png ยท pivision_batch_results.txt ยท .bgen_progress.json ยท history.json

Core design:

  • Pipeline prefix isolation โ€” the three generation pipelines read independent env vars (GEN_IMAGE_* / GEN_INFOGRAPH_* / EDIT_IMAGE_*); switch backend per pipeline without touching code.

  • Vision dual-branch fallback โ€” r-vid reuses VISION_* when VISION_VIDEO_* is not configured: one key set, two use cases.

  • Enable switches โ€” each pipeline has {PREFIX}_ENABLED (default true; set to false to fully disable it, no API calls are made).

  • Named instances โ€” declare multiple config instances per generation pipeline ({PREFIX}_INSTANCES), select at runtime with the instance tool parameter.

  • Multi-key pool โ€” comma-separated keys in *_API_KEYS; automatic key rotation on 401/403/429.


๐Ÿš€ Quick Start

Prerequisite: Python โ‰ฅ 3.11.

1. Install

cd pivision            # wherever you cloned/unpacked the project
python -m venv .venv
.venv/bin/pip install -e .

2. Configure .env

cp .env.example .env

Fill in your keys: vision โ†’ VISION_API_KEY (video falls back to it automatically when empty); generation โ†’ each section's *_API_KEYS (comma-separated for multiple keys). Pipelines without keys return โŒ ๆœช้…็ฝฎ {xxx_API_KEYS} instead of making wrong requests.

2.5 Get API Keys (free)

Both backed APIs are currently free with generous quotas โ€” you only register once and grab your keys:

Pipeline

Provider

Where to register

Key to fill in .env

Vision (r-pic / r-vid)

dots (Xiaohongshu Dots Studio)

https://dots.ai/platform โ€” sign in with phone number, then create a key on the API Keys page

VISION_API_KEY

Generation (g-pic / i-pic / p-pic)

SenseNova (SenseTime)

https://platform.sensenova.cn โ€” register + phone verify, then Console โ†’ API Keys โ†’ create an sk- key

GEN_IMAGE_API_KEYS / GEN_INFOGRAPH_API_KEYS / EDIT_IMAGE_API_KEYS

Both providers are OpenAI-compatible. If you already have another OpenAI-compatible key (OpenAI / DeepSeek / Moonshot / local gatewayโ€ฆ), point VISION_BASE_URL / *_BASE_URL to your own endpoint and reuse your existing key โ€” no extra registration needed.

3a. Use as MCP (for AI assistants)

Register the server in your MCP client (e.g. CodeBuddy โ†’ Settings โ†’ MCP Servers). The pic-config.json / mcp-register.json in the project are ready-to-merge templates:

{
  "mcpServers": {
    "pivision": {
      "command": "<your-project-path>/.venv/bin/python",
      "args": ["<your-project-path>/pivision.py"]
    }
  }
}

Replace <your-project-path> with the actual path on the target machine. The Python code itself uses relative paths โ€” only the registration JSON needs per-machine paths.

Start / verify:

cd pivision
.venv/bin/python pivision.py

The service waits silently for the AI client to connect. Once registered, just chat with your assistant โ€” it will call the tools for you.

3b. Use as HTTP API (for programs & scripts)

cd pivision
.venv/bin/python api_server.py

Expected output:

INFO:     Uvicorn running on http://127.0.0.1:7002
INFO:     pivision API ๆœๅŠกๅ™จๅฐฑ็ปช๏ผˆHTTP ็ซฏๅฃ 7002๏ผ‰

The server listens on 127.0.0.1:7002 (local machine only). Run it in the background if you want it to survive closing the terminal:

nohup python api_server.py > pivision_server.log 2>&1 &
# check:  curl http://127.0.0.1:7002/health
# stop:   pkill -f api_server.py

๐Ÿ›  MCP Tools

Every tool returns a string: success starts with โœ…, failure with โŒ (with reason) โ€” MCP clients can judge by prefix.

r-pic โ€” Image recognition

r-pic(image_path, question="่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๅผ ๅ›พ็‰‡็š„ๅ†…ๅฎนใ€‚", provider=None, model=None, max_tokens=1024)
  • image_path: local image (PNG/JPG/WEBP/GIF), required

  • question: what you want to know about the image

  • max_tokens: response length cap, default 1024

r-vid โ€” Video recognition

r-vid(video_url, question="่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๆฎต่ง†้ข‘็š„ๅ†…ๅฎนใ€‚", provider=None, model=None, max_tokens=8192)
  • video_url: must be a publicly accessible http/https link (local paths / LAN addresses won't work)

  • max_tokens: default 8192 โ€” video parsing output is long, keep it high

g-pic / i-pic โ€” Text-to-image

g-pic(prompt, size="2752x1536", n=1, provider=None, instance=None)
i-pic(prompt, size="2752x1536", n=1, provider=None, instance=None)
  • g-pic: general text-to-image (GEN_IMAGE pipeline)

  • i-pic: infographics / posters / charts (GEN_INFOGRAPH pipeline, default sensenova-u1-fast)

  • n: 1โ€“20; n>1 is generated one-by-one (the official API supports one per call)

  • instance: named instance, e.g. "a"; unknown instance โ†’ explicit error (no silent fallback)

p-pic โ€” Image-to-image (reference + instruction)

p-pic(prompt, image_path, size="2752x1536", provider=None, instance=None)
  • image_path: reference image path (local), required โ€” sent as data:image/*;base64, Data-URI

  • Only n=1 is allowed

b-gen โ€” Batch engine

b-gen(task, file_path, interval=0, resume=False, size="2752x1536", n=1)
  • task: g-pic / i-pic / p-pic / r-pic / r-vid

  • Reads tasks line-by-line from a .txt / .md file (see format below)

  • resume=True: progress saved to .bgen_progress.json; re-run skips completed rows. Progress auto-invalidates if the task type or input file changes.

  • interval: seconds between tasks (set 1โ€“2 to avoid rate limits)

  • Results are written to pivision_batch_results.txt

Task file format (one task per line):

task

Line format

Example line

g-pic / i-pic

1 prompt

ไธ€ๅช็Œซๅ’ชๅ’–ๅ•กๅŽ…ๆ’ๅ›พ

r-pic

1 image path

/data/photo.png

r-vid

1 video URL

https://example.com/clip.mp4

p-pic

prompt | reference path

ๆŠŠ่ƒŒๆ™ฏๆ”นๆˆ้›ชๅฑฑ | /data/sketch.png


๐ŸŒ HTTP API (FastAPI, port 7002)

Same business layer as MCP โ€” no duplicated logic. All endpoints return a unified response structure:

{"code": 0, "msg": "ok", "data": "..."}

code

Meaning

How to judge

0

success

msg is "ok", real result in data

1

business failure (missing key, file not found)

read msg

2

internal exception (bug)

read msg

8 endpoints:

Method

Endpoint

Purpose

Required fields

GET

/health

health check

โ€”

GET

/tools

list available tools

โ€”

POST

/r-pic

image recognition

image_path; optional question, max_tokens

POST

/r-vid

video recognition

video_url; optional question, max_tokens

POST

/g-pic

text-to-image

prompt; optional size, n, instance

POST

/i-pic

infographic generation

prompt; optional size, n, instance

POST

/p-pic

image-to-image

prompt, image_path; optional size, instance

POST

/b-gen

batch engine

task, file_path; optional interval, resume, size, n

Quick test:

curl http://127.0.0.1:7002/health
curl -X POST http://127.0.0.1:7002/g-pic -H "Content-Type: application/json" \
  -d '{"prompt": "a cat by a coffee shop window, illustration style"}'

โš™๏ธ Environment Variables Reference

5 sections โ€” all new v6 variables (code defaults shown in parentheses; env vars override).

VISION_ โ€” r-pic image recognition

Variable

Meaning

Default

VISION_ENABLED

enable switch: true/false (empty = on)

true

VISION_PROVIDER

vision backend: openai / dots

dots

VISION_MODEL

vision model

dots3-note-prev

VISION_BASE_URL

OpenAI-compatible base URL

https://note3-prev-api.askdiandian.com/v1

VISION_API_KEY

vision API key

empty

VISION_VIDEO_ โ€” r-vid video recognition (all empty โ†’ falls back to VISION_*)

Variable

Meaning

Default

VISION_VIDEO_ENABLED

video switch; empty falls back to VISION_ENABLED; explicit false = video line disabled

true

VISION_VIDEO_PROVIDER / _MODEL / _BASE_URL / _API_KEY

video backend; empty โ†’ fall back to VISION_*

same as vision

GEN_IMAGE_ โ€” g-pic text-to-image

Variable

Meaning

Default

GEN_IMAGE_ENABLED

enable switch

true

GEN_IMAGE_ADAPTER

sensenova / openai_compat

sensenova

GEN_IMAGE_MODEL

text-to-image model (main instance)

sensenova-u1.5-lite

GEN_IMAGE_BASE_URL

OpenAI-compatible base URL (main instance)

https://token.sensenova.cn/v1

GEN_IMAGE_API_KEYS

comma-separated key pool (main instance)

empty

GEN_IMAGE_INSTANCES

named instance list, e.g. a,b; empty = main only

empty

GEN_INFOGRAPH_ โ€” i-pic infographics

Same shape as GEN_IMAGE_*; default model sensenova-u1-fast.

EDIT_IMAGE_ โ€” p-pic image-to-image

Same shape as GEN_IMAGE_*; default model sensenova-u1.5-lite (decoupled from text-to-image).

openai_compat optional extras: {PREFIX}_RESPONSE_FORMAT (url/b64_json, default url), {PREFIX}_EDIT_URL (image-edit endpoint override, default ${BASE_URL}/images/edits).

Fallback chain (priority order)

named-instance vars ({PREFIX}_{X}_FIELD) โ†’ main-instance vars ({PREFIX}_FIELD) โ†’ code defaults

Only two fallback types exist, no legacy-variable fallback:

  1. Video โ†’ image: VISION_VIDEO_* all empty โ†’ VISION_* (switch follows the same chain).

  2. Named instance โ†’ main instance: instance field empty โ†’ main instance field (no _ADAPTER per instance; {PREFIX}_ADAPTER is pipeline-level).


๐Ÿ”Œ Adapter Mechanism

Two-layer: common differences are absorbed by generic adapters, special differences by vendor-specific adapters. The tools only see capability interfaces.

Adapter

Type

Purpose

Special differences handled

openai_compat

generation ยท generic

OpenAI-compatible protocol (/images/generations, multipart edits)

none โ€” differences handled by config (change MODEL/BASE_URL = switch vendor)

sensenova

generation ยท vendor

SenseNova image generation

multi-key pool, watermark/prompt_extend, image-edit JSON + base64 Data-URI

openai

vision ยท generic

OpenAI-compatible vision

none (Bearer auth, detail=auto)

dots

vision ยท vendor

dots vision

api-key header auth, detail=medium, enable_thinking=false, video stream=false

Add a new OpenAI-compatible model โ€” zero code:

GEN_IMAGE_ADAPTER=openai_compat
GEN_IMAGE_MODEL=foo-image-x1
GEN_IMAGE_BASE_URL=https://foo.example.com/v1
GEN_IMAGE_API_KEYS=sk-foo-xxxx

Tools work immediately. Only write a custom adapter when the API is not OpenAI-compatible (private protocols, two-stage polling, special auth headers, JSON+base64 edits, multi-key pools, non-configurable differences) โ€” register it in adapters/__init__.py in one line, pipeline code untouched.

Multi-key pool constraints: keys in one *_API_KEYS must be same vendor + same BASE_URL + same MODEL (they rotate for one endpoint). Don't mix vendors/URLs/models in one pool (โ†’ 400/404, no key rotation, cascading errors). Use different config sections or named instances for multiple endpoints.


๐Ÿ” Config Preflight

adapters.get_config_summary() returns the readiness of all 5 pipelines (+ named instances) โ€” N of M available โ€” so agents/clients can check before calling. It only reports "configured / not configured", never prints actual keys.

import json
from adapters import get_config_summary

for r in get_config_summary():
    print(f"{r['tool']:6s} {r['prefix']:16s} instance={str(r['instance'] or '(main)'):6s} "
          f"adapter={r['adapter']:12s} model={r['model']:20s} keys={r['api_keys']:3s} โ†’ {r['status']}")

Example output (fully configured case):

g-pic  GEN_IMAGE        ๅฎžไพ‹=(ไธป)   adapter=sensenova    model=sensenova-u1.5-lite keys=ๅทฒ้…็ฝฎ โ†’ AVAILABLE
i-pic  GEN_INFOGRAPH    ๅฎžไพ‹=(ไธป)   adapter=sensenova    model=sensenova-u1-fast   keys=ๅทฒ้…็ฝฎ โ†’ AVAILABLE
p-pic  EDIT_IMAGE       ๅฎžไพ‹=(ไธป)   adapter=sensenova    model=sensenova-u1.5-lite keys=ๅทฒ้…็ฝฎ โ†’ AVAILABLE
r-pic  VISION           ๅฎžไพ‹=(ไธป)   adapter=dots         model=dots3-note-prev     keys=ๅทฒ้…็ฝฎ โ†’ AVAILABLE
r-vid  VISION_VIDEO     ๅฎžไพ‹=(ไธป)   adapter=dots         model=dots3-note-prev     keys=ๅทฒ้…็ฝฎ โ†’ AVAILABLE

ๆฑ‡ๆ€ป๏ผš5 of 5 available

๐Ÿ”’ Security

  • Keys live only in .env (excluded by .gitignore, never committed) โ€” zero hardcoded keys in code.

  • All adapters redact key fragments in errors and logs via _safe_error() โ†’ [redacted].

  • get_config_summary() prints only "configured / not configured" โ€” never the keys themselves.

  • Never put full keys in frontend code, logs, or public repos.

  • HTTP server binds to 127.0.0.1 by default โ€” local machine only, not exposed to LAN/Internet unless you change host.


๐Ÿ“ Notes & FAQ

Q1: Generated image URLs expire? u1.5-lite URLs expire in 24h, u1-fast in 1h (per official docs). pivision downloads every generated image to local art/ automatically โ€” always use the local file path, ignore the temp URL.

Q2: Video recognition fails / can't parse? The video URL must be a publicly reachable http/https link โ€” LAN addresses, localhost, and local file paths won't work. Parsing can be slow, that's normal; if it times out, use a shorter/smaller video. Default timeout is 180s (TIMEOUT_SECONDS in adapters/vision_base.py).

Q3: "Not configured {xxx}_API_KEYS"? That pipeline has no key. Fill *_API_KEYS in .env, then restart the service.

Q4: "Pipeline disabled ({PREFIX}_ENABLED=false)"? The switch is off. Set {PREFIX}_ENABLED to true (or delete the line โ€” empty counts as on), then restart.

Q5: Key rotation still hits 400/404? Almost certainly a mixed pool โ€” keys pointing to different models/endpoints in one pool. Split by endpoint using different config sections or named instances.

Q6: Env vars changed but no effect? .env is loaded once at startup. Restart the service. Note named-instance vars are case-sensitive (GEN_IMAGE_A_MODEL โ€” instance suffix uppercase).

Q7: Size errors or wrong orientation? Generation auto-matches the nearest aspect ratio + LANCZOS downscale for unsupported sizes (output notes โšก ่‡ชๅŠจ็ผฉๆ”พ). If still failing, make sure size is WxH format (e.g. 1024x1024).

Limits: single image โ‰ค 20MB for r-pic; video timeout 180s (adjustable constant); b-gen per-line failure doesn't stop the batch.


๐Ÿ“ฆ Project Layout

pivision/
โ”œโ”€โ”€ pivision.py           # MCP entry (FastMCP "pivision")
โ”œโ”€โ”€ api_server.py         # FastAPI HTTP server (:7002)
โ”œโ”€โ”€ utils.py              # save/naming/size/base64/batch/history
โ”œโ”€โ”€ adapters/             # adapter registry + factory
โ”‚   โ”œโ”€โ”€ __init__.py       #   registry + get_config_summary()
โ”‚   โ”œโ”€โ”€ vision_base.py    #   vision base (timeout, max image size)
โ”‚   โ”œโ”€โ”€ vision_openai.py  #   vision ยท generic OpenAI-compatible
โ”‚   โ”œโ”€โ”€ vision_dots.py    #   vision ยท dots vendor
โ”‚   โ”œโ”€โ”€ openai_compat.py  #   generation ยท generic OpenAI-compatible
โ”‚   โ””โ”€โ”€ sensenova.py      #   generation ยท SenseNova vendor
โ”œโ”€โ”€ pyproject.toml
โ”œโ”€โ”€ .env.example          # config template (fill your keys โ†’ .env)
โ”œโ”€โ”€ pic-config.json       # MCP registration template (generic)
โ”œโ”€โ”€ mcp-register.json     # MCP registration template (CodeBuddy tagged)
โ””โ”€โ”€ README-zh.md          # ไธญๆ–‡็‰ˆ่ฏดๆ˜Ž

๐Ÿ“„ License

To be determined by the project owner โ€” see repository listing. (Internal / local deployment tool; not published to npm/PyPI.)

Available Tools

6 tools
b-genA

้€š็”จๆ‰น้‡ๅผ•ๆ“Ž๏ผšไปŽ .txt/.md ๆ–‡ไปถ้€่กŒ่ฏปๅ–ไปปๅŠกๅนถๆ‰น้‡ๆ‰ง่กŒ๏ผŒๆ”ฏๆŒ้—ด้š”ไธŽๆ–ญ็‚น็ปญไผ ใ€‚

ๅ‚ๆ•ฐ๏ผš task: ไปปๅŠก็ฑปๅž‹๏ผŒๅฟ…ๅกซ๏ผˆg-pic/i-pic ๆฏ่กŒไธ€ไธช prompt๏ผ›r-pic ๆฏ่กŒไธ€ไธชๅ›พ็‰‡่ทฏๅพ„๏ผ› r-vid ๆฏ่กŒไธ€ไธช่ง†้ข‘ URL๏ผ›p-pic ๆฏ่กŒ "prompt | ๅ‚่€ƒๅ›พ่ทฏๅพ„"๏ผ‰ file_path: ่พ“ๅ…ฅๆ–‡ไปถ่ทฏๅพ„๏ผŒๅฟ…ๅกซ interval: ็›ธ้‚ปไปปๅŠก้—ด้š”็ง’ๆ•ฐ๏ผˆ้ป˜่ฎค 0๏ผ‰ resume: ๆ–ญ็‚น็ปญไผ ๅผ€ๅ…ณ๏ผˆ่ฟ›ๅบฆ่ฎฐๅฝ•ไบŽ .bgen_progress.json๏ผ‰ size: ๅฐบๅฏธ๏ผˆไป…็”Ÿๅ›พไปปๅŠก็”Ÿๆ•ˆ๏ผŒ้ป˜่ฎค 2752x1536๏ผ‰ n: ็”Ÿๆˆๆ•ฐ้‡๏ผˆไป… g-pic/i-pic ็”Ÿๆ•ˆ๏ผŒ้ป˜่ฎค 1๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo2752x1536
taskYes
resumeNo
intervalNo
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It discloses key behaviors: line-by-line reading, interval between tasks, and resume via progress recorded in .bgen_progress.json. However, it does not disclose error handling, output behavior, or side effects of execution, which are relevant for a batch tool with no annotation safety hints.

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 compact and well-structured: a one-line summary followed by a clearly formatted parameter list. Every sentence adds value, including defaults and task-specific constraints. No filler or redundancy.

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 batch engine with 6 parameters and multiple task types, the description is largely complete: it covers purpose, parameters, file formats, and resume behavior. The output schema exists, so return values need not be explained. It lacks details on failure handling and sequential execution, but nothing critical is missing for invoking the tool.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates. It explains every parameter, including task types with per-line payload formats (e.g., g-pic/i-pic expect one prompt per line, p-pic expects 'prompt | reference path'), defaults for interval/size/n, and conditional applicability of size/n. This goes well beyond the bare 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 opens with a specific verb+resource: '้€š็”จๆ‰น้‡ๅผ•ๆ“Ž๏ผšไปŽ .txt/.md ๆ–‡ไปถ้€่กŒ่ฏปๅ–ไปปๅŠกๅนถๆ‰น้‡ๆ‰ง่กŒ' (generic batch engine reading tasks line by line from .txt/.md files and executing them in batch). It also mentions interval and resume support, which clearly distinguishes it from the sibling single-task tools like g-pic or r-vid.

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 clearly establishes when to use this tool: when you need to batch-execute tasks listed in a file, with optional interval and resume. It does not explicitly name alternatives or state when not to use the siblings, but the batch-engine framing and the task-type parameter give clear usage context. Without explicit exclusions, a 4 is appropriate.

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

g-picA

้€š็”จๆ–‡็”Ÿๅ›พ๏ผˆGEN_IMAGE ๆตๆฐด็บฟ๏ผ‰ใ€‚ๆ”ฏๆŒๅคšๅผ  n>1๏ผŒๅฏๆŒ‡ๅฎš provider ๅŽ็ซฏไธŽๅ‘ฝๅๅฎžไพ‹ใ€‚

ๅ‚ๆ•ฐ๏ผš prompt: ๅ›พ็‰‡ๆ่ฟฐ๏ผŒๅฟ…ๅกซ size: ๅฐบๅฏธ๏ผˆ้ป˜่ฎค 2752x1536๏ผŒAPI ไธๆ”ฏๆŒๆ—ถ่‡ชๅŠจ้€‚้…ๆœ€่ฟ‘ๅฎฝ้ซ˜ๆฏ”๏ผ‰ n: ็”Ÿๆˆๆ•ฐ้‡๏ผˆ้ป˜่ฎค 1๏ผ‰ provider: ๅŽ็ซฏ๏ผˆsensenova/openai_compat๏ผŒ้ป˜่ฎค่ฏป GEN_IMAGE_ADAPTERโ†’sensenova๏ผ‰ instance: ๅ‘ฝๅๅฎžไพ‹ๅ๏ผˆๅฆ‚ "a"๏ผ›้ป˜่ฎค None ่ตฐไธปๅฎžไพ‹๏ผŒ่ง 3.7 ๅ‘ฝๅๅฎžไพ‹ๆœบๅˆถ๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo2752x1536
promptYes
instanceNo
providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 of behavioral disclosure, and it does so well: it reveals automatic size adaptation when the API does not support the requested dimensions, the default provider resolution order (GEN_IMAGE_ADAPTER โ†’ sensenova), and the default instance behavior (None โ†’ main instance). Some behaviors like error handling or rate limits are omitted, but the key operational quirks are disclosed.

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

Conciseness4/5

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

The description is compact and well-structured: a one-sentence purpose summary followed by a clean parameter list. Every line adds useful information with no filler. The only minor weakness is the reference to an external '3.7 ๅ‘ฝๅๅฎžไพ‹ๆœบๅˆถ' section, which reduces self-containedness.

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?

This is a moderate-complexity generation tool with 5 parameters and an output schema, so return-value documentation is not required from the description. The description covers all parameter semantics, defaults, provider fallback, and size-adaptation behavior. It lacks explicit usage examples or edge-case handling, but overall it is sufficient for selecting and invoking the tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it does: every parameter (prompt, size, n, provider, instance) is explained with defaults, valid options or behaviors, and resolution rules. This goes far beyond the bare schema types and titles, giving an agent enough to construct valid calls confidently.

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 clearly identifies a specific operation: general text-to-image generation via the GEN_IMAGE pipeline, with support for multiple images and configurable provider/instance. It is concrete and not a tautology. However, it does not explicitly contrast itself with sibling tools, so some differentiation is left to inference.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The phrase '้€š็”จๆ–‡็”Ÿๅ›พ' implies a general purpose, and the mention of n>1, provider, and instance signals capabilities, but the description never tells an agent when to choose g-pic over siblings like r-pic or i-pic, nor what scenarios would make another tool more appropriate.

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

i-picA

ไฟกๆฏๅ›พๆ–‡็”Ÿๅ›พ๏ผˆGEN_INFOGRAPH ๆตๆฐด็บฟ๏ผŒ้ป˜่ฎคๆจกๅž‹ sensenova-u1-fast๏ผ‰ใ€‚ๆ”ฏๆŒๅคšๅผ  n>1ใ€‚

ๅ‚ๆ•ฐ๏ผš prompt: ไฟกๆฏๅ›พๆ่ฟฐ๏ผŒๅฟ…ๅกซ size: ๅฐบๅฏธ๏ผˆ้ป˜่ฎค 2752x1536๏ผŒu1-fast ๆไพ› 11 ็ง 2K ๅธธ้‡๏ผ‰ n: ็”Ÿๆˆๆ•ฐ้‡๏ผˆ้ป˜่ฎค 1๏ผ‰ provider: ๅŽ็ซฏ๏ผˆsensenova/openai_compat๏ผŒ้ป˜่ฎค่ฏป GEN_INFOGRAPH_ADAPTERโ†’sensenova๏ผ‰ instance: ๅ‘ฝๅๅฎžไพ‹ๅ๏ผˆ้ป˜่ฎค None ่ตฐไธปๅฎžไพ‹๏ผŒ่ง 3.7๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
nNo
sizeNo2752x1536
promptYes
instanceNo
providerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden and does add useful behavioral details: default model, multi-image support, provider fallback via GEN_INFOGRAPH_ADAPTER, and instance selection semantics. However, it does not disclose authentication needs, rate limits, failure behavior, or any side effects, so coverage is only partial.

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

Conciseness4/5

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

The description is compact and front-loaded: a one-line purpose statement followed by a clear parameter list. The only minor issue is the external reference '่ง 3.7' and the absence of the actual size constant list, but there is no filler or redundancy.

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?

The description provides enough defaults to invoke the tool correctly, and an output schema apparently exists, so return-value documentation is not required. Still, it lacks usage boundaries against sibling tools, does not enumerate the 11 size constants, and references an external section that the agent may not have access to.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully by explaining all five parameters: prompt is required, size has a default and a family of 2K constants, n controls count, provider selects backend with a fallback, and instance names a specific instance. This adds real meaning beyond the raw schema.

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 clearly states the tool generates infographic images ('ไฟกๆฏๅ›พๆ–‡็”Ÿๅ›พ') and identifies the GEN_INFOGRAPH pipeline with a default model, so the function's purpose is specific and actionable. However, it does not explicitly distinguish itself from sibling tools such as r-pic, g-pic, or p-pic, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

There is no guidance about when to choose this tool over alternatives, nor any mention of sibling tools or exclusions. The description only lists capabilities and defaults, leaving the selection decision entirely to the agent.

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

p-picA

ๅ›พ็”Ÿๅ›พ๏ผˆEDIT_IMAGE ๆตๆฐด็บฟ๏ผŒ้ป˜่ฎคๆจกๅž‹ sensenova-u1.5-lite๏ผ‰ใ€‚

ๅ‚ๆ•ฐ๏ผš prompt: ็ผ–่พ‘ๆŒ‡ไปค๏ผŒๆ่ฟฐๆœŸๆœ›ๆœ€็ปˆ็”ป้ข๏ผŒๅฟ…ๅกซ image_path: ๅ‚่€ƒๅ›พ่ทฏๅพ„๏ผˆๆœฌๅœฐ๏ผŒPNG/JPG/WEBP/GIF๏ผ‰๏ผŒๅฟ…ๅกซ size: ๅฐบๅฏธ๏ผˆ้ป˜่ฎค 2752x1536๏ผ‰ provider: ๅŽ็ซฏ๏ผˆsensenova/openai_compat๏ผŒ้ป˜่ฎค่ฏป EDIT_IMAGE_ADAPTERโ†’sensenova๏ผ‰ instance: ๅ‘ฝๅๅฎžไพ‹ๅ๏ผˆ้ป˜่ฎค None ่ตฐไธปๅฎžไพ‹๏ผŒ่ง 3.7๏ผ‰

่ฏดๆ˜Ž๏ผšPython ่ฏญๆณ•่ฆๆฑ‚ๅฟ…ๅกซๅ‚ๆ•ฐ๏ผˆimage_path๏ผ‰็ฝฎไบŽๅธฆ้ป˜่ฎคๅ€ผๅ‚ๆ•ฐ๏ผˆsize๏ผ‰ไน‹ๅ‰๏ผŒ ๅทฅๅ…ทๅฅ‘็บฆๅณๆœฌ็ญพๅ๏ผšp-pic(prompt, image_path, size, provider=None, instance=None)ใ€‚

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo2752x1536
promptYes
instanceNo
providerNo
image_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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, and it delivers: it discloses the pipeline name, default model, default size, provider resolution order (EDIT_IMAGE_ADAPTER env โ†’ sensenova), and instance fallback behavior (None โ†’ main instance). This gives an agent a realistic picture of how invocation will behave. The only omission is output behavior, but an output schema is present, lowering that burden.

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

Conciseness4/5

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

The structure is efficient: a one-line purpose, a scannable parameter list, and a final note about the callable signature. The Python-syntax note about required-before-default parameters is unusual but earns its place by clarifying the exact tool contract. Nothing is redundant, though the signature line partially repeats schema information.

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 5-parameter tool with zero schema descriptions and no annotations, the description covers all parameters, defaults, and behavioral nuances, including the provider fallback and instance resolution. The reference to '่ง 3.7' for instance details is a minor external dependency, and the output schema covers return values. Slightly more context on when to set provider explicitly would round it out.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate, and it does. Every parameter gets a meaningful definition: prompt is the edit instruction, image_path specifies local path and accepted formats (PNG/JPG/WEBP/GIF), size has a default, provider enumerates the two backends, and instance explains the named-instance concept. This exceeds what a bare schema would convey.

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 opening line 'ๅ›พ็”Ÿๅ›พ๏ผˆEDIT_IMAGE ๆตๆฐด็บฟ๏ผŒ้ป˜่ฎคๆจกๅž‹ sensenova-u1.5-lite๏ผ‰' identifies the tool as an image-to-image operation on the EDIT_IMAGE pipeline with a named default model. This is clear enough to distinguish it from siblings like r-pic (likely generate-from-reference) or g-pic (likely text-to-image), though it lacks an explicit action verb like 'edits' or 'generates'.

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

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over its siblings. The parameter list implies you need a prompt and a local reference image, but there is no statement of when image-to-image editing is appropriate versus alternatives like r-pic or i-pic. An agent must infer selection criteria entirely from the tool name and parameter shapes.

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

r-picA

่ฏ†ๅˆซๆœฌๅœฐๅ›พ็‰‡๏ผˆPNG/JPG/WEBP/GIF๏ผ‰๏ผŒๅ‘้€็ป™่ง†่ง‰ๆจกๅž‹๏ผŒ่ฟ”ๅ›žๆ–‡ๆœฌๆ่ฟฐๆˆ–้—ฎ็ญ”็ป“ๆžœใ€‚

ๅ‚ๆ•ฐ๏ผš image_path: ๆœฌๅœฐๅ›พ็‰‡่ทฏๅพ„๏ผŒๅฟ…ๅกซ question: ๅฏนๅ›พ็‰‡็š„ๆ้—ฎ/ๆŒ‡ไปค๏ผˆ้ป˜่ฎค"่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๅผ ๅ›พ็‰‡็š„ๅ†…ๅฎนใ€‚"๏ผ‰ provider: ่ง†่ง‰ๅŽ็ซฏ๏ผˆopenai/dots๏ผŒ้ป˜่ฎค่ฏป VISION_PROVIDERโ†’dots๏ผ‰ model: ่ง†่ง‰ๆจกๅž‹๏ผˆ้ป˜่ฎค่ฏป VISION_MODELโ†’dots3-note-prev๏ผ‰ max_tokens: ่ฟ”ๅ›žๆ–‡ๆœฌไธŠ้™๏ผˆ้ป˜่ฎค 1024๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
providerNo
questionNo่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๅผ ๅ›พ็‰‡็š„ๅ†…ๅฎนใ€‚
image_pathYes
max_tokensNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 disclosure burden and handles it well: it reveals that the image is sent to an external vision model (with cost/privacy implications), lists accepted formats, and documents default behavior including environment-var fallbacks (VISION_PROVIDERโ†’dots, VISION_MODELโ†’dots3-note-prev). It stops short of disclosing error handling for missing/invalid paths or file-size limits.

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 one-line functional summary is front-loaded, followed by a scannable line-per-parameter list with no filler. Every line earns its place given the schema's 0% description coverage.

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?

All invocation-critical information is present: path requirement, question semantics, provider/model selection with env fallbacks, and the max_tokens cap. The output is described as text and an output schema exists, so return-value detail is unnecessary; the main gap is edge-case behavior such as handling of nonexistent paths or unsupported formats.

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

Parameters5/5

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

Schema description coverage is 0%, and the description fully compensates: all 5 parameters are documented with meaning, requiredness, valid values (provider: openai/dots; model: dots3-note-prev), and defaults. Notably it explains that null schema defaults resolve via environment variables, a behavior the schema itself cannot express.

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 (่ฏ†ๅˆซๆœฌๅœฐๅ›พ็‰‡ โ€” recognize local images), lists supported formats (PNG/JPG/WEBP/GIF), and names the outcome (text description or Q&A result). It is clear and self-contained, but it never explicitly contrasts with sibling tools like r-vid, g-pic, or b-gen, so an agent must infer the distinction from the 'ๆœฌๅœฐ' (local) qualifier and the r- recognition prefix.

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 context is implied by the scoping: this is for local image files of specific formats, producing text output, so an agent can infer it fits tasks like 'describe this image file.' However, the description offers no explicit when-to-use/when-not-to-use framing and never mentions alternatives, which is a real gap given five sibling tools of ambiguous function.

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

r-vidA

่งฃๆž่ง†้ข‘็›ด้“พ๏ผˆhttp/https๏ผŒ่ง†่ง‰ๆจกๅž‹ๆœๅŠก็ซฏๅฏ็›ดๆŽฅ่ฎฟ้—ฎ๏ผ‰๏ผŒ่ฟ”ๅ›žๆ–‡ๆœฌๆ่ฟฐๆˆ–้—ฎ็ญ”็ป“ๆžœใ€‚

ๅ‚ๆ•ฐ๏ผš video_url: ่ง†้ข‘็›ด้“พ๏ผŒๅฟ…ๅกซ question: ๅฏน่ง†้ข‘็š„ๆ้—ฎ/ๆŒ‡ไปค๏ผˆ้ป˜่ฎค"่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๆฎต่ง†้ข‘็š„ๅ†…ๅฎนใ€‚"๏ผ‰ provider: ่ง†่ง‰ๅŽ็ซฏ๏ผŒ็ฉบๅˆ™่ฏป VISION_VIDEO_PROVIDERโ†’ๅ›ž้€€ VISION_PROVIDER model: ่ง†่ง‰ๆจกๅž‹๏ผŒ็ฉบๅˆ™่ฏป VISION_VIDEO_MODELโ†’ๅ›ž้€€ VISION_MODEL๏ผˆ้ป˜่ฎค dots3-note-prev๏ผ‰ max_tokens: ่ฟ”ๅ›žๆ–‡ๆœฌไธŠ้™๏ผˆ้ป˜่ฎค 8192๏ผ›่ง†้ข‘่งฃๆžๅปบ่ฎฎ โ‰ฅ8192๏ผŒ้ฟๅ…่พ“ๅ‡บๆˆชๆ–ญ๏ผ‰

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNo
providerNo
questionNo่ฏท่ฏฆ็ป†ๆ่ฟฐ่ฟ™ๆฎต่ง†้ข‘็š„ๅ†…ๅฎนใ€‚
video_urlYes
max_tokensNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses server-side access requirements, provider/model fallback logic, and advises max_tokens to avoid truncationโ€”information well beyond the schema. It does not enumerate failure modes, but the key behavioral traits are covered.

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 front-loaded with a clear one-line purpose, followed by a terse, scannable parameter list. Each line adds distinct information with no repetition or 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?

The description adequately covers purpose, all parameter semantics, defaults, and the output format, which is enough for a straightforward vision-model tool. It lacks explicit alternative routing and edge-case behavior, but these are not critical for a correct invocation.

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

Parameters5/5

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

Schema description coverage is 0%, so the parameter explanations in the description are essential. It provides meaningful context for all five parameters: required direct link, default question, provider/model fallback chain, and max_tokens recommendation. This fully compensates for the empty schema property descriptions.

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 ('่งฃๆž') and resource ('่ง†้ข‘็›ด้“พ'), and specifies the output type ('่ฟ”ๅ›žๆ–‡ๆœฌๆ่ฟฐๆˆ–้—ฎ็ญ”็ป“ๆžœ'). The video focus clearly distinguishes it from sibling image tools like r-pic, even without an explicit comparison.

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 explains how the tool works and covers parameter behavior, but it does not explicitly state when to use r-vid versus alternatives. The video-specific wording implies the usage context, yet no exclusions or alternative routing 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.

  1. 6 tool updatesv6.1.0
    • First observedb-gen
    • First observedg-pic
    • First observedi-pic
    • First observedp-pic
    • First observedr-pic
    • First observedr-vid

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct operation: image recognition (r-pic), video recognition (r-vid), general generation (g-pic), infographic generation (i-pic), image editing (p-pic), and batch execution (b-gen). Even g-pic and i-pic are clearly differentiated by their pipeline purpose and default models. There is no genuine overlap that would mislead an agent.

Naming Consistency4/5

All tools follow a consistent lowercase-with-hyphen abbreviation pattern (r-pic, r-vid, g-pic, i-pic, p-pic, b-gen), which makes the set feel uniform. However, the prefixes are cryptic and 'b-gen' breaks the '-pic/-vid' media suffix pattern slightly, so while predictable, the names are not immediately intuitive.

Tool Count5/5

Six tools is a well-scoped size for a multimodal vision server, covering recognition, generation, editing, and batch orchestration without unnecessary bloat. Each tool has a clear role, and the count feels appropriate for the stated domain.

Completeness5/5

The tool surface covers the core lifecycle of the vision domain: reading images and videos, generating images (general and infographic), editing images, and batching any of these tasks. There are no obvious missing operations that would block typical workflows for a vision and generation toolkit.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers