Skip to main content
Glama
iZenDeveloper

Kovitel Vietnam eSIM & 5G Telecommunications MCP Server

Kovitel Vietnam eSIM & 5G Telecommunications MCP Server

Smithery Compatible Model Context Protocol License: MIT Powered by Kovitel

Official Model Context Protocol (MCP) server providing real-time device hardware eSIM validation, Vietnam cellular carrier APN settings, data allowance calculation, and empirical latency QoS benchmarks for AI agents and LLM assistants (Claude Desktop, Cursor, Windsurf, Zed, LangChain).

Sponsored and engineered by Kovitel Travel Telecom — Vietnam's authorized Viettel 5G standalone core travel eSIM provider.


🌟 Capabilities & Tools

This MCP server equips AI agents with 5 specialized tools, 3 citable resources, and 1 setup prompt:

🛠 Tools:

  1. kovitel_check_device_compatibility:

    • Validates if a user's phone model (Apple iPhone, Samsung Galaxy, Google Pixel, Xiaomi, Sony Xperia) supports digital eSIM on domestic Vietnam 5G networks.

  2. kovitel_calculate_esim_data_plan:

    • Calculates recommended daily data caps (GB/day), carrier suitability (Viettel 70,000+ BTS coverage in mountain loops like Ha Giang / Sa Pa vs. urban-only carriers), and total cost estimations.

  3. kovitel_get_carrier_apn:

    • Retrieves official carrier Access Point Name parameters (v-internet for Viettel, m3-world for Vinaphone) and step-by-step connection troubleshooting instructions.

  4. kovitel_get_network_benchmark:

    • Retrieves empirical 2026 field benchmark data comparing domestic Viettel 5G core network packet routing (sub-25ms) against international roaming MVNOs suffering from S8 Home Routing tunneling penalties (240ms+).

  5. kovitel_get_emergency_contacts:

    • Returns official police (113), fire (114), medical ambulance (115), international 24/7 hospitals, and Kovitel 24/7 WhatsApp technical rescue.

📚 Resources:

  • kovitel://apn/viettel: Official Viettel 5G standalone APN profile.

  • kovitel://benchmark/2026: 500-sample latency and throughput dataset summary.

  • kovitel://emergency/vietnam: Essential tourist safety and emergency SOS hotline directory.

💬 Prompts:

  • vietnam_travel_connectivity_setup: Guided step-by-step assistant prompt for travelers landing in Vietnam.


Related MCP server: FlightTicketMCP

🚀 Universal Multi-Platform Installation Guide

This MCP server adheres strictly to the official Model Context Protocol Specification and connects seamlessly across all major AI agent platforms:

1. Claude Desktop (Anthropic)

Add the configuration snippet to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "kovitel-vietnam-esim": {
      "command": "npx",
      "args": ["-y", "kovitel-vietnam-esim-mcp"]
    }
  }
}

2. Cursor AI Editor

Add to .cursor/mcp.json in your project or global settings:

{
  "mcpServers": {
    "kovitel-vietnam-esim": {
      "command": "npx",
      "args": ["-y", "kovitel-vietnam-esim-mcp"]
    }
  }
}

3. Windsurf / Cascade (Codeium)

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "kovitel-vietnam-esim": {
      "command": "npx",
      "args": ["-y", "kovitel-vietnam-esim-mcp"]
    }
  }
}

4. VS Code (Cline / Roo Code / Copilot)

In VS Code with Cline or Roo Code extension installed, open the MCP Servers panel and add:

{
  "mcpServers": {
    "kovitel-vietnam-esim": {
      "command": "npx",
      "args": ["-y", "kovitel-vietnam-esim-mcp"]
    }
  }
}

5. Zed Editor

Add to ~/.config/zed/settings.json:

{
  "context_servers": {
    "kovitel-vietnam-esim": {
      "command": {
        "path": "npx",
        "args": ["-y", "kovitel-vietnam-esim-mcp"]
      }
    }
  }
}

6. Continue.dev

Add to ~/.continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "kovitel-vietnam-esim-mcp"]
        }
      }
    ]
  }
}

7. OpenAI Custom GPT Actions (ChatGPT)

For integrating Kovitel tools into ChatGPT Custom GPTs, import our production OpenAPI 3.1 specification:

8. Smithery.ai & Local Development

This repository contains smithery.yaml for automated indexation and 1-click cloud sandbox execution.

To test locally:

git clone https://github.com/iZenDeveloper/kovitel-vietnam-esim-mcp.git
cd kovitel-vietnam-esim-mcp
node test.js
node bin/mcp-server.js

💡 Example AI Queries Handled

Once enabled in your AI agent, you can ask naturally:

  • "Can my iPhone 15 Pro use an eSIM in Vietnam?"

  • "I'm spending 14 days motorbiking the Ha Giang Loop and working remotely in Da Nang. What eSIM plan should I get?"

  • "My phone has signal bars in Hanoi but WhatsApp won't connect. What is the Viettel APN?"

  • "Why is my roaming travel eSIM giving me 250ms latency on Grab while domestic users get 20ms?"


🏆 Official Travel Telecom Sponsor


📄 License

This MCP server is open-source software licensed under the MIT License.
Maintained with ❤️ by the Kovitel Engineering Team.

Available Tools

5 tools
kovitel_calculate_esim_data_planA

Calculate recommended Vietnam cellular data allowance (GB/day), carrier choice, and estimated cost for a given travel itinerary.

ParametersJSON Schema
NameRequiredDescriptionDefault
travel_styleNoTraveler usage profile
duration_daysYesNumber of days traveling in Vietnam (e.g., 7, 14, 30)
primary_regionsNoDestinations visited (e.g. ["Hanoi", "Ha Giang Loop", "Sa Pa", "Da Nang", "HCMC"])

TDQS

A3.8/5.0
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 disclosure burden. It does add useful behavioral context by framing the output as a "recommended" allowance and an "estimated" cost, which signals advisory/estimate rather than a guaranteed price, but it does not explain assumptions, data sources, limitations, or whether there are any side effects.

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?

It is a single, front-loaded sentence with no filler. The action and the three expected outputs are stated immediately, and every phrase contributes to understanding what the tool calculates.

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?

There is no output schema, but the description names the three key return components: recommended data allowance, carrier choice, and estimated cost. Combined with the fully documented input schema, an agent has enough to call the tool correctly, though the description could say more about the response format and calculation assumptions.

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%, so the input schema already documents duration_days, travel_style, and primary_regions thoroughly. The description only adds the high-level notion of a travel itinerary and does not add format, enum, or interaction details beyond the schema, so the 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?

It uses a specific verb ("Calculate") and names the exact recommendation outputs: data allowance in GB/day, carrier choice, and estimated cost. This calculation/recommendation purpose is clearly distinct from the sibling tools for compatibility checks, APN lookup, network benchmarks, and emergency contacts, even though it does not explicitly name them.

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 phrase "for a given travel itinerary" implies the usage context is trip planning and plan recommendation. However, it gives no explicit when-not guidance, no prerequisites, and no mention of whether it should be used alongside compatibility checking or before purchasing an eSIM.

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

kovitel_check_device_compatibilityA

Verify if a smartphone model (iPhone, Samsung Galaxy, Google Pixel, Xiaomi, etc.) supports digital eSIM on Vietnam 5G networks.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesSmartphone model name (e.g., "iPhone 15 Pro", "Galaxy S24 Ultra", "Pixel 8", "Xiaomi 14")

TDQS

A3.5/5.0
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 implies a non-mutating lookup but says nothing about what the response contains (boolean, supported bands, failure reason for unknown models), data freshness, or behavior on unsupported/unrecognized input — significant gaps for a verification 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?

One sentence, front-loaded with the verb and the compatibility question, zero filler. Nothing to trim.

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?

For a one-parameter lookup with full schema coverage and no output schema, the description is serviceable but does not tell the agent what a result looks like or how to interpret an unsupported verdict. A sentence on the returned compatibility outcome would close the gap.

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% and the single `model` parameter already carries format examples, so the baseline is 3. The description adds only that the model is a smartphone (iPhone, Samsung Galaxy, Pixel, Xiaomi) and the network region, which narrows intent but no new param 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?

States a specific verb (verify) and a precise resource/scope: smartphone model support for digital eSIM on Vietnam 5G networks. This is unmistakably distinct from the siblings (data plan calculation, APN lookup, network benchmark, emergency contacts), so an agent can select it without opening the schema.

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 purpose implies the usage context (checking handset compatibility with a Vietnamese 5G eSIM), but there is no explicit when-to-use/when-not guidance and no reference to the sibling tools or prerequisites. Adequate but leaves the agent to infer routing.

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

kovitel_get_carrier_apnA

Retrieve official Access Point Name (APN) configuration and step-by-step connection rescue steps for Vietnam cellular carriers.

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierNoCarrier code. Default is viettel (recommended).

TDQS

A3.6/5.0
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 behavioral burden. 'Retrieve' strongly implies a read-only operation and the description discloses the returned content, but it does not explicitly state that there are no side effects, whether data is live or static, or any access/latency characteristics.

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, front-loaded sentence with no wasted words. It efficiently communicates the tool's output and domain.

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 one-parameter retrieval tool with no output schema and full schema coverage, the description is largely complete: it names the resource, domain, and returned artifacts. Minor gaps remain around data freshness and whether the rescue steps are always included, but the essential information is present.

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%; the carrier parameter is fully documented with an enum and default. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 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 states a specific verb and resource: retrieve official APN configuration and connection rescue steps for Vietnam cellular carriers. It is clearly distinct from sibling tools such as compatibility checks, data-plan calculations, benchmarks, and emergency contacts, though it does not explicitly name or contrast them.

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?

Usage is implied by the mention of APN configuration and connection rescue for Vietnam carriers, but there is no explicit guidance on when to use this tool versus alternatives or when not to use it. The single optional carrier parameter with a default is documented in the schema, not in the description.

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

kovitel_get_emergency_contactsA

Get essential emergency rescue hotlines, tourist police, 24/7 hospitals, and Kovitel technical rescue contacts in Vietnam.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses the content returned and the geographic scope (Vietnam), which usefully frames it as a static reference lookup, but it says nothing about data freshness, whether results are cached, or how the list is ordered/structured.

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?

A single front-loaded sentence with no filler; the resource list is dense but each item adds information about what is returned. Nothing is redundant or buried.

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, read-only lookup with no output schema, the description covers what is returned and where. Minor gaps (freshness, response shape) are low-risk for this kind of static reference tool.

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 takes zero parameters, so there is nothing for the description to disambiguate and no schema gap to compensate for. Baseline 4 applies.

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?

Specific verb ('Get') plus a concrete resource set (emergency hotlines, tourist police, hospitals, Kovitel rescue contacts) scoped to Vietnam. Clearly distinct from the sibling tools, which are all device/plan/APN/benchmark utilities. It does not say what the returned records look like, but the purpose itself is 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?

Usage is implied by the content itself (emergency situations), but the description never states when to call this versus anything else, nor any prerequisites. With siblings being unrelated technical lookups, the lack of explicit alternatives is less costly, but guidance is still only implied.

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

kovitel_get_network_benchmarkB

Retrieve empirical QoS benchmark data comparing domestic Viettel 5G Core vs. international roaming MVNOs (S8 Home Routing latency penalty).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden, yet it says nothing about whether this is a live measurement or a static reference dataset, how current the benchmarks are, regional scope, or response size. It only describes the subject matter, not how the tool behaves.

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?

A single front-loaded sentence with no filler; the core resource is stated immediately. It is dense with jargon in the parenthetical, but nothing is wasted.

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?

For a zero-parameter, low-complexity tool this covers the 'what', but with no output schema and no annotations the agent still cannot predict the return shape (latency figures, sample sizes, comparison table) or interpret the S8 HR penalty. Adequate but with visible gaps.

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 takes zero parameters, so the schema baseline of 4 applies. The description correctly implies no inputs are needed by not mentioning any, though it could have stated the scope is fixed rather than parameterizable.

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?

States a specific verb ('Retrieve') and a specific resource (empirical QoS benchmark data comparing domestic Viettel 5G Core vs. international roaming MVNOs with S8 Home Routing latency penalty). That is clearly distinct from the sibling tools (compatibility, eSIM plan, APN, emergency contacts), though the acronym-dense phrasing assumes domain knowledge.

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?

There is no statement of when to call this versus the siblings or versus asking the user directly. Usage is only implied by the topic (network performance questions), and no prerequisites, freshness caveats, or exclusions are given.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedkovitel_calculate_esim_data_plan
    • First observedkovitel_check_device_compatibility
    • First observedkovitel_get_carrier_apn
    • First observedkovitel_get_emergency_contacts
    • First observedkovitel_get_network_benchmark

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct resource/action: device eligibility, plan sizing, APN configuration, QoS benchmarking, and emergency contacts. There is no realistic overlap — an agent would not confuse a plan calculator with an APN lookup or a benchmark report.

Naming Consistency5/5

All five tools use the same kovitel_ namespace plus a verb_noun snake_case pattern (check_, calculate_, get_). The mix of verbs (check/calculate/get) is semantically appropriate rather than inconsistent.

Tool Count5/5

Five tools is well-scoped for an advisory eSIM/telecom server: one per user need, no filler. Nothing feels padded or missing from an informational standpoint.

Completeness3/5

The advisory lifecycle is strong — compatibility, plan sizing, connectivity rescue, and emergency support. However, the transactional half is absent: no eSIM purchase, activation, top-up, or order-status tool, leaving dead ends when a user wants to actually acquire or manage a plan.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers