Skip to main content
Glama
andreax79

otp-mcp-server

by andreax79

Server Quality Checklist

67%
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_token creates tokens, calculate_otp_codes generates codes, delete_token removes tokens, get_details retrieves token metadata, and list_otp_tokens enumerates available tokens. There is no functional overlap between these operations.

    Naming Consistency4/5

    Four tools follow a consistent verb_noun pattern (add_token, delete_token, get_details, list_otp_tokens), but calculate_otp_codes uses a verb_object format that slightly deviates from the pattern. The naming is still highly readable and predictable.

    Tool Count5/5

    With 5 tools, this server is well-scoped for OTP management. It covers the essential CRUD operations (add, delete, list, get details) plus code calculation, which is the core functionality. No tool feels redundant or missing for the domain.

    Completeness5/5

    The toolset provides complete coverage for OTP token management: creation (add_token), retrieval (list_otp_tokens, get_details), usage (calculate_otp_codes), and deletion (delete_token). There are no obvious gaps in the lifecycle or functionality for this domain.

  • Average 3/5 across 5 of 5 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 failing
  • 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.

  • This repository includes a glama.json configuration file.

  • 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 action 'calculate' but doesn't explain what this entails—e.g., whether it's a read-only operation, if it requires authentication, what happens if no tokens match, or if there are rate limits. The description is too vague to inform the agent about key behavioral traits.

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

    Conciseness3/5

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

    The description is concise with two sentences, but it's not optimally structured. The first sentence states the purpose, and the second provides parameter info, but it could be more front-loaded with critical details. While not wasteful, it lacks efficiency in conveying necessary context for tool selection.

    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 (involving OTP calculations and pattern matching), no annotations, no output schema, and low parameter coverage, the description is incomplete. It fails to address what the tool returns, error conditions, or behavioral nuances, leaving significant gaps for an AI agent to understand and use it 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%, so the description must compensate. It adds minimal semantics by explaining that 'pattern' is a 'Token pattern (part of the name or token number)', which clarifies the parameter's purpose but doesn't detail format, examples, or constraints. This is insufficient given the lack of schema 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 verb 'calculate' and the resource 'OTP code for all tokens matching the pattern', which is specific and actionable. However, it doesn't explicitly distinguish this tool from sibling tools like 'list_otp_tokens' or 'get_details', which might also involve token information but with different operations.

    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 such as 'list_otp_tokens' or 'get_details'. It lacks context about prerequisites, such as whether tokens must exist or be active, and doesn't mention any exclusions or specific scenarios for usage.

    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 states the tool adds a token but doesn't explain what happens after addition (e.g., where the token is stored, if it's persisted, or any side effects). It also lacks information on permissions, rate limits, or error conditions, which are critical for a tool that likely modifies state.

    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 well-structured and appropriately sized. It starts with a clear purpose statement, followed by a bullet-like 'Args' section that efficiently details parameters. There's minimal waste, and the information is 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 an OTP token addition tool with 8 parameters, no annotations, and no output schema, the description is incomplete. It lacks behavioral context (e.g., storage implications, error handling) and doesn't explain what the tool returns after adding a token. This leaves significant gaps for an agent to understand the full operation.

    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?

    The description includes an 'Args' section that lists all parameters with brief explanations, which adds value beyond the input schema. However, with 75% schema description coverage, the schema already documents most parameters well. The description compensates somewhat by clarifying defaults and token-specific contexts (e.g., 'counter value for HOTP tokens'), but it doesn't fully bridge the gap for the 25% uncovered parameters.

    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: 'Add a new OTP token.' This is a specific verb ('Add') and resource ('OTP token'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'calculate_otp_codes' or 'list_otp_tokens' beyond the 'add' action, which prevents a perfect score.

    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 sibling tools like 'delete_token' or 'list_otp_tokens', nor does it specify prerequisites or contexts for adding a token. This leaves the agent without explicit 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. It states the tool deletes tokens but doesn't disclose critical behavioral traits: whether deletion is permanent or reversible, what permissions are required, if there are rate limits, or what happens on success/failure. This leaves significant gaps for a destructive operation.

    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 brief and front-loaded with the main purpose, followed by a parameter explanation. It avoids unnecessary words, but the structure could be improved by integrating the parameter details more seamlessly or adding a brief usage note to enhance clarity without bloating.

    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 destructive nature, lack of annotations, no output schema, and minimal parameter documentation, the description is incomplete. It doesn't cover behavioral risks, return values, or error conditions, which are crucial for safe invocation. This is inadequate for a deletion tool with no structured support.

    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?

    The description adds some meaning beyond the schema: it explains that 'pattern' matches 'part of the name or token number,' clarifying its purpose. However, with 0% schema description coverage and only one parameter, this is minimal compensation. The baseline is 3 since the schema alone lacks descriptions, and the tool has a simple parameter set.

    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 ('Delete') and resource ('OTP token'), and specifies the matching criteria ('matching the pattern'). However, it doesn't explicitly distinguish this from sibling tools like 'add_token' or 'list_otp_tokens' beyond the obvious verb difference, missing an opportunity to clarify scope or relationships.

    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 (e.g., token existence), consequences of deletion, or when to choose this over other tools like 'list_otp_tokens' for verification. Usage is implied by the action but lacks explicit 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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves details for matching tokens but doesn't describe what 'details' include (e.g., token name, number, expiration), whether it's a read-only operation, potential rate limits, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

    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 concise and front-loaded, with the main purpose stated first and parameter details in a structured 'Args' section. It avoids unnecessary words, but the parameter explanation could be slightly more detailed without losing efficiency. Overall, it's well-structured and earns its place.

    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 (filtered retrieval), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'details' are returned, how results are formatted, or any behavioral traits like pagination or errors. For a tool with no structured support, more context is needed to be fully helpful.

    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?

    The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that 'pattern' matches 'part of the name or token number,' which clarifies the parameter's purpose beyond the schema's basic type. However, it doesn't provide examples, format details, or constraints, leaving some ambiguity. With one parameter and partial compensation, a baseline 3 is appropriate.

    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 details of all the OTP tokens matching the pattern.' It specifies the verb ('Get'), resource ('OTP tokens'), and scope ('matching the pattern'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'list_otp_tokens' (which might list all tokens without filtering), so it misses full sibling differentiation.

    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 sibling tools like 'list_otp_tokens' (for unfiltered listing) or 'calculate_otp_codes' (for code generation), nor does it specify prerequisites or exclusions. Usage is implied through the pattern parameter but not explicitly stated.

    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?

    No annotations are provided, so the description carries the full burden. It implies this is a read-only operation ('Returns the list'), which is useful, but doesn't disclose other behavioral traits like authentication needs, rate limits, or what 'available' means (e.g., active vs. all tokens). The description adds some value but lacks comprehensive 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 two concise sentences with zero waste. The first sentence states the purpose, and the second provides usage guidance, making it well-structured and front-loaded. Every sentence earns its place by adding clear value.

    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 simplicity (0 parameters, no output schema, no annotations), the description is adequate but has gaps. It explains what the tool does and when to use it, but lacks details on return values (e.g., format, pagination) and behavioral aspects like error handling. For a list tool, this is minimally viable but could be more complete.

    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% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and usage. This meets the baseline for tools with no parameters.

    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 with a specific verb ('Returns') and resource ('list of OTP tokens'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_details' or 'calculate_otp_codes', which might also involve OTP tokens in some capacity.

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

    Usage Guidelines4/5

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

    The second sentence provides clear context about when to use this tool ('before trying to generate code'), which helps the agent understand its role in a workflow. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools, missing full differentiation.

    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

otp-mcp MCP server

Copy to your README.md:

Score Badge

otp-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/andreax79/otp-mcp'

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