Skip to main content
Glama

deepghs-mcp

Python License: MIT MCP

A Python MCP server for the DeepGHS anime AI ecosystem. Connect it to any MCP-compatible client (Claude Desktop, Cursor, etc.) to browse datasets, discover pre-built character training sets, look up tags across 18 platforms, and generate complete data pipeline scripts — all directly from your AI assistant.


✨ Features

📦 Dataset & Model Discovery

  • Browse all DeepGHS datasets — Danbooru2024 (8M+ images), Sankaku, Gelbooru, Zerochan, BangumiBase, and more

  • Full file trees — see exactly which tar/parquet files a dataset contains and how large they are before downloading anything

  • Model catalog — find the right model for your task: CCIP, WD Tagger Enhanced, aesthetic scorer, face/head detector, anime classifier, and more

  • Live demos — browse DeepGHS Spaces (interactive web apps) for testing models without code

🏷️ Cross-Platform Tag Intelligence

  • site_tags lookup — 2.5M+ tags unified across 18 platforms in one query

  • Tag format translation — Danbooru uses hatsune_miku, Zerochan uses Hatsune Miku, Pixiv uses 初音ミク — this tool maps them all together

  • Ready-to-use Parquet queries — get copy-paste code to filter the tag database programmatically

🎯 Character Dataset Finder

  • Pre-built LoRA datasets — search both deepghs and CyberHarem namespaces for existing character image collections

  • Ready-to-run download commands — get the exact cheesechaser command to pull what you need

  • Smart fallback — if no pre-built dataset exists, the tool hands off directly to the waifuc script generator

🤖 Training Pipeline Code Generation

  • waifuc scripts — generate complete, annotated Python data collection pipelines for any character from any source (Danbooru, Pixiv, Gelbooru, Zerochan, Sankaku, or Auto)

  • cheesechaser scripts — generate targeted download scripts to pull specific post IDs from indexed multi-TB datasets without downloading the whole archive

  • Format-aware — crop sizes, bucket ranges, and export formats automatically adjusted for SD 1.5, SDXL, or Flux


Related MCP server: Higgsfield AI MCP Server

📦 Installation

Prerequisites

  • Python 3.10+

  • git

Quick Start

  1. Clone the repository:

git clone https://github.com/citronlegacy/deepghs-mcp.git
cd deepghs-mcp
  1. Run the installer:

chmod +x install.sh && ./install.sh
# or without chmod:
bash install.sh
  1. Or install manually:

pip install -r requirements.txt

🔑 Authentication

HF_TOKEN is optional for public datasets but strongly recommended — it raises HuggingFace's API rate limit and is required for any gated or private repositories.

Get your token at huggingface.co/settings/tokens (read access is sufficient).

Without it, the server still works for all public DeepGHS datasets.


▶️ Running the Server

python deepghs_mcp.py
# or via the venv created by install.sh:
.venv/bin/python deepghs_mcp.py

⚙️ Configuration

Claude Desktop

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "deepghs": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": ["/absolute/path/to/deepghs_mcp.py"],
      "env": {
        "HF_TOKEN": "hf_your_token_here"
      }
    }
  }
}

Other MCP Clients

  • Command: /absolute/path/to/.venv/bin/python

  • Args: /absolute/path/to/deepghs_mcp.py

  • Transport: stdio


💡 Usage Examples

Browse available datasets

"What anime datasets does DeepGHS have on HuggingFace?"

The assistant calls deepghs_list_datasets and returns all datasets sorted by download count — Danbooru2024, Sankaku, Gelbooru WebP, BangumiBase, site_tags, and more — with links and update dates.


Check dataset contents before downloading

"What files are in deepghs/danbooru2024? How big is it?"

The assistant calls deepghs_get_repo_info and returns the full file tree — every .tar and .parquet file with individual and total sizes — so you know exactly what you're committing to before you download.


Find a pre-built character dataset

"Is there already a dataset for Rem from Re:Zero I can use for LoRA training?"

The assistant calls deepghs_find_character_dataset, searches both deepghs and CyberHarem namespaces, and returns any matches with download counts and a one-liner download command.

Example response:

## Character Dataset Search: Rem

Found 2 dataset(s):

### CyberHarem/rem_rezero
Downloads: 4.2K | Likes: 31 | Updated: 2024-08-12

Download with cheesechaser:
  from cheesechaser.datapool import SimpleDataPool
  pool = SimpleDataPool('CyberHarem/rem_rezero')
  pool.batch_download_to_directory('./dataset', max_workers=4)

Look up a tag across all platforms

"What is the correct tag for 'Hatsune Miku' on Danbooru, Zerochan, and Pixiv?"

The assistant calls deepghs_search_tags and returns the format for every platform, plus a pre-filtered link to the site_tags dataset viewer and Parquet query code.

Example response:

Tag Lookup: Hatsune Miku

  Danbooru:  hatsune_miku
  Gelbooru:  hatsune_miku
  Sankaku:   character:hatsune_miku
  Zerochan:  Hatsune Miku
  Pixiv:     初音ミク (Japanese preferred)
  Yande.re:  hatsune_miku
  Wallhaven: hatsune miku

This directly solves the MultiBoru tag normalization problem.


Generate a full data collection pipeline

"Generate a waifuc script to build a LoRA dataset for Surtr from Arknights, from Danbooru and Pixiv, for SDXL, safe-only."

The assistant calls deepghs_generate_waifuc_script and returns a complete annotated Python script. Here is what that script does when run:

1.  Crawls Danbooru (surtr_(arknights)) + Pixiv (スルト アークナイツ)
2.  Converts all images to RGB with white background
3.  Drops monochrome, sketch, manga panels, and 3D renders
4.  Filters to safe rating only
5.  Deduplicates near-identical images (差分 / variants)
6.  Drops images with no detected face
7.  Splits group images — each character becomes its own crop
8.  CCIP identity filter — AI verifies every image actually shows Surtr
9.  WD14 auto-tagging — writes .txt caption files automatically
10. Resizes and pads to 1024×1024 (SDXL standard)
11. Exports in kohya_ss-compatible folder structure

No manual curation. No manual tagging. Drop the output folder straight into your trainer.


Generate a targeted download script

"Give me a cheesechaser script to download post IDs 1234, 5678, 9012 from deepghs/danbooru2024."

The assistant calls deepghs_generate_cheesechaser_script and returns a complete Python script — with options for downloading by post ID list, downloading everything, or filtering from the Parquet index by tag.


Find the right model for a task

"Does DeepGHS have a model for scoring image aesthetics?"

The assistant calls deepghs_list_models with search: "aesthetic" and returns matching models with pipeline task, download counts, and direct HuggingFace links.


Try a model in the browser

"Is there a live demo for the DeepGHS face detection model?"

The assistant calls deepghs_list_spaces with search: "detection" and returns matching Spaces with direct links to the interactive demos.


🛠️ Available Tools

Tool

Description

Key Parameters

deepghs_list_datasets

Browse all DeepGHS datasets with search, sort, and pagination

search, sort, limit, offset

deepghs_list_models

Browse all DeepGHS models

search, sort, limit

deepghs_list_spaces

Browse all DeepGHS live demo Spaces

search, limit

deepghs_get_repo_info

Full file tree + metadata for any dataset/model/space

repo_id, repo_type

deepghs_search_tags

Cross-platform tag lookup across 18 platforms via site_tags

tag

deepghs_find_character_dataset

Find pre-built LoRA training datasets for a character

character_name

deepghs_generate_waifuc_script

Generate complete data collection + cleaning pipeline script

character_name, sources, model_format, content_rating

deepghs_generate_cheesechaser_script

Generate targeted dataset download script

repo_id, post_ids, output_dir


📖 Tools Reference

deepghs_list_datasets

Lists all public datasets from DeepGHS, sortable and filterable by keyword.

Parameters

Parameter

Type

Required

Default

Description

search

string

Keyword filter, e.g. danbooru, character, face

sort

string

downloads

downloads, likes, createdAt, lastModified

limit

integer

20

Results per page (max 100)

offset

integer

0

Pagination offset

response_format

string

markdown

markdown or json


deepghs_list_models

Lists all public models — CCIP, WD Tagger Enhanced, aesthetic scorer, face/head/person detectors, anime classifier, furry detector, NSFW censor, style era classifier, and more.

Parameters

Parameter

Type

Required

Default

Description

search

string

Keyword filter, e.g. ccip, tagger, aesthetic, face

sort

string

downloads

downloads, likes, createdAt, lastModified

limit

integer

20

Results per page (max 100)

offset

integer

0

Pagination offset

response_format

string

markdown

markdown or json


deepghs_list_spaces

Lists all public Spaces — live demos for face detection, head detection, CCIP character similarity, WD tagger, aesthetic scorer, reverse image search, Danbooru character lookup, and more.

Parameters

Parameter

Type

Required

Default

Description

search

string

Keyword filter, e.g. detection, tagger, search

limit

integer

20

Results per page (max 100)

response_format

string

markdown

markdown or json


deepghs_get_repo_info

Get full metadata for any dataset, model, or space — including the complete file tree with individual file sizes. Essential before downloading a multi-TB dataset.

Parameters

Parameter

Type

Required

Default

Description

repo_id

string

Full HF repo ID, e.g. deepghs/danbooru2024

repo_type

string

dataset

dataset, model, or space

response_format

string

markdown

markdown or json

Tip: Datasets containing .tar files automatically get a ready-to-copy cheesechaser snippet appended.


deepghs_search_tags

Look up any tag across 18 platforms using the deepghs/site_tags dataset. Returns per-platform format guidance, a pre-filtered dataset viewer link, and Parquet query code.

Parameters

Parameter

Type

Required

Default

Description

tag

string

Tag in any format or language, e.g. hatsune_miku, Hatsune Miku, 初音ミク

response_format

string

markdown

markdown or json

LLM Tip: Call this before deepghs_generate_waifuc_script to confirm the correct Danbooru/Pixiv tag format for a character.


deepghs_find_character_dataset

Searches deepghs and CyberHarem on HuggingFace for pre-built character datasets. CyberHarem datasets are built with the full automated pipeline: crawl → CCIP filter → WD14 tag → upload.

Parameters

Parameter

Type

Required

Default

Description

character_name

string

Character name, e.g. Rem, Hatsune Miku, surtr arknights

response_format

string

markdown

markdown or json


deepghs_generate_waifuc_script

Generates a complete, annotated Python pipeline script using waifuc.

Pipeline actions included (in order):

Action

What it does

Why it matters for LoRA

ModeConvertAction

Convert to RGB, white background

Standardizes input format

NoMonochromeAction

Drop greyscale/sketch images

Prevents style contamination

ClassFilterAction

Keep illustration/anime only

Drops manga panels and 3D

RatingFilterAction

Filter by content rating

Keep dataset SFW if needed

FilterSimilarAction

Deduplicate similar images

Prevents overfitting to variants

FaceCountAction

Require exactly 1 face

Removes group shots and objects

PersonSplitAction

Crop each character from group images

Maximizes usable data

CCIPAction

AI identity verification

Removes wrong characters (the most important step)

TaggingAction

WD14 auto-tagging

Generates .txt captions automatically

AlignMinSizeAction

Resize to minimum resolution

Ensures quality floor

PaddingAlignAction

Pad to square

Standard training resolution

Parameters

Parameter

Type

Required

Default

Description

character_name

string

Display name, e.g. Rem, Surtr

danbooru_tag

string

auto-guessed

Danbooru tag, e.g. rem_(re:zero)

pixiv_query

string

Pixiv search query, Japanese preferred. Required if pixiv in sources

sources

list

["danbooru"]

danbooru, pixiv, gelbooru, zerochan, sankaku, auto

model_format

string

sd1.5

sd1.5 (512px), sdxl (1024px), or flux (1024px)

content_rating

string

safe

safe, safe_r15, or all

output_dir

string

./dataset_output

Output directory

max_images

integer

no limit

Cap total images collected

pixiv_token

string

Pixiv refresh token (required for Pixiv source)

Source tag formats:

Source

Tag Format

Notes

danbooru

rem_(re:zero)

snake_case with series in parens

gelbooru

rem_(re:zero)

same as Danbooru

pixiv

レム / rem re:zero

Japanese preferred for better results

zerochan

Rem

Title Case, strict mode enabled

sankaku

rem_(re:zero)

snake_case

auto

character name

uses gchar database — best for game characters


deepghs_generate_cheesechaser_script

Generates a Python download script using cheesechaser to pull specific images from indexed tar datasets without downloading entire archives.

Parameters

Parameter

Type

Required

Default

Description

repo_id

string

HF dataset, e.g. deepghs/danbooru2024

output_dir

string

./downloads

Local download directory

post_ids

list[int]

Specific post IDs. If omitted, downloads all (can be very large)

max_workers

integer

4

Parallel download threads (1–16)


🗂️ Key DeepGHS Datasets

Repo ID

Description

Use Case

deepghs/danbooru2024

Full Danbooru archive, 8M+ images

Bulk downloads, data mining

deepghs/danbooru2024-webp-4Mpixel

Compressed WebP version

Faster downloads

deepghs/sankaku_full

Full Sankaku Channel dataset

Alternative tag ecosystem

deepghs/gelbooru-webp-4Mpixel

Gelbooru compressed

Western fanart coverage

deepghs/site_tags

2.5M+ tags, 18 platforms

Tag normalization

deepghs/anime_face_detection

YOLO face detection labels

Train detection models

deepghs/bangumibase

Character frames from anime

Character dataset bootstrapping


Workflow A: Use a pre-built dataset

1. deepghs_find_character_dataset   → check if dataset exists
2. deepghs_get_repo_info            → inspect file sizes
3. deepghs_generate_cheesechaser_script → get download command
4. Run the script → train

Workflow B: Build a new dataset from scratch

1. deepghs_search_tags              → find the correct Danbooru tag
2. deepghs_generate_waifuc_script   → generate full pipeline script
3. Run the script                   → crawl, filter, tag, crop
4. Review output                    → remove any remaining noise
5. Train with kohya_ss

Workflow C: Mine specific images from a large dataset

1. deepghs_get_repo_info            → inspect dataset Parquet structure
2. deepghs_search_tags              → confirm tag names
3. deepghs_generate_cheesechaser_script → generate Parquet-filter script
4. Run the script                   → downloads only matching images

🤖 Notes for LLMs

  • Check pre-built first: Always call deepghs_find_character_dataset before generating a waifuc script. CyberHarem has hundreds of ready-to-use LoRA datasets.

  • Danbooru tag format: character_(series) with underscores — rem_(re:zero), not Rem (Re:Zero). Use deepghs_search_tags to confirm.

  • File sizes: Datasets like danbooru2024 are multi-TB. Always check deepghs_get_repo_info before recommending a full download. Use cheesechaser with post IDs for targeted access.

  • CCIP is essential: It's the most important pipeline step — without it, 20–40% of a character dataset will be wrong-character noise. Always include it in waifuc scripts.

  • Pixiv source: Requires a pixiv_token. If the user hasn't set one up, suggest Danbooru + Gelbooru instead.

  • Model format crop sizes: SD1.5 = 512×512, SDXL/Flux = 1024×1024. This controls AlignMinSizeAction and PaddingAlignAction in generated scripts.


⚠️ Known Limitations

  • HuggingFace rate limits: Without HF_TOKEN, the Hub API may throttle requests on heavy usage.

  • Gated datasets: Some datasets require explicit approval on HuggingFace before downloading. The server returns a clear error with guidance.

  • CyberHarem search: Niche characters may need manual browsing at huggingface.co/CyberHarem.

  • waifuc runtime: The generated scripts require waifuc installed separately (not in this server's deps). First run downloads ~500MB of CCIP + WD14 model weights.


🐛 Troubleshooting

Server won't start:

  • Ensure Python 3.10+: python --version

  • Re-run the installer: bash install.sh

Rate limit / 429 errors:

403 / Forbidden on a dataset:

  • The dataset is gated — visit the dataset page on HuggingFace and click "Request Access"

  • Ensure the HF_TOKEN is from an account that has been granted access

Character dataset not found:

  • Try alternate spellings: "Rem", "rem_(re:zero)", "rem re:zero"

  • Browse manually: huggingface.co/CyberHarem

  • Generate from scratch with deepghs_generate_waifuc_script

waifuc script fails:

  • Install waifuc: pip install git+https://github.com/deepghs/waifuc.git

  • GPU support: pip install "waifuc[gpu]" (much faster CCIP + tagging)

  • First run downloads ~500MB of model weights — this is expected


🤝 Contributing

Pull requests are welcome! If a tool is returning incorrect data, a script template is outdated, or a new DeepGHS dataset or model should be highlighted, please open an issue or PR.

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Submit a pull request


📄 License

MIT License — see LICENSE for details.


  • gelbooru-mcp — Search Gelbooru, generate SD prompts from character tag data

  • zerochan-mcp — Browse Zerochan's high-quality anime image board

Available Tools

8 tools
deepghs_find_character_datasetA
Read-onlyIdempotent

Search for pre-built character image datasets for LoRA training on HuggingFace.

Searches both deepghs (BangumiBase) and CyberHarem namespaces for datasets built around a specific character. These are pre-crawled, pre-cleaned, and ready to use — saving you from having to run waifuc yourself.

CyberHarem datasets are built using the full DeepGHS automated pipeline: crawl → face filter → CCIP identity filter → WD tag → upload to HF.

Args: params (FindCharacterDatasetInput): - character_name (str): Character name to search for (e.g. 'Rem', 'Hatsune Miku') - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: List of matching character datasets with image counts, sources, download commands, and links. Also suggests waifuc script generation if no pre-built dataset is found.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and behavior. The description adds valuable context beyond annotations: it explains the data sources (deepghs and CyberHarem), the automation pipeline details for CyberHarem, and the fallback behavior (suggests waifuc script generation). It doesn't contradict annotations, but could mention rate limits or authentication needs.

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 well-structured and front-loaded with the core purpose in the first sentence. Each subsequent sentence adds specific value: data sources, automation details, parameter explanations, and return behavior. There is no wasted text, and the bullet-point format for Args and Returns enhances readability without verbosity.

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

Completeness5/5

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

Given the tool's complexity (search across namespaces with fallback), rich annotations (covering safety and behavior), and the presence of an output schema, the description is complete. It explains what the tool does, when to use it, parameter meanings, and return behavior, including the fallback suggestion. No gaps remain for agent understanding.

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 description coverage is 0%, so the description must compensate. It provides clear semantics for both parameters: 'character_name (str): Character name to search for (e.g. 'Rem', 'Hatsune Miku')' and 'response_format (ResponseFormat): 'markdown' or 'json''. It also explains the purpose of character_name ('to search for') and the effect of response_format on output format. However, it doesn't detail constraints like maxLength for character_name.

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 tool's purpose: 'Search for pre-built character image datasets for LoRA training on HuggingFace.' It specifies the verb ('search'), resource ('pre-built character image datasets'), and context ('for LoRA training on HuggingFace'). It also distinguishes from siblings by mentioning specific namespaces (deepghs and CyberHarem) and contrasts with waifuc script generation tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Searches both deepghs (BangumiBase) and CyberHarem namespaces for datasets built around a specific character.' It explains when to use it ('saving you from having to run waifuc yourself') and mentions an alternative action ('suggests waifuc script generation if no pre-built dataset is found'), clearly differentiating from sibling tools like deepghs_generate_waifuc_script.

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

deepghs_generate_cheesechaser_scriptA
Read-onlyIdempotent

Generate a cheesechaser Python script to download images from an indexed DeepGHS dataset.

cheesechaser is DeepGHS's tool for selectively downloading images from HuggingFace datasets that are stored as indexed tar archives. Instead of downloading entire multi-GB tar files, you provide a list of post IDs and it extracts only those images.

This is the most efficient way to get specific images from datasets like:

  • deepghs/danbooru2024 (~8M images, hundreds of GB total)

  • deepghs/gelbooru-webp-4Mpixel (~millions of images)

  • deepghs/sankaku_full (~millions of images)

Args: params (GenerateCheesechaserScriptInput): - repo_id (str): HF dataset repo ID (e.g. 'deepghs/danbooru2024') - output_dir (str): Local directory to save downloaded images - post_ids (Optional[list[int]]): Specific post IDs to download - max_workers (int): Parallel download threads (1–16, default: 4)

Returns: str: Complete cheesechaser Python script with inline comments, plus guidance on how to find post IDs from Danbooru/Gelbooru search results.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds useful context beyond annotations: it explains that cheesechaser avoids downloading multi-GB tar files, extracts only specified images, and provides efficiency benefits for large datasets. It doesn't contradict annotations, as generating a script is a read-only, non-destructive action.

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 well-structured and front-loaded: it starts with the core purpose, explains cheesechaser, provides usage context with examples, lists parameters clearly, and describes the return value. Every sentence adds value without redundancy, making it efficient and easy to scan.

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

Completeness5/5

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

Given the tool's complexity (generating a download script for large datasets), the description is complete. It covers purpose, usage, parameters, and return value (a script with guidance). With annotations providing safety info and an output schema present (implied by 'Returns' section), no critical gaps remain. It effectively guides an agent in selecting and using this tool.

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 0%, but the description includes an 'Args' section that details all parameters (repo_id, output_dir, post_ids, max_workers) with examples and constraints (e.g., '1–16, default: 4'). This compensates for the lack of schema descriptions. However, it doesn't add significant meaning beyond what's implied by parameter names and basic info, so it meets the baseline for adequate coverage.

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 tool's purpose: 'Generate a cheesechaser Python script to download images from an indexed DeepGHS dataset.' It specifies the verb ('Generate'), resource ('cheesechaser Python script'), and distinguishes from siblings by focusing on script generation rather than dataset listing, searching, or other operations. The description also explains what cheesechaser does, adding valuable context.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'This is the most efficient way to get specific images from datasets like...' It lists example datasets (e.g., deepghs/danbooru2024) and contrasts with downloading entire tar files. It also mentions alternatives implicitly by describing cheesechaser's selective download capability versus bulk downloads, though it doesn't name specific sibling tools as alternatives.

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

deepghs_generate_waifuc_scriptA
Read-onlyIdempotent

Generate a ready-to-run waifuc Python script to crawl and clean anime character images for LoRA training.

waifuc is DeepGHS's data pipeline framework. This tool generates a complete, properly-configured script that:

  1. Crawls images from the specified sources (Danbooru, Pixiv, Gelbooru, etc.)

  2. Converts to RGB and standardizes backgrounds

  3. Filters monochrome/sketch/3D images (NoMonochromeAction, ClassFilterAction)

  4. Filters duplicate/similar images (FilterSimilarAction)

  5. Detects and splits to single-person crops (FaceCountAction, PersonSplitAction)

  6. Filters out wrong characters using CCIP AI identity matching (CCIPAction)

  7. Tags all images with WD14 tagger (TaggingAction)

  8. Crops to target resolution for the specified model format (SD1.5/SDXL/Flux)

  9. Exports in the correct format for the target trainer

Crop sizes by model format:

  • SD1.5: 512×512 base, bucket range 256–768

  • SDXL: 1024×1024 base, bucket range 512–2048

  • Flux: 1024×1024 base, bucket range 512–2048

Args: params (GenerateWaifucScriptInput): - character_name (str): Character display name (used in comments/output path) - danbooru_tag (Optional[str]): Danbooru tag e.g. 'rem_(re:zero)' - pixiv_query (Optional[str]): Pixiv search string e.g. 'レム リゼロ' - sources (list[ImageSource]): ['danbooru', 'pixiv', 'gelbooru', 'zerochan', 'sankaku', 'auto'] - model_format (ModelFormat): 'sd1.5', 'sdxl', or 'flux' - content_rating (ContentRating): 'safe', 'safe_r15', or 'all' - output_dir (str): Output directory path - max_images (Optional[int]): Max images to collect - pixiv_token (Optional[str]): Pixiv refresh token (required for Pixiv source)

Returns: str: Complete, ready-to-run Python script with inline comments explaining each pipeline action and its purpose for LoRA training quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. The description adds valuable behavioral context beyond annotations by detailing the 9-step pipeline (crawling, filtering, cropping, etc.), crop size specifications by model format, and the script's purpose for LoRA training quality. This significantly enhances understanding without contradicting annotations.

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 well-structured and front-loaded with the core purpose, followed by detailed pipeline steps, crop size specifications, and parameter documentation. Every sentence adds value - no redundant information. It efficiently communicates complex functionality in a digestible format.

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

Completeness5/5

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

Given the tool's complexity (9-step pipeline, multiple parameters, model format variations) and the existence of an output schema (returns a string script), the description provides comprehensive context. It explains the full pipeline, parameter meanings, crop specifications, and output format, making it complete enough for an agent to understand and use the tool effectively.

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?

With 0% schema description coverage, the description carries the full burden of parameter documentation. It provides detailed parameter semantics in the 'Args' section, explaining each parameter's purpose, format examples, and requirements (e.g., 'character_name' for display, 'pixiv_token' required for Pixiv source). This fully compensates for the schema's lack of 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 clearly states the tool's purpose: 'Generate a ready-to-run waifuc Python script to crawl and clean anime character images for LoRA training.' It specifies the exact action (generate script), resource (waifuc Python script), and distinguishes from siblings by focusing on script generation rather than dataset finding, repo info, or other operations.

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 provides clear context for when to use this tool (for LoRA training data preparation) and implicitly distinguishes it from siblings like 'deepghs_find_character_dataset' (which finds existing datasets rather than generating collection scripts). However, it doesn't explicitly state when NOT to use this tool or name specific alternatives, keeping it at a 4.

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

deepghs_get_repo_infoA
Read-onlyIdempotent

Get detailed metadata for a specific DeepGHS dataset, model, or space by repo ID.

Returns the full file tree with sizes, all tags, README card metadata, download counts, creation/modification dates, and gating status. Use this before deciding to download — the file tree shows you exactly what tar/parquet files are inside and how large they are.

Args: params (GetRepoInfoInput): - repo_id (str): Full HF repo ID (e.g. 'deepghs/danbooru2024') - repo_type (str): 'dataset', 'model', or 'space' (default: 'dataset') - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Full repo metadata including file tree with sizes, tags, card data, and a generated cheesechaser download command if applicable.

Schema (JSON mode): { "id": str, "sha": str, "lastModified": str, "tags": list[str], "downloads": int, "likes": int, "cardData": dict, # README metadata "siblings": [ # File tree {"rfilename": str, "size": int, "blobId": str} ], "gated": bool | str }

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety and idempotency. The description adds valuable context beyond annotations: it explains the tool's purpose for pre-download evaluation and mentions the generated download command, which enhances behavioral understanding without contradicting annotations.

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 well-structured and front-loaded with the core purpose, followed by usage guidance and parameter/return details. Every sentence adds value without redundancy, and the inclusion of a schema example is concise and informative, making it efficient for an AI agent to parse.

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

Completeness5/5

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

Given the tool's complexity (metadata retrieval with file trees), the description is complete: it covers purpose, usage, parameters, and returns, with an output schema provided. Annotations handle safety and idempotency, and the description adds practical context like the download command, making it fully adequate for agent use.

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 description coverage is 0%, so the description must compensate. It provides meaningful context for parameters: repo_id is explained with an example, repo_type lists valid values, and response_format specifies options. However, it doesn't detail default values or constraints beyond what's implied, leaving some gaps compared to full schema documentation.

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 tool's purpose with specific verbs ('Get detailed metadata') and resources ('DeepGHS dataset, model, or space'), distinguishing it from sibling tools like list_datasets or search_tags which have different scopes. It explicitly mentions what information is returned, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('Use this before deciding to download') and distinguishes it from alternatives by highlighting its unique file tree feature. It also implies when not to use it (e.g., for listing or searching instead of getting detailed info), making usage context clear.

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

deepghs_list_datasetsA
Read-onlyIdempotent

List all public datasets from the DeepGHS organization on HuggingFace.

DeepGHS publishes datasets including Danbooru2024 (8M+ images), Sankaku, Gelbooru, Zerochan, BangumiBase (character frames), site_tags (cross-platform tag database), face/head detection datasets, and more.

Args: params (ListDatasetsInput): - search (Optional[str]): Keyword filter (e.g. 'danbooru', 'character', 'face') - sort (SortBy): Sort by 'downloads', 'likes', 'createdAt', 'lastModified' - limit (int): Results per page, 1–100 (default: 20) - offset (int): Pagination offset (default: 0) - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Paginated list of datasets with download counts, likes, update dates, tags, and direct HuggingFace links.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering the safety profile. The description adds useful context about pagination behavior and response formats, but doesn't disclose rate limits, authentication requirements, or other operational constraints beyond what annotations provide.

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 well-structured with a clear purpose statement, context about available datasets, and organized parameter documentation. It's appropriately sized for a tool with multiple parameters, though the dataset examples list could be slightly more concise. Every sentence adds value to understanding the tool.

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

Completeness5/5

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

Given the tool's complexity (5 parameters with 0% schema coverage) and the presence of output schema, the description provides complete context. It explains what the tool does, what parameters control, and what to expect in the return value. The output schema handles return value details, so the description appropriately focuses on usage context.

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?

With 0% schema description coverage, the description carries the full burden of parameter documentation. It provides clear explanations for all 5 parameters (search, sort, limit, offset, response_format) with examples and constraints, effectively compensating for the schema's lack of descriptions. The only minor gap is not explicitly stating that 'params' is a wrapper object.

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 ('List') and resource ('all public datasets from the DeepGHS organization on HuggingFace'), providing specific examples of datasets included. It distinguishes this tool from siblings like deepghs_list_models and deepghs_list_spaces by focusing specifically on datasets rather than other HuggingFace resources.

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 provides clear context about what types of datasets are available (Danbooru2024, Sankaku, etc.), helping users understand when this tool is appropriate. However, it doesn't explicitly state when to use alternatives like deepghs_find_character_dataset or deepghs_search_tags, nor does it provide exclusion criteria for when not to use this tool.

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

deepghs_list_modelsA
Read-onlyIdempotent

List all public models from the DeepGHS organization on HuggingFace.

DeepGHS models include: CCIP (character similarity encoder), WD Tagger Enhanced (anime image tagger with embeddings), aesthetic scorer, anime/real classifier, image type classifier, furry detector, face/head/person detection models, NSFW censor, and style era classifier.

Args: params (ListModelsInput): - search (Optional[str]): Keyword filter (e.g. 'ccip', 'tagger', 'aesthetic', 'face') - sort (SortBy): Sort by 'downloads', 'likes', 'createdAt', 'lastModified' - limit (int): Results per page, 1–100 (default: 20) - offset (int): Pagination offset (default: 0) - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Paginated list of models with task type, download counts, likes, and links.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true, covering safety and idempotency. The description adds valuable context beyond annotations by specifying the source (HuggingFace), the organization (DeepGHS), and the return format details (paginated list with task type, download counts, likes, and links), enhancing behavioral understanding without contradictions.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured clearly, though the list of model types adds some bulk; overall, it remains efficient with minimal waste.

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

Completeness5/5

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

Given the tool's moderate complexity, rich annotations, and an output schema (implied by Returns section), the description is complete. It covers purpose, parameters, return values, and context, leaving no significant gaps for agent understanding.

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 description coverage is 0%, so the description carries full burden. It effectively adds meaning by explaining each parameter in the Args section with examples and defaults (e.g., search keyword filters, sort options, limit range, pagination offset, response format choices), compensating well for the lack of schema 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 clearly states the verb 'List' and resource 'all public models from the DeepGHS organization on HuggingFace,' making the purpose specific. It distinguishes from siblings by focusing on models rather than datasets, spaces, tags, or other resources, and provides examples of included model types like CCIP and WD Tagger Enhanced.

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 implies usage for listing models with filtering and pagination, but does not explicitly state when to use this tool versus alternatives like deepghs_list_datasets or deepghs_list_spaces. It provides context by listing model types, which helps identify relevant use cases, but lacks explicit exclusions or named alternatives.

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

deepghs_list_spacesA
Read-onlyIdempotent

List all public Spaces (live demo apps) from the DeepGHS organization on HuggingFace.

DeepGHS spaces include: reverse image search, Danbooru character lookup, anime face/head/person detection demos, CCIP character similarity demo, WD tagger demo, aesthetic scorer demo, and more.

Args: params (ListSpacesInput): - search (Optional[str]): Keyword filter (e.g. 'detection', 'tagger', 'search') - limit (int): Results per page, 1–100 (default: 20) - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: List of Spaces with SDK type, likes, update dates, and direct links.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds valuable context beyond this by specifying that these are 'public Spaces (live demo apps)' and listing concrete examples of what they include. It also mentions the return format details (SDK type, likes, update dates, direct links), which isn't covered by annotations.

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 well-structured with a clear purpose statement, examples, and parameter/return sections. It's appropriately sized for the tool's complexity. The only minor improvement would be to integrate the examples more seamlessly rather than as a separate bulleted list.

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

Completeness5/5

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

Given the tool's moderate complexity, rich annotations, and the presence of an output schema, the description is complete. It covers purpose, examples, parameters, and return format. The output schema handles return value details, so the description doesn't need to duplicate that information.

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 description coverage is 0%, so the description carries full burden. It provides clear explanations for all three parameters (search, limit, response_format) with examples and constraints. The only minor gap is that it doesn't explicitly mention the default values that are documented in 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 states the specific action ('List all public Spaces') and resource ('from the DeepGHS organization on HuggingFace'), with examples of what these spaces include. It distinguishes this tool from siblings like 'deepghs_list_datasets' and 'deepghs_list_models' by focusing specifically on Spaces/live demo apps rather than datasets or models.

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 provides clear context about what types of Spaces are included (reverse image search, Danbooru character lookup, etc.), which helps the agent understand when this tool is appropriate. However, it doesn't explicitly state when to use alternatives like 'deepghs_list_datasets' or 'deepghs_list_models', nor does it provide exclusion criteria.

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

deepghs_search_tagsA
Read-onlyIdempotent

Search the DeepGHS site_tags dataset — the definitive cross-platform anime tag reference.

The deepghs/site_tags dataset covers 2.5M+ unique tags across 18 platforms: Danbooru, Gelbooru, Pixiv, Sankaku, Wallhaven, Yande.re, Konachan, Zerochan, Rule34, and more. Each tag has category, post count, and aliases per platform.

This is the key tool for the MultiBoru tag normalization problem:

  • Danbooru uses snake_case: hatsune_miku

  • Zerochan uses Title Case: Hatsune Miku

  • Pixiv uses Japanese: 初音ミク This tool maps them all together.

Args: params (SearchTagsInput): - tag (str): Tag in any format/language/platform - response_format (ResponseFormat): 'markdown' or 'json'

Returns: str: Cross-platform tag information including canonical names per platform, post counts, tag category (character/copyright/artist/general), and known aliases. Includes direct dataset link for full data access.

Note: This tool returns the HuggingFace dataset info and provides query guidance for the site_tags dataset. For programmatic tag lookup at scale, use the dataset's Parquet or SQLite files directly via the dataset viewer API.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, openWorldHint=true, and idempotentHint=true. The description adds valuable context about the dataset scope (2.5M+ tags across 18 platforms), the normalization problem it solves, and clarifies it returns HuggingFace dataset info with query guidance rather than direct database access.

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?

Well-structured with clear sections (overview, problem context, Args, Returns, Note). While somewhat detailed, every sentence adds value: dataset scope, normalization examples, parameter explanations, return format, and usage boundaries. Could be slightly more concise but remains efficient.

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

Completeness5/5

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

Given the tool's complexity (cross-platform tag mapping), rich annotations, and output schema, the description provides complete context. It explains the dataset scope, normalization problem, parameter usage, return format, and appropriate usage boundaries. The Note section adds important implementation guidance.

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?

With 0% schema description coverage, the description carries full burden. It effectively explains both parameters: 'tag' accepts any format/language/platform with examples, and 'response_format' specifies 'markdown' or 'json' with default behavior implied. The Args and Returns sections provide clear semantic meaning 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 clearly states the tool searches the DeepGHS site_tags dataset for cross-platform anime tag normalization, specifying it covers 2.5M+ tags across 18 platforms. It explicitly distinguishes this from sibling tools by focusing on tag mapping rather than character datasets, scripts, or repository listings.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('key tool for the MultiBoru tag normalization problem') and when to use alternatives ('For programmatic tag lookup at scale, use the dataset's Parquet or SQLite files directly'). It clearly positions this as the reference tool for cross-platform tag mapping.

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. 8 tool updatesv1.0.0
    • First observeddeepghs_find_character_dataset
    • First observeddeepghs_generate_cheesechaser_script
    • First observeddeepghs_generate_waifuc_script
    • First observeddeepghs_get_repo_info
    • First observeddeepghs_list_datasets
    • First observeddeepghs_list_models
    • First observeddeepghs_list_spaces
    • First observeddeepghs_search_tags

TDQS

A4.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a distinct, non-overlapping purpose within the DeepGHS ecosystem: dataset discovery (find_character_dataset, list_datasets), script generation for data processing (generate_waifuc_script, generate_cheesechaser_script), metadata retrieval (get_repo_info, list_models, list_spaces), and tag searching (search_tags). The descriptions clearly differentiate their functions, eliminating ambiguity.

Naming Consistency5/5

All tools follow a consistent 'deepghs_verb_noun' pattern (e.g., deepghs_find_character_dataset, deepghs_generate_waifuc_script). The verb-noun structure is uniform across all eight tools, with no deviations in style or convention, making the set highly predictable and readable.

Tool Count5/5

With 8 tools, the count is well-scoped for the server's purpose of managing anime image datasets and models. Each tool serves a specific role in the workflow—from discovery and metadata to script generation and tag searching—without redundancy or excessive fragmentation, fitting the typical 3-15 tool range for a focused domain.

Completeness4/5

The toolset covers core workflows comprehensively: dataset/model/space listing, detailed metadata retrieval, script generation for data crawling and downloading, and tag searching. A minor gap exists in direct dataset manipulation (e.g., upload or delete operations), but agents can work around this using generated scripts or external tools, and the surface supports the main use cases effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers