Danbooru Search MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DANBOORU_LOGIN | No | Your Danbooru username for authentication (optional, raises rate limit) | |
| DANBOORU_API_KEY | No | Your Danbooru API key for authentication (optional, raises rate limit) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
Each source degrades gracefully: a missing wiki page or empty implications do not fail the whole request. When 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
Results are ordered by co-occurrence frequency (descending). Meta tags
such as When 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 Uses Danbooru's autocomplete endpoint as the primary search engine because
it reliably resolves aliases (e.g. 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 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 A Danbooru implication For characters this often encodes the source work
( 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose with explicit usage guidance. The comprehensive danbooru_get_character_profile is recommended as the first choice, while other tools handle specific subtasks like forward implications, wiki text, tag lookups, and visual trait frequencies. Overlap between get_character_profile and search_character is resolved by the description recommending get_character_profile for full info, minimizing ambiguity.
All tools follow a consistent danbooru_verb_noun pattern in snake_case. Three use 'get', one uses 'lookup', and one uses 'search'—all clear verbs paired with specific nouns (character_profile, tag_implications, wiki_page, tag, character). No mixing of conventions or vague names.
Five tools is well-scoped for a Danbooru search MCP covering character profiles, tag implications, wiki pages, tag lookups, and visual trait analysis. The number is neither too few to limit functionality nor excessive for the domain, providing a focused yet flexible set.
The tool surface covers core character/tag operations well: full profile, forward implications, wiki content, tag search, and visual trait analysis. Minor missing features include reverse implications only available within the profile tool (no standalone reverse tool) and lack of direct post/search capabilities. However, these gaps do not severely hinder common workflows.