cosplaytele-mcp
Server Quality Checklist
Latest release: v0.3.0
- 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/5Most 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/5Seven 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/5The 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.
Average 4.2/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 16 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and open-world annotations, the description reveals meaningful behavior: sources are queried in parallel, results are interleaved so one site cannot dominate, and failed sources do not fail the whole call. This goes well beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Five short, dense sentences each add distinct information: search facets, default behavior, result fairness, failure handling, and next-step usage. No filler or restatement of the schema is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with an output schema, the description covers defaults, failure behavior, and downstream usage, which is sufficient for an agent to call it correctly. It omits details like pagination semantics and ordering, but these are minor given the schema covers page bounds and the tool is read-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes every parameter, so the description's added value is modest but real: it explains the 'all' default, the parallel querying semantics, and how to use a hit's source and path with get_gallery. This complements rather than repeats the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Search galleries') and enumerates query facets (character, series, model, tag), making the tool's purpose clear. It does not explicitly differentiate itself from sibling tools like browse_tag or related, but the search-across-sources framing is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context: the 'all' default, parallel source behavior, interleaved results, and how to follow up with get_gallery. It does not state when to prefer search over browse, browse_tag, or related, nor when these alternatives would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a benign read-only operation ('readOnlyHint: true'), so the description does not need to re-state that. It adds non-obvious context: the tool 'does not download image files' and AI galleries are returned with is_ai=true. These traits are genuinely helpful and go beyond the annotations. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three or four short sentences and each one carries meaningful information: the result, the path interpretation, and the open_url caveat. No redundant phrasings or padding. It is slightly longer than the leanest versions, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with a fully documented schema, 100% parameter coverage, an output schema, and read-only/open-world annotations, an AI agent has enough to call it. The description ties the tool to its output domains--title, tags, image-url window--and flags the non-obvious download and AI behavior, so nothing required for a correct call is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage and already describes every parameter, including path types, limit/offset bounds and defaults, and the source enum. The description reiterates the path semantics, so it adds little over the schema. Since schema coverage is high, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch title, tags, and a window of image URLs for one gallery.' It explicitly names what the tool returns and limits itself to a single gallery, which lets an agent distinguish it from list/browse/search-style tools. The reference to the path and the built-in exclusion of downloads further sharpen its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit routing: 'If the user gave a full URL and you do not know the source, call open_url instead.' It also clarifies the path comes from listing/search hits, implying the tool is used after a browsing/search step, and notes it works with a relative path or full post URL. It does not systematically contrast against every sibling like browse or search, but the key exclusion (open_url) is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds valuable behavior: 'Fetches metadata only' indicates a lightweight read, 'browses the first tag' reveals the algorithm, and 'The original set is omitted' clarifies output filtering. These go beyond the annotations with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the core purpose, followed by efficient behavioral details. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, annotations, and a 4-parameter schema with full descriptions, the description covers the essential behavior: tag selection (first tag), scope (metadata only), and output filtering (original set omitted). It is adequate for a read-only tool, though it does not explicitly mention pagination behavior—but that is covered by the page parameter and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds minimal extra semantic value—it relates 'path' to the concept of a 'set' and mentions browsing the first tag, but this is contextual rather than parameter-specific. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find more galleries sharing a tag') and the resource ('the given set'). It distinguishes from browse_tag by specifying it derives the tag from a set and browses the first tag, making the purpose specific and non-tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: given a set (path), it returns galleries sharing the first tag, fetching metadata only. It implies when to use it (when you have a set and want related galleries) and indirectly differentiates from browse_tag (which would be used when the tag is known), but it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
- 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/5Is 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/5Given 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/5Does 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/5Does 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/5Does 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.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md: