Skip to main content
Glama
echo-xianyu

Danbooru Search MCP

by echo-xianyu

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DANBOORU_LOGINNoYour Danbooru username for authentication (optional, raises rate limit)
DANBOORU_API_KEYNoYour Danbooru API key for authentication (optional, raises rate limit)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
danbooru_get_character_profileA

RECOMMENDED FIRST CHOICE for any character/tag lookup.

Returns everything in one call: visual traits (co-occurrence frequencies), wiki description, multilingual aliases, and tag implications in both directions (what this tag implies, and what tags imply this one — e.g. all costume variants).

Aggregates these data sources in parallel:

  1. Related tags (co-occurrence frequencies) -> visual traits.

  2. Wiki page -> textual description and multilingual aliases.

  3. Tag implications (antecedent) -> tags auto-added by this tag.

  4. Tag implications (consequent) -> tags that auto-add this tag (e.g. costume variants like hoshino_(swimsuit)_(blue_archive) imply hoshino_(blue_archive)).

Each source degrades gracefully: a missing wiki page or empty implications do not fail the whole request.

When auto_resolve is enabled (default) and the queried tag does not exist on Danbooru, the tool corrects the tag name via autocomplete and rebuilds the profile. The correction is reported in resolved_from.

Args: params (GetProfileInput): Validated input: - tag (str): Character tag, e.g. 'hoshino_(blue_archive)'. - limit (int): Max characteristic tags (1-100, default 25). - response_format (ResponseFormat): 'markdown' or 'json'. - auto_resolve (bool): Auto-correct misspelled tags (default True).

Returns: str: Markdown profile or JSON. Success JSON schema: { "tag": {"name": str, "category": str, "category_id": int, "post_count": int}, "characteristics": [ {name, category, post_count, frequency}, ... ], "wiki_page_tags": [ {name, category, post_count}, ... ], "implied_by": [ {antecedent_name, consequent_name, status}, ... ], "implies_this": [ {antecedent_name, consequent_name, status}, ... ], "wiki": {"title": str, "other_names": [str], "body": str} | null, "resolved_from": {"original": str, "resolved": str, "corrected": bool} | null, "suggestions": [ {name, category, post_count, is_alias}, ... ] } Error: "Error: ".

Examples: - "Give me everything about Hoshino from Blue Archive" -> params with tag='hoshino_(blue_archive)'. - "Full profile of Rem from Re:Zero" -> params with tag='rem_(re:zero)'.

danbooru_search_characterA

Get visual trait frequencies for a character tag.

Best tool for character visual trait analysis. Use danbooru_get_character_profile if you also need wiki/implications. Given a character or copyright tag (e.g. hoshino_(blue_archive)), it returns the tags that most frequently appear alongside it on Danbooru posts. A tag with frequency 0.92 (like ahoge or pink_hair for Hoshino) appears in 92%% of posts carrying the query tag, so it is a defining visual trait.

Results are ordered by co-occurrence frequency (descending). Meta tags such as highres are excluded by default because they describe image quality, not the character.

When auto_resolve is enabled (default) and the queried tag does not exist on Danbooru, the tool automatically queries the autocomplete endpoint to find the correct name (e.g. correcting a misspelled amamya_kokoro to amamiya_kokoro), re-runs the search with the corrected name, and reports the correction in resolved_from.

Args: params (SearchCharacterInput): Validated input: - tag (str): Canonical Danbooru tag, e.g. 'hoshino_(blue_archive)'. - limit (int): Max related tags to return (1-100, default 25). - category (Optional[TagCategory]): Filter to one category. - min_frequency (float): Min co-occurrence frequency 0-1. - exclude_meta (bool): Drop meta tags (default True). - response_format (ResponseFormat): 'markdown' or 'json'. - auto_resolve (bool): Auto-correct misspelled tags (default True).

Returns: str: Markdown table or JSON. Success JSON schema: { "query": str, "tag": {"name": str, "category": str, "category_id": int, "post_count": int}, "related_tags": [ {"name": str, "category": str, "category_id": int, "post_count": int, "frequency": float, "jaccard_similarity": float, "overlap_coefficient": float} ], "wiki_page_tags": [ {"name": str, "category": str, "category_id": int, "post_count": int} ], "resolved_from": {"original": str, "resolved": str, "corrected": bool} | null, "suggestions": [ {name, category, post_count, is_alias}, ... ] # when tag not found } Error: "Error: ".

Examples: - "What does Hoshino from Blue Archive look like?" -> params with tag='hoshino_(blue_archive)' -> returns ahoge, pink_hair, blue_eyes, heterochromia, halo, ... - "Find all copyright tags related to this character" -> params with tag='hoshino_(blue_archive)', category='copyright'.

danbooru_lookup_tagA

Utility: find or verify a tag's exact canonical name.

NOT for character analysis — use danbooru_get_character_profile or danbooru_search_character for that. This tool is for finding/verifying tag names and listing related tag variants (e.g. all costume variants of a character).

Uses Danbooru's autocomplete endpoint as the primary search engine because it reliably resolves aliases (e.g. amamya_kokoro -> amamiya_kokoro) and performs prefix matching without requiring explicit * wildcards. The tags.json endpoint is used only as a fallback when autocomplete returns nothing.

Args: params (LookupTagInput): Validated input: - query (str): Name pattern. Wildcards (*) supported but often unnecessary — autocomplete does prefix matching automatically. - category (Optional[TagCategory]): Filter by category. - limit (int): Max results (1-200, default 25). - order (str): 'count' | 'name' | 'date'. - hide_empty (bool): Hide zero-post tags (default True). - response_format (ResponseFormat): 'markdown' or 'json'. - auto_resolve (bool): Fall back to tags.json if autocomplete returns nothing (default True).

Returns: str: Markdown table or JSON. Success JSON schema: { "query": str, "results": [ {"name": str, "category": str, "category_id": int, "post_count": int, "is_deprecated": bool, "created_at": str, "is_alias": bool, "match_type": str} ] } Error: "Error: ".

Examples: - "Does the tag amamiya_kokoro exist?" -> query='amamiya_kokoro'. - "Find Amamiya Kokoro even if misspelled" -> query='amamya_kokoro' (autocomplete corrects it to amamiya_kokoro). - "List all Blue Archive character tags" -> query='*_(blue_archive)', category='character', order='count'.

danbooru_get_wiki_pageA

Get the textual wiki description for a tag.

For complete character info, use danbooru_get_character_profile instead. This tool retrieves the wiki page only. Wiki pages contain the canonical description, often listing a character's appearance, source work, voice actor, and alternate costumes.

The body is written in Danbooru DText markup; this tool converts it to readable plain text in markdown mode.

Args: params (GetWikiInput): Validated input: - title (str): Wiki title, e.g. 'hoshino_(blue_archive)'. - body_limit (int): Truncate body to N chars (0 = full). - response_format (ResponseFormat): 'markdown' or 'json'.

Returns: str: Markdown or JSON. Success JSON schema: { "title": str, "category_name": str|null, "other_names": [str, ...], "body": str, "is_deleted": bool, "is_locked": bool, "created_at": str, "updated_at": str } Error: "Error: " (404 if no wiki page exists).

Examples: - "Describe Hoshino from Blue Archive" -> params with title='hoshino_(blue_archive)'. - "What does the ahoge tag mean?" -> params with title='ahoge'.

danbooru_get_tag_implicationsA

Get the implication chain for a tag (A -> B auto-adds).

For character costume variants, use danbooru_get_character_profile which queries both directions. This tool queries only the antecedent direction (what does this tag imply).

A Danbooru implication A -> B means every post tagged A is automatically also tagged B. This tool queries the antecedent direction (what does this tag imply). For the reverse direction (what tags imply this tag, e.g. costume variants), use danbooru_get_character_profile which queries both directions.

For characters this often encodes the source work (hoshino_(blue_archive) -> blue_archive) and structural traits. Not every character tag has implications, so an empty list is a valid result.

Args: params (GetImplicationsInput): Validated input: - tag (str): Antecedent tag, e.g. 'hoshino_(blue_archive)'. - limit (int): Max implications (1-1000, default 50). - response_format (ResponseFormat): 'markdown' or 'json'.

Returns: str: Markdown table or JSON. Success JSON schema: { "query": str, "implications": [ {"id": int, "antecedent_name": str, "consequent_name": str, "status": str, "created_at": str} ] } Error: "Error: ".

Examples: - "What tags are auto-added when tagging Hoshino?" -> params with tag='hoshino_(blue_archive)'. - "Trace the implication chain of pink_hair" -> params with tag='pink_hair'.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/echo-xianyu/danbooru-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server