Booru-Pictag-Get-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Booru-Pictag-Get-MCPsearch for hatsune_miku on danbooru"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Booru-Pictag-Get-MCP
⚠️ 纯 AI 生成声明 | Pure AI-Generated Notice — 详见
AIGC_NOTICE.md
An MCP server that searches booru image boards (Danbooru / AIBooru / e621 / Gelbooru / Rule34) and cleans their tags into ready-to-use AI-art prompts for Stable Diffusion / Illustrious / Pony / SDXL and any booru-tag-driven model.
This is a Python port + MCP integration of booru-prompt-gallery by Mexes-GM (MIT). The prompt-cleaning pipeline — tag extraction, multi-subject guard, smart tag combination, redundancy folding, category splitting, background modes — is a 1:1 port of the original TypeScript modules. Wrapped as 9 callable MCP tools (4 prompt-building + 5 Danbooru character/tag analysis tools, the latter ported from the former standalone Danbooru-Search-MCP so callers have a single booru MCP), no Web UI, no Supabase/Redis/Cloudflare deps. See AIGC_NOTICE.md for the full derivation & attribution.
Upstream | Mexes-GM/booru-prompt-gallery — TypeScript + Next.js 15 web app (MIT) |
This repo | echo-xianyu/Booru-Pictag-Get-MCP — Python 3 + FastMCP server |
License | MIT — original credit preserved, dual attribution. See |
Install
Option A — local path
Clone, then point uvx at the local checkout:
git clone https://github.com/echo-xianyu/Booru-Pictag-Get-MCP.git
cd Booru-Pictag-Get-MCP
uvx --from . booru-pictag-get-mcpOption B — cloud / direct from GitHub
uvx --from "git+https://github.com/echo-xianyu/Booru-Pictag-Get-MCP" booru-pictag-get-mcpHTTP/2 extra (recommended — required for e621)
uvx --from . --with h2 booru-pictag-get-mcpe621's TLS stack frequently errors out on HTTP/1.1 keep-alive. The HTTP client auto-detects h2 and falls back to HTTP/1.1 if absent.
Related MCP server: civitai-mcp-ultimate
Configure (opencode / any MCP client)
{
"mcp": {
"booru-pictag-get": {
"command": "uvx",
// Option A — local:
"args": ["--from", "E:\\MCP\\booru-pictag-get-mcp", "booru-pictag-get-mcp"],
// Option B — cloud (no checkout on disk):
// "args": ["--from", "git+https://github.com/echo-xianyu/Booru-Pictag-Get-MCP", "booru-pictag-get-mcp"],
// HTTP/2 for e621 — prepend "--with", "h2" to args above.
"environment": {
"BOORU_DEFAULT_PROVIDER": "danbooru",
"DANBOORU_USERNAME_APIKEY": "youruser:yourkey", // optional, raises rate limit
"GELBOORU_USER_ID": "<your_user_id>", // required by Gelbooru since 2025-08
"GELBOORU_API_KEY": "<your_api_key>",
"RULE34_USER_ID": "<your_user_id>", // required by Rule34 since 2025-08
"RULE34_API_KEY": "<your_api_key>",
"BOORU_MAX_TAGS_DANBOORU": "6" // optional: raise a provider's per-search tag cap (default: danbooru/aibooru/e621 = 2, gelbooru/rule34 = 10)
}
}
}
}API key policy (Aug 2025): Danbooru, AIBooru, and e621 work with no key. Gelbooru and Rule34 tightened auth and now require keys. Without them, those two providers return 401; the others keep working.
Multi-tag search limits: every provider caps how many plain tags one query may combine — danbooru / aibooru / e621 = 2 tags (per site docs; Danbooru Gold accounts get 6), gelbooru / rule34 = 10 tags (per their API docs' "any tag combination"). Metatags (
order:rank,rating:safe,sort:score, …) do not count toward the limit. Exceeding the cap returns a clear error telling you how to fix it. To raise (or lower) a cap, setBOORU_MAX_TAGS_<PROVIDER>(e.g.BOORU_MAX_TAGS_DANBOORU=6for a Gold account).
Tools
Prompt-building tools (multi-provider: Danbooru / AIBooru / e621 / Gelbooru / Rule34)
Tool | Use it for |
| Recommended for ready-to-use prompts. Search a booru tag → cleaned prompt + category split. One step. |
| Clean an already-known tag set (no network). Accepts raw booru format or comma-list. |
| Raw post list (no cleaning). Inspect original tags before deciding how to process them. |
| Turn a natural word, partial fragment, or non-English term (Chinese / Japanese |
Danbooru character / tag analysis tools (Danbooru-only — ported from the former Danbooru-Search-MCP)
These answer a different question from the prompt builders above. The prompt builders return sample images each turned into a prompt; the analysis tools describe a known character/tag: visual-trait frequency tables, wiki text, tag-implication chains, costume variants.
Tool | Use it for |
| Recommended first for character lookups. One call returns: trait frequencies (e.g. halo/ahoge/pink_hair for Hoshino), wiki page + multilingual aliases, and bidirectional tag implications (source work + all costume variants). Auto-resolves misspellings/Chinese names. |
| Just the visual-trait co-occurrence table for a character tag (with optional category filter and frequency threshold). |
| Find or verify a tag's exact canonical name. Alias/fuzzy/prefix matching; supports |
| Get the textual wiki page for a tag (DText stripped to readable plain text; exposes |
| Get the implication chain for a tag (what does this tag auto-add). For reverse direction (costume variants implying this tag) use |
Routing guidance
Each tool's description in tools/list carries full guidance, but the short version:
"What does character X look like?" / "list X's costume variants" / "describe tag Y" →
danbooru_get_character_profile(it aggregates everything). Do not route these tosearch_prompts— that returns sample-image prompts, not a description.Find the canonical tag name for a Chinese/Japanese term or a misspelling →
autocomplete_tags(alias / fuzzy /other_namesaware).search_promptscannot do this.Booru search is tag-based AND, not keyword search. Multi-tag queries are supported up to each provider's limit (danbooru/aibooru/e621 = 2, gelbooru/rule34 = 10), but prefer a single tag (
hatsune_miku) over stacking (hatsune_miku blue_hair smile), which usually returns 0 posts.Multi-word tags use underscore:
blue_hair, neverblue hair.Don't write natural-language queries ("a girl with blue hair sitting in a classroom"); translate to booru tags first via
autocomplete_tags.
Scope & design choices
Pure Python — no Supabase / Redis / Cloudflare / Vercel. Endpoints are public booru APIs; no proprietary backend.
Tag-conflict rules are off by default in the prompt pipeline (mirrors the original
cleanPrompt.ts, which never calledtag-conflicts.ts). The 180+ rules were authored assuming a single subject — enabling them by default would mangle legitimate multi-character prompts (e.g.1girl+1boysex scenes,smile+cryingbittersweet scenes,long_hair+short_hairtwo-character shots). The resolver remains callable viabooru_mcp.core.tag_conflicts.resolve_conflicts()for explicit opt-in.optimize_tagshas a multi-subject guard: when the prompt contains multi-character markers (2girls/2boys/multiple_*/couple/group/duo…), it skips the hair-length / breast-size / eye-color "keep best per hierarchy" pick and the shared-noun tag combination — so two characters with different features survive intact.Tag categories for Gelbooru/Rule34 come from a static
data/tag_categories.jsondictionary (one-shot dump from Danbooru's publictags.json, generated byscripts/dump_tag_categories.py) with a keyword-classifier fallback. No external database at runtime.Tag-conflict rules are overridable via
data/tag_conflicts_overrides.json(additive — overrides can only widen a built-in rule, never narrow it). Seedata/tag_conflicts_overrides.example.json. Audit current rules withpython scripts/inspect_tag_conflicts.py --builtin.Danbooru character/tag analysis tools are integrated. The five
danbooru_get_character_profile/danbooru_search_character/danbooru_lookup_tag/danbooru_get_wiki_page/danbooru_get_tag_implicationstools were originally a separate MCP (Danbooru-Search-MCP). They now live inside this package viacore/danbooru_meta.py, all reusing the same HTTP client — so Danbooru Basic Auth uses the same env vars as the rest of this server (DANBOORU_USERNAME+DANBOORU_API_KEY, or the combinedDANBOORU_USERNAME_APIKEY), not the oldDANBOORU_LOGIN/DANBOORU_API_KEYpair. The standaloneDanbooru-Search-MCPcan be removed from your MCP client config once this version is installed.
Credits
Prompt-cleaning pipeline ported (1:1 line-for-line where possible) from booru-prompt-gallery by Mexes-GM (MIT). Original copyright preserved in LICENSE.
Python port + MCP server by echo-xianyu. The vast majority of the code was generated by AI (opencode + GLM-5.2); see AIGC_NOTICE.md for the full statement.
Available Tools
9 toolsautocomplete_tagsA
Autocomplete a tag fragment against the booru tag index, returning the canonical tag name with its post count and category. Use this to turn a natural word, partial fragment, or NON-ENGLISH term (Chinese/Japanese other_names like '星野', 'ホシノ') into the exact booru tag form before calling the search tools:
user says → autocomplete query → pick returned name
'blue hair' → 'blue hair' → 'blue_hair'
'miku' → 'miku' → 'hatsune_miku' (or other)
'knight' → 'knight' → 'knight', 'female_knight', ...
'星野'/'ホシノ' → '星野' → 'hoshino_(blue_archive)' (resolved
via other_names + alias)
'amamya_kokoro' → 'amamya_kokoro' → 'amamiya_kokoro' (auto-corrected)
Behavior:
On Danbooru (default) the query goes through the /autocomplete.json?type=tag_query endpoint, which performs ALIAS resolution, FUZZY/prefix matching, and matches against a tag's other_names (so Chinese/Japanese/Romaji inputs resolve to the English canonical tag). Auto-correction: if the input is a misspelling that resolves to a single canonical tag, the first result is the correct one (and
is_aliaswill mark alias entries).You do NOT need a trailing '*'; the underlying endpoint treats the query as a tag-query prefix/fuzzy term.
Multi-word fragments are allowed (pass verbatim, e.g. 'long skirt' or 'long_skirt').
post_countlets you reject obscure tags (likely to return ~0 results insearch_prompts). Prefer tags with post_count > 100.category: 0=general, 1=artist, 3=copyright, 4=character, 5=meta — use this to choose between, e.g. 'blue_archive' (3, copyright) vs an artist named 'blue_archive' (1).
is_alias(bool) marks results that are alias entries; thenamefield already holds the canonical (non-alias) tag name to use.For AIBooru (
provider='aibooru') the Danbooru autocomplete index is used (since AIBooru mirrors its tag database); for rule34/gelbooru/e621 search usesearch_prompts/search_postsonce you've found the tag name here (booru tags are largely cross-compatible).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| provider | No | danbooru |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure burden. It explains underlying endpoint behavior (alias resolution, fuzzy/prefix matching, other_names lookup), auto-correction semantics, is_alias meaning, category meanings, post_count usage, and provider-specific quirks (AIBooru mirrors Danbooru, cross-compatibility). This greatly exceeds basic mutation/read safety disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place. It uses a compact example table, a clearly labeled Behavior list, and provider notes. It front-loads the core purpose and then layers details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, no parameter descriptions, and no annotations. The description compensates by explaining return values (canonical name, post_count, category, is_alias) and workflow integration, covering edge cases like aliases and non-English terms. This is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It richly explains the 'query' parameter (partial, non-English, misspelling, multi-word, no star needed) and partially explains 'provider' via examples (Danbooru default, AIBooru behavior, others). However, 'limit' is not explicitly described, and provider semantics are only given implicitly. Still, the high-value query guidance justifies a strong score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+result: 'Autocomplete a tag fragment against the booru tag index, returning the canonical tag name with its post count and category.' It clearly distinguishes from sibling search tools by positioning it as a pre-search normalization step ('before calling the search tools').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance with concrete examples (natural words, fragments, non-English terms, misspellings) and alternatives: 'for rule34/gelbooru/e621 search use search_prompts/search_posts once you've found the tag name here.' It also gives operational tips like avoiding trailing '*', allowing multi-word fragments, and preferring tags with post_count > 100.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_promptA
Clean an already-known set of booru tags into a ready-to-use prompt. Use this when you already have a tag list (e.g. user pasted one or you received raw tags from search_posts) and only want the cleaned output. No network request is made.
tag_string accepts the SAME raw booru format that search_posts returns in raw_tags: space-separated, multi-word tags joined by UNDERSCORE ('1girl long_hair blue_eyes smile'). It also accepts a comma-separated list of already-cleaned tags ('1girl, long hair, blue eyes, smile') for idempotent re-cleaning. Do NOT pass natural-language sentences — split them into booru tags first (use autocomplete_tags to find the canonical form of each).
| Name | Required | Description | Default |
|---|---|---|---|
| exclude | No | ||
| optimize | No | ||
| meta_tags | No | ||
| added_tags | No | ||
| tag_string | Yes | ||
| artist_tags | No | ||
| character_tags | No | ||
| copyright_tags | No | ||
| background_mode | No | keep | |
| resolve_conflicts | No | ||
| include_characters | No | ||
| include_copyrights | No | ||
| simple_background_replacement_tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses 'No network request is made' and 'idempotent re-cleaning,' which are useful behavioral details beyond the tool name. However, it does not describe the output format or any potential failure modes, so it is not maximally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: the first sentence states the purpose, the second gives the use case, and the final block explains the input format with examples. Every sentence adds value, and it is appropriately front-loaded with the core need-to-know information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, no output schema, no annotations), the description provides enough to invoke it correctly for the main use case: cleaning an existing tag list. However, it leaves many optional parameters unexplained and does not describe the return value or expected output format, making it incomplete for a full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description extensively documents the `tag_string` parameter with format examples, which is critical since schema coverage is 0%. However, it does not explain the other 12 parameters (e.g., `background_mode`, `resolve_conflicts`), leaving their semantics largely to inference from names and defaults. The coverage is insufficient for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Clean an already-known set of booru tags into a ready-to-use prompt.' It also distinguishes from siblings by specifying when to use it (when you already have a tag list) and referencing related tools like `search_posts` and `autocomplete_tags`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Use this when you already have a tag list... and only want the cleaned output.' It also gives a clear exclusion: 'Do NOT pass natural-language sentences... use `autocomplete_tags` to find the canonical form.' This directly tells the agent when to use this tool vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
danbooru_get_character_profileARead-onlyIdempotent
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:
Related tags (co-occurrence frequencies) -> visual traits.
Wiki page -> textual description and multilingual aliases.
Tag implications (antecedent) -> tags auto-added by this tag.
Tag implications (consequent) -> tags that auto-add this tag (e.g. costume variants like
hoshino_(swimsuit)_(blue_archive)implyhoshino_(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: tag (str): Character tag, e.g. 'hoshino_(blue_archive)'. Spaces are automatically converted to underscores; non-English queries (Chinese/Japanese other_names like '星野'/'ホシノ') are resolved via the autocomplete index. limit (int): Max characteristic tags (1-100, default 25). response_format (str): 'markdown' or 'json'. auto_resolve (bool): Auto-correct misspelled/non-canonical tags (default True).
Returns: str: Markdown profile or JSON. Error: "Error: ".
Examples: - "Give me everything about Hoshino from Blue Archive" -> tag='hoshino_(blue_archive)'. - "Full profile of Rem from Re:Zero" -> tag='rem_(re:zero)'.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No | ||
| auto_resolve | No | ||
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides substantial behavioral details beyond annotations: parallel aggregation of four data sources, graceful degradation when a wiki page is missing, and auto_resolve behavior with resolved_from reporting. These are concrete, non-obvious behaviors that aid an agent in predicting tool outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with a bolded lead, numbered data sources, clear Args/Returns/Examples sections, and no fluff. Every sentence adds value, and the most important guidance ('RECOMMENDED FIRST CHOICE') is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex aggregation tool, the description covers all key aspects: data sources, failure modes, auto-resolution, parameter details, return format, and examples. Since an output schema exists, the description need not enumerate return fields, but it goes beyond by explaining what 'resolved_from' means and how errors are formatted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero descriptions for its four parameters, so the description carries the full burden. It thoroughly explains each parameter (tag, limit, response_format, auto_resolve) with types, defaults, and behavior, including special handling for spaces and non-English queries. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('returns') and resource ('complete character profile'), enumerating exactly what is included: visual traits, wiki description, multilingual aliases, and bidirectional tag implications. It is clearly differentiated from siblings by being labeled 'RECOMMENDED FIRST CHOICE' and 'Returns everything in one call.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'RECOMMENDED FIRST CHOICE for any character/tag lookup' and gives examples of when to invoke it. However, it does not explicitly mention exclusions or direct alternatives (e.g., when to use a lighter-weight sibling like danbooru_lookup_tag), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
danbooru_get_tag_implicationsARead-onlyIdempotent
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: tag (str): Antecedent tag, e.g. 'hoshino_(blue_archive)'. Spaces are automatically converted to underscores. limit (int): Max implications (1-1000, default 50). response_format (str): 'markdown' or 'json'.
Returns: str: Markdown table or JSON. Error: "Error: ".
Examples: - "What tags are auto-added when tagging Hoshino?" -> tag='hoshino_(blue_archive)'. - "Trace the implication chain of pink_hair" -> tag='pink_hair'.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No | ||
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and idempotentHint=true, the description adds substantial behavioral context: the directionality of implication (antecedent only), the meaning of A -> B, the validity of empty lists, and details on response formats and error strings. It goes well beyond what annotations provide and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with intro, direction explanation, Args, Returns, and Examples. However, the antecedent-direction phrase is repeated nearly verbatim in two paragraphs, creating slight redundancy. Still, every sentence contributes functional value and the front-loaded purpose is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, output schema present but not detailed), the description is complete: it clarifies directionality, provides contrasting alternatives, documents return formats and error handling, explains edge cases (empty list), and includes a worked example. No important aspect appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description fully compensates by explaining each parameter: tag with auto-underscore conversion, limit with range and default (1-1000, default 50), and response_format with allowed values ('markdown' or 'json'). It also gives real examples, turning the raw schema into actionable guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action: 'Get the implication chain for a tag (A -> B auto-adds)' and immediately scopes it to the antecedent direction. It also distinguishes itself from the sibling 'danbooru_get_character_profile' by explicitly naming it as the alternative for reverse lookups, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'For character costume variants, use danbooru_get_character_profile which queries both directions. This tool queries only the antecedent direction' and repeats the reverse-direction alternative later. It also notes that an empty list is a valid result, which sets expectations for edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
danbooru_get_wiki_pageARead-onlyIdempotent
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: title (str): Wiki title, e.g. 'hoshino_(blue_archive)'. Spaces are automatically converted to underscores. body_limit (int): Truncate body to N chars (0 = no limit). Useful because some wiki pages are very long. response_format (str): 'markdown' or 'json'.
Returns: str: Markdown or JSON. A 404 returns "Error: Resource not found. ...". Error: "Error: " otherwise.
Examples: - "Describe Hoshino from Blue Archive" -> title='hoshino_(blue_archive)'. - "What does the ahoge tag mean?" -> title='ahoge'.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| body_limit | No | ||
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already declare readOnly/idempotent/destructive false, the description adds meaningful behavioral context beyond those hints: it explains DText markup is converted to readable text, the body_limit truncation behavior, the response_format options, and exact error responses including 404 handling. This helps the agent predict tool behavior accurately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening purpose, a differentiation line, and labeled Args/Returns/Examples sections. Every sentence adds value: parameter details, error behavior, and usage examples are all necessary. Despite its length, it is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a read-only lookup tool with one required parameter. It covers what the tool returns, how the parameters affect output, the error behavior, and provides two illustrative examples. Combined with the annotations, nothing essential is missing for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions (0% coverage), so the description carries the full burden. It explains 'title' with an example and the automatic underscore conversion, 'body_limit' with the 0=no-limit semantic and rationale, and 'response_format' with the two allowed values. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action: 'Get the textual wiki description for a tag,' identifying the exact resource and verb. It further distinguishes itself from the sibling 'danbooru_get_character_profile' by explicitly stating this tool retrieves only the wiki page, not full character info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: use 'danbooru_get_character_profile' instead for complete character info, and this tool for the canonical wiki description. It also gives concrete examples showing when to query a character title versus a general tag like 'ahoge', making selection against alternatives clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
danbooru_lookup_tagARead-onlyIdempotent
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: query (str): Name pattern. Wildcards (*) supported but often unnecessary — autocomplete does prefix/fuzzy matching, and also matches against the tag's other_names (so Chinese/Japanese queries resolve to the English canonical tag). category (str|None): Filter to one category: 'general', 'artist', 'copyright', 'character', or 'meta'. Omit for all categories. limit (int): Max results (1-200, default 25). order (str): 'count' (post count desc, default), 'name' (name asc), or 'date' (created desc). hide_empty (bool): Hide zero-post tags (default True). response_format (str): 'markdown' or 'json'. auto_resolve (bool): Fall back to tags.json if autocomplete returns nothing (default True).
Returns: str: Markdown table or JSON. 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'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| order | No | count | |
| query | Yes | ||
| category | No | ||
| hide_empty | No | ||
| auto_resolve | No | ||
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description discloses internal behavior: it uses Danbooru's autocomplete endpoint for alias resolution and prefix matching, falls back to tags.json, and matches against other_names. This gives the agent deeper insight into how queries are handled. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose, exclusions, implementation detail, args, returns, and examples. It is front-loaded with the core purpose and every sentence adds value, making it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all 7 parameters, the return format (Markdown or JSON), error behavior, and gives practical examples. It also explains when to use this tool over siblings, making it sufficiently complete for a complex lookup utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all 7 parameters in detail: query semantics (wildcards, autocomplete, other_names), category values, limit range, order options, hide_empty, auto_resolve fallback, and response_format. This goes far beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'find or verify a tag's exact canonical name.' It explicitly distinguishes from sibling tools by stating 'NOT for character analysis' and naming the alternatives, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly says when to use this tool (finding/verifying tags, listing variants) and when not to (character analysis), and it names the alternative tools. Examples such as 'amamiya_kokoro' and '*_blue_archive' provide concrete usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
danbooru_search_characterARead-onlyIdempotent
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: tag (str): Canonical Danbooru tag, e.g. 'hoshino_(blue_archive)'. Spaces -> underscores automatically; non-English queries resolve via the autocomplete index when auto_resolve is on. limit (int): Max related tags to return (1-100, default 25). category (str|None): Filter to one category: 'general', 'artist', 'copyright', 'character', or 'meta'. Omit for all categories. min_frequency (float): Min co-occurrence frequency 0-1. A tag with frequency 0.9 appears in 90% of posts that carry the query tag. exclude_meta (bool): Drop meta tags (default True). response_format (str): 'markdown' or 'json'. auto_resolve (bool): Auto-correct misspelled tags (default True).
Returns: str: Markdown table or JSON. Error: "Error: ".
Examples: - "What does Hoshino from Blue Archive look like?" -> tag='hoshino_(blue_archive)' -> returns ahoge, pink_hair, blue_eyes, heterochromia, halo, ... - "Find all copyright tags related to this character" -> tag='hoshino_(blue_archive)', category='copyright'.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| limit | No | ||
| category | No | ||
| auto_resolve | No | ||
| exclude_meta | No | ||
| min_frequency | No | ||
| response_format | No | markdown |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds significant behavioral detail beyond the readOnly/idempotent annotations: describes probability interpretation (0.92 = 92% of posts), ordering by frequency, default exclusion of meta tags, auto_resolve with resolved_from reporting, and error format. There is no contradiction with annotations; it enriches them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although longer than many descriptions, it is logically structured with headers and examples. Each sentence adds value: purpose, co-occurrence explanation, exclusions, auto_resolve behavior, parameter details, return format, and real examples. Nothing is redundant; the length is justified by the tool's complexity and zero schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex tool with 7 parameters and multiple behaviors, the description covers all bases: return format (markdown/json), error message, auto-correction behavior, example queries, and relation to sibling tools. The output schema may exist, but the description still explains the string return, ensuring the agent knows how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description fully compensates. Every parameter is explained with types, defaults, and meaning: tag (canonical, spaces->underscores, autocomplete), limit (1-100, default 25), category (enum values), min_frequency (0-1, probability), exclude_meta (default True), response_format, and auto_resolve. This is exemplary parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Get visual trait frequencies for a character tag.' It then clearly distinguishes from sibling tools by declaring it the 'Best tool for character visual trait analysis' and suggesting danbooru_get_character_profile for wiki/implications. This makes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('Best tool for character visual trait analysis') and names the alternative for a different need ('Use danbooru_get_character_profile if you also need wiki/implications'). Also explains behavior with auto_resolve for misspelled tags, giving concrete usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postsA
Search a booru and return the raw post list (no cleaning). The same search semantics as search_prompts apply:
Query with one or more booru TAGs (underscores for multi-word: 'blue_hair', 'hatsune_miku'), never write natural language.
Tags AND together — every tag must be present in each returned post. PREFER A SINGLE TAG; stacking tags usually returns 0 posts. The cleaned prompt is where 'more detail' lives, not in the search query.
MULTI-TAG SEARCH IS SUPPORTED but each provider caps how many plain tags you may combine per query: danbooru/aibooru/e621 = 2, gelbooru/rule34 = 10 (metatags like order:rank or rating:safe do not count). Exceeding the limit returns an error; raise a provider's cap with the BOORU_MAX_TAGS_ env var.
When unsure how a concept is tagged, call
autocomplete_tagsfirst. Use this tool when you want to inspect the original tags before deciding how to process them. Each post carries its raw tag_string, the artist/character/copyright splits (when available), and optionally preview/file URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| tags | Yes | ||
| limit | No | ||
| order | No | popular | |
| rating | No | all | |
| provider | No | danbooru | |
| random_seed | No | ||
| include_preview | No | ||
| include_file_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does it thoroughly. It discloses the raw/uncleaned nature of results, AND-semantics for tags, provider-specific tag caps, error behavior on exceeding limits, and the structure of returned posts (tag_string, artist/character/copyright splits, optional URLs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a clear opening sentence and bulleted details. Every section adds value: search semantics, provider caps, autocomplete fallback, and post structure. Despite its length, it avoids redundancy and is appropriately scoped for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description covers the essential behavior and enough output structure to set expectations. It lacks details about pagination or what happens with invalid tags, but overall it gives a solid mental model for invoking and interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates for the most critical parameters: tags (syntax, AND behavior, single-tag preference, caps), provider (caps listed), and the boolean include_preview/include_file_url (via 'optionally preview/file URLs'). It does not explain page, limit, order, rating, or random_seed, but those are relatively self-explanatory with defaults and enums in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches a booru and returns the raw post list, with an explicit contrast to search_prompts. It distinguishes itself by emphasizing 'no cleaning' and by naming sibling tools like autocomplete_tags for concept resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use this tool when you want to inspect the original tags before deciding how to process them.' It also gives alternative tool guidance ('call autocomplete_tags first') and explains multi-tag limits per provider, including env var workarounds.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_promptsA
Search an image booru (Danbooru/AIBooru/e621/Gelbooru/Rule34) by TAG and return ready-to-use, cleaned AI-art prompts. Each result has the full prompt string plus its category split (appearance/clothing/pose/scenery/character/quality/other). This is the recommended tool for finding 'ready-to-use AI painting tags'.
== WHEN TO USE A DIFFERENT TOOL INSTEAD ==
'What does character X look like?' / 'list costume variants of X' / 'what tags describe X' -> use
danbooru_get_character_profile(one call: trait frequency table + wiki + bidirectional implications). It is built for describing a known character, whilesearch_promptsreturns sample images each turned into a prompt — different goals.'Find the canonical tag name for a Chinese/Japanese term or a misspelling' -> use
autocomplete_tags(alias/fuzzy/other_names aware).
== SEARCH SEMANTICS — read this before calling ==
This is NOT a keyword-search engine like Google. You query with one or more booru TAGS, and results are images ALL of whose tags are present.
A booru tag is a single token, multi-word tags use UNDERSCORE: 'blue_hair', 'hatsune_miku', 'sitting_on_chair' — never 'blue hair'.
MULTI-TAG SEARCH IS SUPPORTED but each provider caps how many plain tags you may combine per query: danbooru/aibooru/e621 = 2, gelbooru/rule34 = 10 (metatags like order:rank or rating:safe do not count). Exceeding the limit returns an error telling you how to fix it; you can also raise a provider's cap with the BOORU_MAX_TAGS_ env var (e.g. BOORU_MAX_TAGS_DANBOORU=6 for a Gold account).
STRONGLY PREFER A SINGLE TAG to start. 'hatsune_miku' returns thousands of well-tagged images; 'hatsune_miku blue_hair school_uniform smile' is treated as AND → dramatically fewer results (often zero). The cleaned prompt already contains far more detail than your search tag, so adding search tags is at best redundant and at worst returns nothing.
When you need a pure-quality / generalized set (no specific character or franchise yet), search '1girl' or '1boy' alone, or use 'random' order.
Do not write natural-language queries ('a girl with blue hair sitting in a classroom') — that is not supported. Translate to booru tags first.
Use
autocomplete_tagsif you are not sure how a concept is spelled as a booru tag (e.g. user said '法国女仆' → try 'french', 'maid' and let autocomplete return 'french maid', 'maid_uniform', etc.).Common useful single-tag starting points: a character tag ('hatsune_miku'), an artist tag, a copyright tag ('blue_archive'), a character + single qualifier ('2girls' for group shots), or 'order:rank' / 'random' for non-themed browsing via
orderparam.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| tags | Yes | ||
| limit | No | ||
| order | No | popular | |
| rating | No | all | |
| exclude | No | ||
| optimize | No | ||
| provider | No | danbooru | |
| added_tags | No | ||
| random_seed | No | ||
| min_tag_count | No | ||
| background_mode | No | keep | |
| include_preview | No | ||
| resolve_conflicts | No | ||
| include_characters | No | ||
| include_copyrights | No | ||
| simple_background_replacement_tags | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It explains non-obvious behavior: this is not keyword search, multi-tag queries are ANDed, providers cap plain tags, exceeding the limit returns an error, and the env var can raise the cap. It also discloses the return format with category splits. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but tightly organized with clear headings ('WHEN TO USE A DIFFERENT TOOL INSTEAD', 'SEARCH SEMANTICS') and every sentence contributes actionable guidance. The purpose is front-loaded in the first sentence, and no filler or redundant phrases appear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (17 parameters, 5 providers, no output schema or annotations), the description covers all essential invocation aspects: tag syntax, query semantics, provider-specific limits, alternatives, and return value shape. It even provides common starting-point tags, making it fully usable for an agent to select and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter descriptions, so the description must compensate. It thoroughly explains the critical `tags` parameter (underscore format, AND semantics, per-provider caps), `order` (order:rank, random), `provider` (the booru list), and rating metatags. However, several parameters (page, limit, exclude, optimize, background_mode, etc.) are left to their names alone, preventing a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'Search an image booru (Danbooru/AIBooru/e621/Gelbooru/Rule34) by TAG and return ready-to-use, cleaned AI-art prompts.' It also specifies the output shape (full prompt string plus category split), which clearly differentiates it from sibling tools like search_posts and build_prompt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'WHEN TO USE A DIFFERENT TOOL INSTEAD' section names alternatives (danbooru_get_character_profile, autocomplete_tags) and explains exactly when they are preferable. The 'SEARCH SEMANTICS' section gives concrete usage rules: prefer a single tag, avoid natural-language queries, use underscores, and consult autocomplete_tags for uncertain spellings.
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. Dates show when Glama detected each change.
9 tool updates
v0.3.0- First observed
autocomplete_tags - First observed
build_prompt - First observed
danbooru_get_character_profile - First observed
danbooru_get_tag_implications - First observed
danbooru_get_wiki_page - First observed
danbooru_lookup_tag - First observed
danbooru_search_character - First observed
search_posts - First observed
search_prompts
TDQS
Several tools have heavily overlapping purposes: danbooru_lookup_tag and autocomplete_tags both resolve canonical tag names; danbooru_get_character_profile and danbooru_search_character both return trait co-occurrence frequencies; and danbooru_get_wiki_page / danbooru_get_tag_implications are subsets of the profile tool. This makes it difficult for an agent to confidently choose the right tool.
Naming is mixed: some tools use a danbooru_ prefix (danbooru_lookup_tag, danbooru_get_character_profile), while others use bare verbs (search_prompts, search_posts, autocomplete_tags, build_prompt). Verb choices also vary (lookup, search, get, autocomplete, build) without a clear pattern.
At 9 tools, the count is within a reasonable range, but several tools are near-duplicates (e.g., danbooru_lookup_tag vs autocomplete_tags, danbooru_get_character_profile vs danbooru_search_character). A more streamlined set of 6-7 tools would feel tighter without losing functionality.
The tool surface covers the core domain well: tag resolution, character profiling, wiki text, implications, post/prompt search, and prompt building. Minor gaps include no direct tool for browsing popular tags or fetching a single post by ID, but these are peripheral to the server's stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Flux AI image generation
MCP server for NanoBanana AI image generation and editing
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for Qwen Image 3 AI image generation
Related MCP Servers
- AlicenseAqualityDmaintenanceA Python MCP server that wraps the Gelbooru API. Connect it to any MCP-compatible client (Claude Desktop, Cursor, etc.) to search posts, look up tags, and generate Stable Diffusion prompts from real character appearance data — all directly from your AI assistant.71MIT
- AlicenseAqualityBmaintenanceA comprehensive MCP server for interacting with the Civitai API to search models, browse images with generation prompts, and manage downloads. It features extensive support for various base models like SDXL and Flux, includes NSFW filtering, and provides automated download commands for ComfyUI.2121MIT
- AlicenseBqualityCmaintenanceAn MCP server that generates pixel-art PNGs from text prompts, using a free image backend, and saves them directly to your project directory.2MIT
- FlicenseBqualityDmaintenanceAn MCP server for generating and manipulating images using fal.ai's Stable Diffusion model, supporting multiple artistic styles, image sizes, upscaling, and inpainting.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Booru-Pictag-Get-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server