Skip to main content
Glama

CosplayTele MCP

面向 CosplayTele 及同类图库站点的 MCP 2(Model Context Protocol,规范 2026-07-28)服务器。

需要 Python 3.14+。已发布:cosplaytele-mcp

安装

uvx cosplaytele-mcp

uvx 会临时拉取包并走 stdio 启动,适合直接接到宿主。持久安装:

uv tool install cosplaytele-mcp
# 或
pip install cosplaytele-mcp

装完后命令是 cosplaytele-mcp

Related MCP server: Deepghs MCP

接入宿主

推荐用 uvx,不必克隆仓库。若宿主找不到 uvx,把 command 换成 uvx 的绝对路径(常见是 ~/.local/bin/uvx)。

Claude Desktop / Cursor(mcpServers):

{
  "mcpServers": {
    "cosplaytele": {
      "command": "uvx",
      "args": ["cosplaytele-mcp"]
    }
  }
}

已用 uv tool installpip install 时:

{
  "mcpServers": {
    "cosplaytele": {
      "command": "cosplaytele-mcp"
    }
  }
}

VS Code .vscode/mcp.json

{
  "servers": {
    "cosplaytele": {
      "type": "stdio",
      "command": "uvx",
      "args": ["cosplaytele-mcp"]
    }
  }
}

运行

stdio(给宿主用):

uvx cosplaytele-mcp
# 或已安装后
cosplaytele-mcp

HTTP:

uvx cosplaytele-mcp --transport streamable-http --port 8000
# 或
cosplaytele-mcp --transport streamable-http --host 127.0.0.1 --port 8000

对外绑定时必须显式列出可信的浏览器 Origin:

cosplaytele-mcp --transport streamable-http --host 0.0.0.0 --port 8000 \
  --allowed-origin https://mcp.example.com

popular_kind=archive 表示源站的分类或默认归档,不表示按统计热度排名。ranking_kinds 与内容 categories 分开列出。

id

站点

热门

最新

搜索

cosplaytele

https://cosplaytele.com

popular-posts(period

WP REST

WP REST search=

hentaicosplay

https://hentai-cosplay-xxx.com

/ranking/ 及 like/bookmark 等

/search/

/search/keyword/

everia

https://everia.club

Cosplay 等分类 REST

WP REST

misskon

https://misskon.com/tag/cosplay/

WP REST tags=cosplay

WP REST

fourkhd

https://www.4khd.com

分类 popular

orderby=date

WP REST

kiutaku

https://kiutaku.com

/hot

/?start=

?search=

cup2d

https://cup2d.com

WP REST

WP REST

beauty3600000

https://3600000.xyz

HTML /category/cosplay/

?s=

foamgirl

https://foamgirl.net/cosplay

/cosplay

?s=

ososedki

https://ososedki.com

/api/albums?type=top

/api/albums

type=search

mitaku

https://mitaku.net

/category/ero-cosplay/

?s=

工具

  • list_sources:源目录

  • open_url(url, offset=0, limit=20):从完整帖子 URL 按域名选源并打开图集

  • search(query, source=all, page=1, category?, exclude_ai=true):按站点真实接口搜索。source=all 时并行查全部源,结果按源交错排列

  • browse(source, sort=popular|latest, page=1, query?, category?, period?, exclude_ai=true):排行 / 最新;只带 category 时按该分类列出,不走关键词搜索;带 query 时走该源搜索。period 仅部分源的热门有效:CosplayTele 为 last24hours|last7days|last30days|all,Hentai Cosplay 为 day|week|month|year

  • browse_tag(source, tag, page=1, exclude_ai=true):按标签列出

  • related(source, path, page=1, exclude_ai=true):相近套图。CosplayTele 走 Contextual Related Posts;其余源用图集第一个标签

  • get_gallery(source, path, offset=0, limit=20):详情和图片 URL。默认只回前 20 张加 image_countlimit=0 只回元数据。path 用列表或搜索结果里的 path,也接受完整帖子 URL。可能带 download_urlshas_video(有视频时只打标,不返回可播放流)

列表项在源站提供时带 tagspublished_atimage_counthas_video。没有的字段为 null / 空列表,不会为凑字段再打详情。年龄语义容易被误判的制服主题词(如 JK校服制服school girlschool uniformafter school)会在标题和标签中追加 (18+);路径、搜索词和源站原始标识不变。

CosplayTele 的 category 除表内 slug 外,也接受模特/作品分类 slug(如 byoru)。Hentai Cosplay 热门 category 为排行种类:likebookmarkdownloadtagkeywordimages。OSOSEDKI category=cosplays 列出角色目录,再把名字交给 browse_tag

exclude_ai 默认开启。只认明确 AI 标记,避免误伤 Ai YamadaAi Hoshino 这类名字:

AI 标记

CosplayTele

分类 ai-art(id 589),标题 AI Art – ...;搜索/标签用 categories_exclude

Hentai Cosplay

标题 (AI Generated) / (AI Enhanced),路径 *-ai-generated*,标签 ai-generated / ai-enhanced

MissKon

标签 ai-generated,搜索用 tags_exclude

Cup2D

分类 ai-art / aimodel,搜索用 categories_exclude

OSOSEDKI

标题里的 ai-generated,无独立分类

Mitaku

无 AI 标签页,只能靠标题/路径

其余新源

标题/路径/标签命中 ai-artai-generatedai-enhanced

结果里带 is_aiget_gallery 仍会返回 AI 图集,只打标不拦截。

搜索实现:

接口

CosplayTele / Everia / Cup2D

/wp-json/wp/v2/posts?search=

4KHD

/index.php?rest_route=/wp/v2/posts

Hentai Cosplay

/search/keyword/<kw>/

MissKon

WP REST search=,默认浏览 tag cosplay

Kiutaku

?search=

FoamGirl

/?s=,默认浏览 /cosplay

OSOSEDKI

/api/albums?type=search

Mitaku

/?s=

资源:sources://cataloggallery://{source}/{+path}。提示词:find_gallery

开发

克隆仓库后用 uv

uv sync --dev
uv run ruff check src tests
uv run ruff format --check src tests
uv run pytest
uv run mcp dev src/cosplaytele_mcp/server.py

格式化:

uv run ruff format src tests
uv run ruff check --fix src tests

Available Tools

7 tools
browseBrowse a gallery sourceA
Read-only

List popular or latest galleries from one source.

Use search() when the user names a character, series, model, or tag. If query is set, this tool searches that one source instead of ranking. If only category is set, list that category with sort (not a keyword search). Pass each item's path to get_gallery to fetch image URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page index. About 20 items per page.
sortNopopular (rankings / hot) or latest (newest posts). Ignored when query is set.popular
queryNoIf set, search this one source instead of listing rankings. Prefer search() for queries.
periodNoOptional ranking window. CosplayTele popular: last24hours, last7days, last30days, all. Hentai Cosplay popular: day, week, month, year.
sourceYesSource id from list_sources.
categoryNoOptional category slug from list_sources.categories.
exclude_aiNoDrop AI Art / AI Generated listings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
sourceYes
has_next_pageYes

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 and openWorldHint=true, so the safety profile is covered. The description adds meaningful behavioral context: query overrides ranking, sort is ignored when query is set, and category-only mode is not a keyword search. It does not contradict the annotations. Minor gap: no mention of pagination limits beyond the schema's page maximum, but the schema covers that.

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 four short sentences, front-loaded with the core purpose, then the routing rule, then the mode behavior, then the follow-up action. Every sentence earns its place and there is zero filler.

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

Completeness4/5

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

For a read-only browse tool with a rich schema and an output schema present, the description covers the key decision points: when to use search(), how query/category/sort interact, and what to do with the results. It does not enumerate every source-specific period value, but the schema already documents those. The only minor omission is an explicit note about what the output items look like, but the output schema presumably covers that.

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 100%, so the schema already documents all 7 parameters. The description adds a little extra meaning by clarifying the relationship between query, sort, and category, but it does not add syntax or format details beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a resource ('galleries from one source'), and the two ranking modes ('popular or latest'). It also distinguishes itself from search() by naming the sibling and the condition that selects it. This is a clear, non-tautological definition that an agent can act on.

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 explicitly says when to use search() instead ('when the user names a character, series, model, or tag'), and explains the behavior when query is set vs. only category is set. It also routes the next step ('Pass each item's path to get_gallery'). This is strong, actionable guidance with clear alternatives.

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

browse_tagBrowse galleries by tagA
Read-only

List galleries for one tag on one source.

Prefer this over search() when you already have a tag from get_gallery.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag name or slug.
pageNo1-based page index.
sourceYesSource id from list_sources.
exclude_aiNoDrop AI Art / AI Generated listings.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYes
itemsYes
sourceYes
has_next_pageYes

TDQS

A4/5.0
Behavior3/5

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

With readOnlyHint and openWorldHint already in annotations, the safety profile is covered. The description adds the scoping constraint (one tag, one source) but does not disclose any additional behavioral traits such as rate limits, pagination behavior, or result ordering. That is adequate but not rich.

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 two short sentences with no filler. The core behavior is front-loaded, and the routing guidance is separated onto a second line that earns its place.

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

Completeness4/5

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

Given a fully documented input schema, an output schema, and annotations, the description is nearly complete. It covers what the tool does and when to prefer it. The only small gap is not explicitly contrasting it with the browse sibling, but 'one tag on one source' already implies that distinction.

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 coverage is 100%, so the input schema already documents every parameter. The description adds only a slight hint that 'tag' can come from get_gallery, but it does not clarify formats, defaults, or enum semantics beyond what the schema provides. The baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List galleries for one tag on one source.' It states the exact scope of the operation and explicitly routes around search(), distinguishing this tool from one of its key siblings. This gives an agent a clear basis for selecting it.

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 second sentence gives explicit guidance: 'Prefer this over search() when you already have a tag from get_gallery.' This is a concrete when-to-use rule with an alternative named. It does not explicitly mention when not to use browse, but the context-for-use is otherwise clear.

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

list_sourcesList gallery sourcesA
Read-only

Return every gallery source this server can query.

Call this first when you need a source id, a category slug, or to check whether a source supports search or latest listings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

The annotations provide readOnlyHint=true and openWorldHint=false, and the description does not contradict them. It adds a little context by stating the tool returns a list of sources, but does not go into details like pagination or response structure. With annotations covering the safety profile, this is adequate.

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 two sentences, front-loaded with the primary function and then providing concrete usage guidance. There is no wasted wording, and every sentence earns its place.

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?

The tool is simple with no parameters, and the output schema exists, so the description does not need to explain return values. It fully covers when to use the tool and what it accomplishes. The description is complete for an agent to call it correctly.

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?

There are zero parameters, so the schema already fully describes the input. The description adds no parameter-specific information because none is needed. A baseline of 4 is appropriate for a tool with no parameters.

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 returns every gallery source the server can query, which is a specific verb+resource. It also lists concrete use cases (need a source id, category slug, or check search/latest support), distinguishing it from sibling tools that operate on individual items.

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 explicitly says 'Call this first' and enumerates three specific situations where this tool is the appropriate entry point. It doesn't explicitly state when not to use it, but the context makes it clear it's the initial discovery step before using siblings like browse or search.

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

open_urlOpen a gallery URLA
Read-only

Open a gallery from a full post URL.

Picks the source from the URL host. Use this when the user pastes a link.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesFull post URL, e.g. https://cosplaytele.com/ryuuge-kisaki-4/.
limitNoMax image URLs to return. 0 returns metadata only.
offsetNoImage window start.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
pathYes
tagsNo
is_aiNo
titleYes
sourceYes
has_videoNo
image_urlsYesDirect image URLs for this window. Do not download binaries.
image_countNoTotal images if known. Null when the source was not fully scanned.
image_offsetNo
published_atNo
download_urlsNoOffsite zip/cloud links from the post, if any. Not video streams.
thumbnail_urlNo
has_more_imagesNo

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 and openWorldHint=true, so the safety profile is covered. The description adds that it 'picks the source from the URL host,' which is useful behavioral context. However, it doesn't disclose what happens with invalid URLs, redirects, or how the limit/offset affect the returned gallery, though the output schema may cover some of this.

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 two sentences with no waste. The main action is front-loaded, and the usage condition is stated in the second sentence. Every word earns its place.

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

Completeness4/5

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

Given the tool has an output schema, annotations for safety, and 100% schema coverage, the description is nearly complete. It could mention error behavior (e.g., invalid URL) or that it returns image URLs, but the output schema likely covers return values. The only minor gap is handling of non-gallery URLs, but overall it's sufficient for an agent to invoke correctly.

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 100%, so the schema already documents all three parameters. The description adds the key semantic that the URL is a 'full post URL' and that the source is derived from the host, which complements the schema. But it doesn't add much beyond that, so baseline 3 is appropriate.

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 opens a gallery from a full post URL, with a specific verb ('Open') and resource ('gallery'). It distinguishes itself from siblings by noting it picks the source from the URL host and is for when the user pastes a link, which differentiates it from browse/search/get_gallery.

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 explicitly says 'Use this when the user pastes a link,' providing a clear usage condition. It also implies the alternative (browse/search) for other cases, and the sibling list reinforces the context. This is explicit enough for an agent to select it correctly.

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. 7 tool updatesv0.3.0
    • First observedbrowse
    • First observedbrowse_tag
    • First observedget_gallery
    • First observedlist_sources
    • First observedopen_url
    • First observedrelated
    • First observedsearch

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation4/5

Tools are mostly distinct: list_sources is metadata, browse is for ranked/listing views, search is keyword-based across sources, browse_tag is tag-specific, related expands from a set, open_url handles full URLs, and get_gallery fetches details. Some overlap exists between browse with a query and search, and browse_tag could be seen as a specialized browse, but descriptions clarify boundaries.

Naming Consistency3/5

Most tools follow verb_noun naming (list_sources, open_url, get_gallery, browse_tag), while browse and search are bare verbs, and related deviates entirely. The mixed styles are still readable, but the pattern is not uniform.

Tool Count5/5

Seven tools is well-scoped for a gallery aggregator server. Each tool covers a distinct interaction mode (discovery, search, browsing, detail fetch), and none feel redundant or extraneous.

Completeness4/5

The surface covers the core read-only lifecycle: discover sources, search/browse, drill into tags, open URLs, and fetch gallery details. Minor gaps exist such as explicit pagination for browse results, but the described workflows are largely complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers