Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool targets a distinct operation (search, get detail, list user list, update entry, delete entry, etc.) with clear boundaries. Overlap between get_my_anime_list and analyze_taste is addressed by descriptions, with analyze_taste exporting raw data for model analysis.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., search_anime, get_manga_detail, update_my_anime_entry). The few variations like get_my_anime_list vs get_user_anime_list are justified by different targets.

    Tool Count5/5

    20 tools is well-scoped for a comprehensive MyAnimeList client, covering catalog queries, user list management, rankings, seasonal, suggestions, schedule, and profile. No excessive or missing tools for the domain.

    Completeness5/5

    The tool set covers virtually all major MAL operations: search/get detail for anime and manga, full CRUD on user lists, rankings, seasonal anime, suggestions, weekly schedule, user profiles, and other users' lists. No significant gaps for personal anime/manga tracking.

  • Average 4.3/5 across 19 of 20 tools scored. Lowest: 2.9/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 17 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • 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.json to 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

  • Behavior2/5

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

    Annotations indicate readOnlyHint=true and openWorldHint=true, but the description adds no behavioral details beyond the schema (e.g., pagination behavior, ordering defaults). No mention of authentication requirements or response format.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that directly states the tool's purpose. It is concise and front-loaded, earning its place without fluff.

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

    Completeness2/5

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

    Given the four parameters and no output schema, the description is too minimal. It does not explain the return format, pagination details, or that authentication is required, leaving significant gaps for the agent.

    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 baseline is 3. The description does not add any parameter meaning beyond what the schema already provides (e.g., it does not explain sort order direction or filter usage in context).

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

    Purpose4/5

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

    The description clearly states the action 'Fetch a page' and the resource 'the authenticated user's MyAnimeList manga list'. It is specific and distinct from search tools, though it does not explicitly differentiate from the sibling 'get_user_manga_list' which may serve a similar purpose.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidelines are provided about when to use this tool versus alternatives like 'get_user_manga_list' or 'search_manga'. The agent receives no context for selection.

    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?

    The description discloses that the tool can create entries if absent, only changes provided fields, and returns updated status. This adds context beyond annotations (idempotent, destructive). It does not detail destructive behavior (e.g., clearing fields by passing null), but annotations already flag destructiveHint=true. Return value is mentioned, which aligns with output schema presence.

    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 purpose. Every sentence contributes essential information: purpose and usage rules. No redundancy or filler. Ideal length for quick comprehension.

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

    Completeness2/5

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

    Given 11 parameters and low schema coverage, the description is insufficient. It does not elaborate on the majority of parameters or their interactions. While output schema exists, the description should provide more context for correct parameter usage, especially for less obvious fields like 'is_rereading' or 'priority'.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With schema coverage at 27%, the description should compensate by explaining parameters. It only mentions 'status' as an example for adding entries. Other 10 parameters (tags, score, comments, etc.) lack explanation of their effects or valid values beyond schema. The description adds minimal semantic value to the sparse schema.

    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 updates or adds a manga entry to the user's list. It distinguishes from siblings like 'update_my_anime_entry' and 'delete_my_manga_entry' by focusing on manga list mutation. The verb 'update' and explanation of creating if missing make 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.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains that only provided fields change and at least one field is required, which is a usage rule. It also gives an example for adding a manga (pass status='plan_to_read'). However, it does not explicitly compare to sibling tools like 'delete_my_manga_entry' or 'get_my_manga_list', nor does it specify when to use update vs. other mutations.

    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?

    The description adds behavioral context beyond annotations (readOnlyHint, openWorldHint) by detailing the return format (text table + structured content) and pagination behavior (offset, has_more). It does not contradict annotations. A 5 would require even more depth, such as rate limits or caching, but it is already strong.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is front-loaded with the main purpose and then provides details on ranking types and return structure. It is informative without being overly verbose, though the list could be slightly streamlined. 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?

    Given no output schema, the description fully explains the return values and their meaning. It covers ranking types, pagination fields, and entry details. Combined with thorough annotations, this makes the tool self-contained for correct invocation.

    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?

    The description adds meaning beyond the input schema by listing the ranking_type enum values and explaining that 'all' means top by score. It also describes the return structure with fields like 'total_returned' and 'has_more'. Schema description coverage is high (67%), so the baseline is 3, but the description compensates well.

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

    Purpose4/5

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

    The description clearly states 'Fetch MAL's official anime rankings' with a specific verb and resource. It lists ranking types and the return structure, making the purpose explicit. However, it does not explicitly differentiate from sibling tools like search_anime or get_anime_detail, which would raise it to a 5.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for fetching rankings but provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest siblings for other purposes. Usage is implied rather than guided.

    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 mark destructiveHint=true, and description confirms it modifies the list and can add entries. It also states the return type ('Returns the updated my_list_status'). However, it does not elaborate on potential side effects beyond the mutation, but overall adds value beyond annotations.

    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?

    Description is two clear sentences, front-loaded with the core action and extending with usage notes. No redundant words.

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

    Completeness3/5

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

    Output schema exists so return values are documented. However, with 10 parameters and many siblings, the description could be more complete by covering error conditions or authentication requirements. The key adding behavior is explained, but gaps remain in parameter semantics.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Input schema has 10 parameters with only 30% description coverage. Description does not explain the purpose or format of the remaining 7 parameters (e.g., comments, priority, num_watched_episodes). The vague statement 'Only the provided fields are changed' does not compensate for the lack of individual parameter guidance.

    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?

    Description states 'Update the authenticated user's list entry for an anime (or ADD it to the list)', clearly specifying verb and resource. It distinguishes from siblings like delete_my_anime_entry and update_my_manga_entry by focusing on updating/adding an entry.

    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?

    Description explains that only provided fields are changed, at least one is required, and that if the anime is not on the list, MAL creates the entry with an example (pass status='plan_to_watch'). This provides clear usage context, though it does not explicitly mention when not to use or mention alternatives.

    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, so the safe read nature is known. The description adds transparency by listing the specific data returned (title, synopsis, stats, etc.) and notes the conditional my_list_status. It does not contradict annotations and provides useful behavioral context.

    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 three sentences, front-loaded with the purpose, then enumerating return fields efficiently. No wasted words.

    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?

    With one parameter and no output schema, the description adequately covers what the tool does and what it returns, including conditional fields. It does not discuss error handling or performance, but for a simple detail fetch, this is sufficient.

    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%: manga_id is fully described in the schema. The description only repeats 'MAL id' and adds 'e.g. from search results', which adds minimal value. 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 verb 'fetch' and resource 'full public details for one manga by its MAL id', which is specific and distinct from sibling tools like search_manga or get_manga_ranking. The returned fields are listed, providing a clear 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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage when you have a MAL id and want full details. It mentions the conditional inclusion of my_list_status, but does not explicitly contrast with siblings or state when not to use. However, the context is clear enough.

    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 value by detailing the return format (compact text table plus structured content with fields like year, season, total_returned, offset, has_more, entries including picture). It also explains sort behavior and season definitions, going beyond annotations.

    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 consists of two concise sentences. The first states the core purpose, and the second adds essential details on seasons, sorting, and return structure. Every sentence provides actionable information without redundancy.

    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 5 parameters and no output schema, the description sufficiently explains the output structure and paging. It covers typical use cases but omits edge case behavior (e.g., invalid year). With annotations providing safety context, the description is complete enough for effective tool use.

    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?

    Schema description coverage is 60% (3 of 5 params have descriptions). The description adds meaning beyond the schema: it explains season enum values with month ranges (winter=Jan-Mar, spring=Apr-Jun, etc.) and clarifies sort values (anime_score desc or anime_num_list_users desc). This compensates for the undocumented params.

    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 fetches anime that aired in a specific broadcast season, with the verb 'fetch' and resource 'seasonal anime'. It distinguishes from siblings like search_anime and get_anime_ranking by specifying season-based filtering.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains when to use the tool (to get anime by season) but does not provide explicit guidance on when not to use it or alternatives. Sibling tool names imply differentiation, but the description lacks direct usage context.

    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 provide readOnlyHint=true, so the agent knows it's read-only. The description adds critical context: the tool only works on public lists and a 403 indicates private/nonexistent user. This goes beyond the structural annotations.

    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?

    Two sentences, no filler. Every word is functional: states purpose, access condition, shape comparison, and error hint. Highly efficient.

    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 list retrieval tool with 5 parameters, no output schema, the description covers purpose, access limitation, error case, and shape. It does not explain return structure but references the sibling tool, which is acceptable.

    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 60%, so baseline is 3. The description mentions the paged shape is same as get_my_anime_list, which helps understand pagination but does not directly detail parameter semantics beyond what's in the schema's descriptions.

    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 it fetches a page of another user's anime list, specifies 'works only for public lists,' and distinguishes from get_my_anime_list by noting it's for another user. The verb 'Fetch' plus resource 'another MAL user's anime list' is specific and unambiguous.

    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 implicitly indicates when to use it to get another user's list and gives a practical hint about 403 errors. It compares to get_my_anime_list for shape but does not explicitly state when not to use or mention alternatives. Still, the context is clear enough.

    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 set readOnlyHint=true and openWorldHint=true. The description adds useful behavioral info: same paged shape as 'get_my_manga_list', plus 'user_name' echoed in response, and error conditions. No contradictions 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three sentences, each adding value. The first sentence states the core purpose, the second explains shape similarity, and the third covers error handling. No fluff, front-loaded with key information.

    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?

    The tool has 5 parameters, no output schema, and moderate schema coverage. The description covers purpose, public list constraint, shape similarity, and error handling. It could mention pagination limits or return structure, but given annotations and siblings, it is sufficiently complete for an AI agent.

    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 60%, meaning 3 of 5 parameters have descriptions in the schema. The description does not add new semantic details for parameters beyond noting shape similarity to another tool. With moderate schema coverage, the description provides minimal additional value for parameters, so a baseline score of 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 fetches 'a page of ANOTHER MAL user's manga list' and specifies it only works for public lists. The verb 'fetch' and resource 'another user's manga list' are specific, and it distinguishes from sibling tools like 'get_my_manga_list' (own list) and 'search_manga' (search).

    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 provides context that the tool works only for public lists and mentions a common error (403) meaning the list is private or username doesn't exist. It implicitly suggests using this tool over 'get_my_manga_list' when accessing another user's list, though explicit alternatives are not named.

    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 and openWorldHint. The description adds value by detailing the return format (text table and structured content), including truncation of synopsis to 300 characters, and noting the query character requirement. No contradictions 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise with three sentences: purpose, return format, and guidance to a sibling tool. Every sentence adds value and the purpose is front-loaded, making it immediately clear.

    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's simplicity (2 parameters, no output schema), the description covers the return structure, truncation, and sibling tool linkage. It is missing details on pagination or error handling, but overall is sufficiently complete for an agent to use 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 coverage is 100%, so the schema itself documents both parameters. The description adds minor context by noting the 'query' parameter is a title search and references the character requirement (same as schema description). This provides slight added value beyond the schema.

    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 'Search MyAnimeList's public anime catalog by title,' using a specific verb and resource. It distinguishes itself from siblings by referencing get_anime_detail for full information, making 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.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context on when to use this tool (searching anime by title) and directs users to get_anime_detail for full information. However, it does not explicitly exclude search_manga for manga searches, though the tool name implies anime-only scope.

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

  • Behavior5/5

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

    Description adds significant context beyond annotations: clarifies permanent deletion, cannot be undone, idempotent behavior, and 404 handling. 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with key action. No wasted words.

    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?

    Given annotations and output schema, description is complete: explains permanence, idempotency, and error behavior.

    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%; description does not add new info about the single parameter. 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?

    Description clearly states the action (PERMANENTLY remove), the resource (anime from user's list), and scope (authenticated user). It distinguishes from siblings like update or delete manga entry.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Description mentions permanence and idempotent behavior, but does not explicitly state when to use versus alternatives or prerequisites (e.g., must be authenticated, entry must exist).

    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 indicate read-only and open-world. The description adds detailed return fields (title, synopsis, stats, etc.) and conditional inclusion of my_list_status, which is valuable behavioral context beyond annotations.

    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?

    Description is extremely concise: one sentence for purpose, one sentence enumerating returned content. No fluff, every sentence adds value.

    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?

    Given no output schema, the description fully enumerates returned fields and notes conditional data. It covers all expected aspects for a simple detail-fetch tool, with no gaps.

    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 for anime_id is 100%, and the description provides no additional meaning beyond the schema's own description. Baseline of 3 is appropriate as no extra semantics are needed.

    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 fetches full public details for one anime by its MAL id, using specific verb 'Fetch' and resource 'anime'. It distinguishes itself from siblings like search_anime (returns list) and get_anime_ranking (ranking list).

    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 implies usage: when you have a specific MAL id and want detailed info. It indirectly guides usage by mentioning the required parameter, but lacks explicit when-not or alternative tools mention. However, context signals and sibling names fill the gap.

    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 and openWorldHint. The description adds value by detailing the no-analysis policy, format, grouping, sorting, and the fetch cap with warning line, which goes beyond annotations.

    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 three sentences plus a format line, all front-loaded with purpose and key details. Every sentence adds value with no redundancy.

    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 no parameters and good annotations, the description covers output format, sorting, grouping, and fetch cap warning. It lacks explicit mention of whether the list includes all watch statuses or just completed, but the context is sufficient.

    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?

    No parameters exist (schema coverage 100%), so the description focuses on output format and behavior. It adds significant meaning about the expected output, which is crucial for agent usage.

    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 the user's entire anime list in a compact text format, explicitly says it performs NO analysis, and the title 'raw data export' distinguishes it from siblings like search_anime and get_my_anime_list.

    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 says to use this when you need raw data for analysis and clarifies it does not perform analysis. It implies alternatives are analysis tools or model post-processing, but lacks explicit when-not-to-use guidance for specific sibling tools.

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

  • Behavior5/5

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

    The description details the destructive effects (deletes score, progress, dates, tags) and confirms permanence, which goes beyond the annotations (destructiveHint: true). It also discloses idempotent behavior and error handling (404 for unknown id), adding valuable behavioral context.

    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 concise, with only two sentences. The first sentence front-loads the main action, and the second provides critical behavioral details. No redundant or extraneous information.

    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 simple delete operation with one parameter and an output schema, the description covers the key aspects: what is removed, permanence, idempotency, and error behavior. It could be slightly improved by explicitly mentioning authentication requirement, but the tool name and context imply it.

    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?

    With 100% schema coverage, the schema already describes 'manga_id' as 'MAL manga id'. The description does not add further semantic meaning to the parameter beyond the context of the delete action, so it meets the baseline.

    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 action ('PERMANENTLY remove a manga') and the resource ('from the authenticated user's list'). It directly distinguishes from sibling tools like 'update_my_manga_entry' (update vs delete) and 'delete_my_anime_entry' (manga vs anime), leaving no ambiguity.

    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 implies usage for removing a manga entry and warns about permanence. It does not explicitly mention when not to use it or direct to a sibling tool like 'delete_my_anime_entry', but the context of siblings and clear action provides sufficient guidance.

    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 set readOnlyHint=true and openWorldHint=true. Description adds pagination behavior (bounded pages, has_more in response) without contradicting annotations. Lacks detail on auth requirements but implied by 'authenticated user'.

    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?

    Two sentences, front-loaded with purpose. Every sentence adds value: first defines action, second explains paging and alternatives. No waste.

    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 4 parameters, no output schema, and siblings, description covers paging and alternatives. Could mention response fields, but not essential. Adequately complete for a simple list tool.

    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?

    Input schema has 100% description coverage, covering sort, limit, offset, status_filter. Description only reinforces limit/offset for paging, adding little beyond 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?

    Description clearly states 'Fetch a page of the authenticated user's MyAnimeList anime list', specifying verb (fetch), resource (anime list), and scope (paged). It distinguishes from siblings like analyze_taste and get_user_stats.

    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?

    Explicitly explains paging mechanism with limit/offset and has_more, and provides alternatives: analyze_taste for complete list, get_user_stats for aggregates.

    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?

    Description adds behavioral context beyond annotations by detailing the fields in each entry (rank, title, etc.) and referencing pagination via limit/offset. No contradiction with readOnlyHint/openWorldHint.

    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?

    Two concise sentences: first states purpose, second lists types and return shape. No filler, front-loaded with critical information.

    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?

    For a read-only tool with no output schema, the description provides a thorough list of entry fields, ranking types, and references pagination. Combined with annotations, it is fully informative.

    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?

    Schema coverage is 67% with descriptions for limit and offset, but ranking_type only has enum values. The description compensates by listing all ranking types and detailing the return shape, adding meaning beyond the schema.

    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 explicitly states 'Fetch MAL's official manga rankings', using a specific verb and resource. It lists ranking types and notes the return shape is identical to get_anime_ranking, distinguishing it from that sibling tool.

    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 clearly indicates it is for manga rankings and provides the available ranking_type options. While it does not explicitly state when not to use it, the context is sufficiently clear given the sibling tools like get_anime_ranking.

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

  • Behavior5/5

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

    Beyond annotations (readOnlyHint, openWorldHint), the description adds that suggestions are based on the user's list and can be empty, and describes the return shape. No contradictions 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with purpose, no wasted words.

    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?

    For a simple read-only tool with good annotations and full schema coverage, the description covers purpose, behavior, and return format, making it complete.

    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 descriptions cover both parameters (limit, offset) with default and bounds. The description does not add further parameter details; with 100% schema coverage, 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 verb 'Fetch' and the resource 'personalized anime suggestions for the authenticated user', distinguishing it from siblings like search_anime or get_my_anime_list.

    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 explains when to use the tool (personalized suggestions) and notes that results are empty for accounts without watch history, but does not explicitly state when not to use or provide alternatives.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint and openWorldHint, and the description adds rich detail about the returned fields (id, name, picture, birthday, location, joined_at, time_zone, is_supporter, anime_statistics). No contradictions.

    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, the first stating the purpose and the second detailing the fields. Every sentence is necessary and information-dense, with front-loaded main action.

    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?

    Given no parameters, simple return values, and annotations covering safety and openness, the description is complete. It lists all key return fields, providing sufficient context for the agent.

    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?

    The tool has zero parameters, and schema coverage is 100%. According to guidelines, baseline is 4, and the description does not need to add parameter info beyond what's already clear.

    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 it fetches the authenticated user's MAL profile and lifetime anime statistics, listing specific fields. It distinguishes itself from siblings like 'get_user_stats' by focusing on the token's own account.

    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 states that MAL only exposes this endpoint for the token's own account, implying it should not be used for other users. This provides clear context for when to use the tool, though it lacks explicit alternatives.

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

  • Behavior5/5

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

    Annotations already indicate readOnlyHint and openWorldHint. The description adds rich behavioral details: paginated fetch, local aggregation, specific output fields including truncation warning. This exceeds mere 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single paragraph that is well-organized with clear sections: main purpose, process, output fields, and edge case. It is informative but could be slightly more concise by removing some redundancy (e.g., listing all fields twice in text).

    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?

    Given no output schema and no parameters, the description must fully describe the return value. It does so comprehensively, listing all structured fields and the truncation behavior. The annotations (read-only, open-world) complement the description.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    There are no parameters (input schema empty), so schema coverage is 100% vacuously. Per guidelines, baseline for 0 params is 4, and the description fully explains what the tool does without needing parameters. It adds thorough output semantics.

    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 verb 'compute' and the resource 'summary statistics over the authenticated user's entire anime list.' This distinguishes it from sibling tools like get_my_anime_list (which fetches raw data) and analyze_taste (likely different analysis).

    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 explains the process (one paginated pass, local aggregation) and implies it is the comprehensive stats tool. While it does not explicitly say when to use vs alternatives, the context signals and sibling names make it clear. Slightly lacking explicit usage boundaries.

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

  • Behavior5/5

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

    The description provides detailed behavioral information beyond annotations: it explains timezone conversion logic (converts both time and weekday), grouping of unscheduled shows, and the return format (text digest plus structured content). Annotations (readOnlyHint, openWorldHint) are consistent with the read-only fetching behavior described.

    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 concise (5 sentences) and well-structured: it starts with a high-level purpose, then details behavior, and ends with return format. Every sentence adds value without redundancy.

    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?

    The description covers the main functionality, return format, and parameter details. However, it could mention prerequisites (e.g., user must have a watching list) or edge cases (e.g., empty schedule). Still, it is fairly complete given the tool's simplicity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 100% with one parameter. The description adds significant context beyond the schema: it explains that the timezone overrides an environment variable and that both time and weekday are converted when a timezone is supplied, enhancing the parameter's meaning.

    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 a personal weekly airing calendar for anime on the user's watching list, grouped by broadcast day. The verb 'get' and resource 'weekly schedule' are explicit, and it is distinct from siblings like get_my_anime_list.

    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 explains when to use the tool (to get a schedule view of currently-airing anime from the watching list) and implies usage context with timezone handling. However, it does not explicitly state when not to use it or compare to alternatives like get_my_anime_list for raw list access.

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

  • Behavior5/5

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

    Exceeds annotations by detailing output format: compact text table and structured content with fields listed. Notes that num_chapters/volumes = 0 indicates unknown/ongoing, and synopsis truncated to 300 characters. No contradiction with readOnlyHint or openWorldHint.

    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?

    Three sentences: first states purpose, second describes output, third directs to sibling. Every sentence adds value. Concise and well-structured.

    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?

    With no output schema, the description fully explains the return format, including both text table and structured data with all key fields. Provides completeness for a search tool by covering response shape and special values.

    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?

    Schema coverage is 100%, so baseline is 3. Description adds value by explaining the query parameter expects a title and notes the '~3+ characters' requirement. The limit parameter is implicitly mentioned via default, but not elaborated beyond schema.

    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?

    Clearly states the verb 'search' and resource 'MyAnimeList's public manga catalog by title'. Distinguishes from sibling 'search_anime' and mentions alternative 'get_manga_detail' for full info.

    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?

    Explicitly states when to use: search by title. Provides a prerequisite that 'MAL needs ~3+ characters' for the query parameter. Contrasts with 'get_manga_detail' for full information, guiding the agent on tool selection.

    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

myanimelist-mcp MCP server

Copy to your README.md:

Score Badge

myanimelist-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/UmutKDev/myanimelist-mcp'

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