Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a distinct and clear purpose within the VPN lifecycle: activation, connection, disconnection, fetching through VPN, node listing, setup, status checking, and node switching. There is no overlap or ambiguity; an agent can easily select the right tool for each step.

    Naming Consistency5/5

    All tool names follow a consistent 'vpn_' prefix with descriptive action suffixes (e.g., activate, connect, fetch). The naming pattern is uniform and predictable, making it easy for an agent to understand and navigate the toolset.

    Tool Count5/5

    With 8 tools, the server is well-scoped for managing a VPN service. Each tool serves a specific function in the activation, setup, connection, usage, and management workflow, with no redundant or missing operations for the domain.

    Completeness5/5

    The toolset provides complete coverage for the VPN domain: account activation, setup, connection, disconnection, fetching through the VPN, node listing, status monitoring, and node switching. There are no obvious gaps, enabling agents to handle the full lifecycle without dead ends.

  • Average 4.2/5 across 8 of 8 tools scored. Lowest: 3.6/5.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full disclosure burden. It successfully communicates the authentication requirement (paid account), but omits other behavioral traits such as network latency implications, caching behavior, rate limits, or specific error conditions (e.g., what happens without an account).

    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 efficient sentences with zero waste. The first sentence establishes purpose, the second states prerequisites—earning their place with high information density.

    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 absence of an output schema, the description should ideally elaborate on return structure (e.g., array of objects with region fields). While 'with regions' hints at the payload, it lacks definitive structure guidance, leaving a gap for a tool where the description must compensate for missing output schema.

    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?

    With zero parameters and 100% schema coverage (vacuously), the baseline score of 4 applies. There are no parameters requiring semantic clarification beyond the empty schema.

    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 specific action ('List') and resource ('VPN exit nodes with regions'), establishing a distinct purpose from action-oriented siblings like 'vpn_connect' or 'vpn_switch'. However, it does not explicitly differentiate from 'vpn_fetch', which could also imply retrieval of node information.

    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 provides a critical prerequisite ('Requires an active (paid) account'), establishing an eligibility constraint. However, it lacks explicit workflow guidance (e.g., 'use this before vpn_connect to select a node') or explicit alternatives/when-not-to-use relative to sibling tools.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully adds critical behavioral context beyond the schema by stating it 'Restarts the proxy,' implying service interruption. However, it lacks details on side effects, error conditions, or whether the switch is atomic/transactional.

    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, zero waste. The first sentence states the action and target; the second provides essential implementation detail (proxy restart). Information is front-loaded and appropriately sized for a single-parameter tool.

    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 low complexity (1 param, 100% schema coverage, no output schema), the description is reasonably complete. It adequately explains the mechanism (restart) which is crucial for a VPN tool. Minor gap: could clarify whether this requires an existing connection or works from cold start.

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

    Parameters3/5

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

    Schema description coverage is 100% for the single 'node' parameter, establishing a high baseline. The description doesn't add syntax details or format examples (e.g., expected ID format), but with full schema coverage and only one parameter, additional semantic elaboration is unnecessary.

    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 provides a specific verb ('Switch'), clear resource ('VPN exit node'), and scope ('different' implies changing from current). It effectively distinguishes from siblings like vpn_connect (initial connection), vpn_activate (enabling), and vpn_status (checking state) by focusing on the transition between nodes.

    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 context through the word 'different' (suggesting an existing connection is required), but provides no explicit guidance on when to use this versus vpn_connect or vpn_activate. No prerequisites, workflow ordering, or conditions are stated.

    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?

    With no annotations provided, the description carries the full disclosure burden. It successfully reveals behavioral traits: 'Stops the local proxy' and 'WebFetch returns to direct connection' explain the network stack changes. However, it omits details about connection cleanup, timeout behavior, or state persistence.

    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 short sentences with zero waste. Front-loaded with the primary action 'Disconnect from VPN', followed by mechanism 'Stops the local proxy', and effect 'WebFetch returns to direct connection'. Every clause earns its place.

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

    Completeness4/5

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

    For a zero-parameter disconnect tool with no output schema, the description is sufficiently complete. It covers the action, mechanism, and network effects. Missing only minor details like whether active connections are force-terminated or state cleanup behavior.

    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, triggering the baseline score of 4 per the rules. No parameter documentation is required, and the description appropriately focuses on behavioral effects rather than non-existent inputs.

    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 uses specific verbs ('Disconnect', 'Stops', 'returns') with clear resources ('VPN', 'local proxy', 'WebFetch/direct connection'). It clearly distinguishes from siblings like vpn_connect and vpn_switch by explicitly stating the termination action.

    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 through stating the effects (disconnecting, stopping proxy), but provides no explicit guidance on when to use this versus alternatives like vpn_switch or vpn_activate. No 'when-not' or alternative recommendations are provided.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the auto-invocation relationship with vpn_connect, but omits critical safety details for an installation tool: whether it requires elevated privileges, if it is idempotent/safe to rerun, or where binaries are installed.

    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, zero waste. First sentence defines the operation, second defines the orchestration relationship. Every word earns its place; no redundancy or tangential 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 zero-parameter utility with no output schema, the description adequately covers the core function and sibling relationship. Minor gap: lacks permission/safety warnings typical for OS-level binary installation, but sufficient for an agent to select and invoke correctly.

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

    Parameters4/5

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

    Input schema contains zero parameters (empty object). According to evaluation rules, zero parameters establishes a baseline score of 4. The description appropriately requires no parameter clarification.

    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 specifies the action ('Download and install') and target ('VPN binary for the current OS'). The second sentence explicitly distinguishes this tool from sibling vpn_connect by stating it is 'Called automatically by vpn_connect if needed,' clarifying this is a prerequisite/setup tool rather than the connection entry point.

    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?

    Provides clear contextual guidance that vpn_connect automatically invokes this tool when needed, implying vpn_connect is the preferred entry point for users. However, it lacks explicit 'when to use manually' vs 'when to avoid' guidance beyond the automatic invocation note.

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

  • Behavior3/5

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

    With no annotations provided, the description must carry the full burden of behavioral disclosure. It compensates by listing the specific data fields returned (payment state, quota, expiry, active node), effectively substituting for a missing output schema. However, it lacks information on caching behavior, rate limits, or authentication requirements.

    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 total with zero waste. Front-loaded with the action verb, followed by a colon-delimited list of return values, and concluding with precise workflow context. Every word earns its place.

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

    Completeness4/5

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

    Given the absence of both annotations and output schema, the description adequately compensates by enumerating the status fields that would be returned. The workflow context (post-payment, pre-connect) completes the picture for a 0-parameter status tool, though an output schema would provide additional completeness.

    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 contains zero parameters, which per the evaluation guidelines establishes a baseline score of 4. The description correctly does not invent parameter documentation where none exist, and the absence of parameters is appropriate for a simple status retrieval operation.

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

    Purpose5/5

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

    The description opens with a specific verb+resource ('Check VPN account status') and immediately enumerates exactly what status components are returned: payment state, quota used/remaining, expiry, and active node. This level of specificity clearly distinguishes it from action-oriented siblings like vpn_connect or vpn_activate.

    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?

    Provides explicit temporal workflow guidance: 'Use after payment to verify activation before connecting.' This establishes the correct sequence relative to payment and connection actions, implicitly positioning the tool between vpn_activate and vpn_connect. Could be improved by explicitly naming sibling alternatives, but the guidance is clear.

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

  • Behavior4/5

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

    With no annotations provided, the description carries full behavioral disclosure burden. It explains side effects ('Starts local proxy'), conditional return values ('returns payment instructions'), and specific handling requirements ('payment address is returned directly'). Deducted one point only because it doesn't describe error states or idempotency behavior.

    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?

    Four sentences each serving distinct purposes: (1) Core action, (2)_next_step in workflow, (3) Conditional payment flow, (4) Handling constraint. Zero redundancy, front-loaded with the primary action, appropriate density for the complexity.

    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?

    No output schema exists, so the description appropriately explains return behavior for both success path (implied by 'After connecting') and the payment edge case ('returns payment instructions'). Could be improved by explicitly describing the successful connection return value format.

    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% with the 'node' parameter fully documented as 'Exit node ID (e.g. 'na-1'). Optional.' The description mentions connecting to an 'exit node' providing context but adds no syntax, validation rules, or semantic details beyond what the schema already specifies.

    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 uses a specific verb ('Connect') with a specific resource ('VPN exit node') and immediately distinguishes from siblings by stating it 'Starts local proxy' and referencing the follow-up tool 'vpn_fetch' in the workflow.

    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?

    Provides explicit sequencing guidance ('After connecting, use vpn_fetch'), states the precondition for activation/payment flow ('If the account is not yet activated'), and specifies handling constraints ('Do NOT open a browser'), clearly mapping the tool's place in the sibling tool ecosystem.

    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?

    With no annotations provided, the description carries the full burden. It discloses prerequisites (vpn_connect required first), output structure (returns status code, headers, and body), and isolation guarantees ('only vpn_fetch requests go through VPN'). Lacks explicit mention of read-only nature, timeouts, or error handling, preventing a perfect score.

    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?

    Five sentences, each earning its place: purpose, comparative usage, prerequisite, output format, and safety model. Information is front-loaded and there is no redundant 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?

    Despite no output schema, the description compensates by explicitly stating return values. Given a 4-parameter fetch tool with no annotations, it covers prerequisites, sibling differentiation, output structure, and the VPN tunneling scope completely.

    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 (url, method with default noted, headers, body), so the description appropriately delegates parameter semantics to the schema. The description focuses on behavioral context rather than repeating parameter details, which is correct for complete schemas.

    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 uses a specific verb-resource pattern ('Fetch a URL through the VPN tunnel') and explicitly distinguishes from sibling tools by contrasting with 'WebFetch' and stating this is the only request path that goes through VPN, differentiating it from the connection management siblings (vpn_connect, vpn_status, etc.).

    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 vs. alternatives ('Use this instead of WebFetch when you need the request to come from the VPN exit node IP'), prerequisites ('Requires vpn_connect() first'), and relative positioning ('This is the safe default').

    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?

    With no annotations provided, the description carries full disclosure burden effectively. It specifies return value (TON USDT address), cost (1 USDT), payment method (Tonkeeper, TonHub), auto-detection behavior, and critical constraint (no browser needed). Lacks only error-handling or idempotency details.

    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?

    Five sentences covering: purpose, return value, user instructions, technical constraints, and next-step workflow. Each sentence earns its place with zero redundancy. Front-loaded with purpose, logically sequenced through the payment flow.

    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?

    Despite lacking output schema and annotations, the description compensates by detailing exact return content (payment address, instructions) and complete workflow through to connection. No critical gaps for a payment-activation tool, though failure modes could enhance it further.

    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?

    Input schema contains zero parameters. Per calibration rules, 0 params warrants baseline 4. The tool requires no arguments and the description correctly implies this is a simple activation trigger.

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

    Purpose5/5

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

    The description opens with the specific verb 'Activate' and resource 'VPN account', clearly defining the scope. It distinguishes from siblings (vpn_connect, vpn_status) by clarifying this initiates payment/activation rather than connection or status checking.

    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 prescribes workflow: 'After the user pays, call vpn_status() to check, then vpn_connect() to start.' Includes negative constraint 'Do NOT open a browser' and specifies exact prerequisite (user must send 1 USDT via TON wallet), providing clear when-to-use and when-not-to-use guidance.

    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

vpn-mcp MCP server

Copy to your README.md:

Score Badge

vpn-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/cheeeee/vpn-mcp'

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