Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: add-or-update-notes handles note creation/modification, find-notes handles search queries, get-cards-reviewed provides review statistics, and get-collection-overview gives collection metadata. There is no overlap or ambiguity between these functions.

    Naming Consistency4/5

    The tools follow a consistent verb-object naming pattern (e.g., add-or-update-notes, find-notes) with clear actions and targets. The only minor deviation is the hyphenated style, which is consistent across all tools but differs from more common snake_case or camelCase conventions.

    Tool Count5/5

    With 4 tools, this server is well-scoped for managing an Anki collection. It covers core operations like note management, search, review tracking, and collection overview without being overly sparse or bloated.

    Completeness4/5

    The toolset covers essential Anki operations: CRUD for notes (add/update and find), review analytics, and collection metadata. A minor gap is the lack of explicit delete or deck management tools, but agents can likely work around this using existing tools.

  • Average 3.1/5 across 4 of 4 tools scored.

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

    • No community issues in the last 6 months
    • 0 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
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'finds notes matching a query', which implies a read-only search operation, but doesn't disclose critical details like whether it returns all matches or paginates, what format the results are in, error conditions, or performance characteristics. This is a significant gap for a search tool with zero annotation coverage.

    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 a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, stating the core purpose immediately without unnecessary elaboration.

    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 tool's complexity (a search operation with one parameter), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't explain what 'notes' are in Anki context, how results are returned, or any behavioral traits, making it inadequate for an agent to use the tool effectively.

    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?

    The schema description coverage is 0%, with one parameter 'query' undocumented in the schema. The description mentions 'matching a query' but doesn't add any meaning beyond the parameter name—it doesn't explain query syntax, examples, or constraints. With low schema coverage, the description fails to compensate, leaving the parameter semantics unclear.

    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 ('find notes matching a query') and resource ('in Anki'), providing specific verb+resource. However, it doesn't distinguish from sibling tools like 'get-cards-reviewed' or 'get-collection-overview', which might also retrieve note-related information, so it doesn't fully differentiate from alternatives.

    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?

    The description provides no guidance on when to use this tool versus alternatives like 'add-or-update-notes' or 'get-cards-reviewed'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions adding or updating notes but fails to explain critical behaviors: whether this requires specific permissions, if updates are destructive or reversible, rate limits, or what happens on partial failures. This leaves significant gaps for a mutation tool.

    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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly.

    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 complexity of a mutation tool with 1 parameter (but nested objects in schema), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It lacks details on behavior, parameters, error handling, and output, making it insufficient for safe and effective use by 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 0%, so the description must compensate for undocumented parameters. However, it adds no parameter-specific information beyond the tool's name implying 'notes' as input. The schema details parameters like 'notes', 'id', 'fields', etc., but the description doesn't explain their semantics or usage, resulting in a baseline score due to inadequate compensation.

    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 ('Add new notes or update existing ones') and the target resource ('in Anki'), which provides a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'find-notes' beyond the basic add/update vs. find distinction, missing explicit comparison.

    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 guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, when to choose this over other tools, or any exclusions. It merely states what the tool does without usage instructions.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves aggregated data ('number of cards reviewed by day'), implying a read-only operation, but doesn't specify behavioral traits like whether it requires authentication, has rate limits, returns historical data only, or handles errors. For a tool with zero annotation coverage, this is a significant gap in transparency.

    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 a single, efficient sentence: 'Get the number of cards reviewed by day'. It is front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool with no parameters. Every word earns its place by specifying the action, resource, and temporal aspect.

    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?

    Given the tool's complexity (simple retrieval with 0 parameters), no annotations, and no output schema, the description is minimally adequate. It states what the tool does but lacks context on usage, behavioral traits, or return values. Without an output schema, the description doesn't explain what data is returned (e.g., format, date range), leaving gaps for the agent to infer.

    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 input schema has 0 parameters with 100% description coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters, this is acceptable. The baseline for 0 parameters is 4, as the description needn't compensate for missing parameter documentation.

    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 tool's purpose: 'Get the number of cards reviewed by day' specifies the verb (get), resource (cards reviewed), and temporal scope (by day). It distinguishes from sibling tools like 'add-or-update-notes' or 'find-notes' by focusing on aggregated review metrics rather than note manipulation or search. However, it doesn't explicitly differentiate from 'get-collection-overview', which might also provide statistical data.

    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?

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as whether user authentication or specific data access is required, nor does it compare to sibling tools like 'get-collection-overview' that might offer overlapping functionality. Usage is implied through the purpose statement alone, leaving the agent to infer context.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden but only states it 'gets' information without disclosing behavioral traits like permissions needed, rate limits, response format, or whether it's a heavy operation. It mentions 'comprehensive information' but doesn't clarify depth or structure, leaving gaps in transparency for a tool with potential complexity.

    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 a single, efficient sentence that front-loads the purpose ('Get comprehensive information') and specifies key components without waste. Every word contributes to understanding the tool's function, making it appropriately sized and well-structured.

    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?

    Given the tool has 0 parameters and no output schema, the description adequately covers the purpose and scope. However, with no annotations and potential complexity in 'comprehensive information', it lacks details on behavioral aspects like response format or performance, making it minimally viable but incomplete for full agent guidance.

    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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description adds value by specifying what information is retrieved ('decks, models, and fields'), which goes beyond the empty schema, earning a baseline score above 3 for clarity in output scope.

    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 verb ('Get') and resource ('comprehensive information about the Anki collection'), specifying the scope includes 'decks, models, and fields'. It distinguishes this as a read operation from sibling tools like 'add-or-update-notes' (write) and 'find-notes' (search), though it doesn't explicitly name alternatives.

    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 retrieving collection metadata, which contrasts with sibling tools focused on notes or cards. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., for overview vs. detailed queries) or any prerequisites, leaving usage context inferred rather than stated.

    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

anki-mcp MCP server

Copy to your README.md:

Score Badge

anki-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/johwiebe/anki-mcp'

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