Skip to main content
Glama

create_tunnel

Provision a peer and return its WireGuard configuration. Three routing modes, and the right one depends on the machine.

source (the default) sends only traffic from the leased address through us and leaves the default route alone — but it is written with wg-quick PostUp rules that invoke ip, so it runs on Linux under wg-quick and nowhere else. On macOS it aborts and deletes the interface.

full works in every client but claims the default route, so it cannot run beside an always-on corporate VPN.

destinations routes only the addresses you name. It needs no PostUp and takes no default route, so it runs in any client on any platform, and it matches what is usually being bought — one partner seeing a fixed address. It survives beside a VPN that installs a default route, but not one that captures traffic below the routing table. It cannot receive inbound connections from anywhere but those destinations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNoFor the customer's own reference.
transportNoDefaults to wireguard. Use amneziawg where deep packet inspection blocks a plain WireGuard handshake; it needs an AmneziaWG client rather than wg-quick.
access_tokenYesReturned by order_lease. The only credential for a lease.
destinationsNoAddresses or ranges to route through the tunnel, like 203.0.113.10 or 203.0.113.0/24. Required with routing_mode=destinations and rejected without it. Ask the user which partner requires the address rather than guessing a range.
routing_modeNoDefaults to source, which is Linux only. Use destinations when the machine is not a Linux server, or when only certain partners need to see the address.

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral burden and does so thoroughly. It discloses failure modes (source aborts and deletes the interface on macOS), side effects (full claims the default route), and interactions with existing VPNs. This is far beyond minimal disclosure.

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 well-structured, front-loaded with the core purpose, and every sentence earns its place. The mode-by-mode breakdown is dense but highly informative, with no fluff or repetition.

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

Completeness5/5

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

For a tool with 5 params, no annotations, and no output schema, the description is remarkably complete. It covers routing modes, platform compatibility, VPN interactions, transport selection, and parameter semantics. The return value ('WireGuard configuration') is stated, making the tool fully understandable.

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

Parameters5/5

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

Schema description coverage is 100%, but the description adds substantial meaning beyond the schema. It explains the real-world implications of routing_mode, clarifies the destinations parameter's requirements, and contextualizes transport choices. The schema lists fields; the description explains how and why to choose.

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: 'Provision a peer and return its WireGuard configuration.' This clearly distinguishes the tool from siblings like revoke_tunnel and order_lease, and the routing mode discussion further clarifies the tool's scope.

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?

The description explicitly states when to use each routing mode, including platform limitations (source is Linux-only), conflict scenarios (full cannot run beside an always-on corporate VPN), and user guidance ('Ask the user which partner requires the address rather than guessing a range'). This is exemplary usage guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct aspect: tunnel provisioning/revocation, lease status/ordering/renewal/autorenew, plan listing, and DNS. There is no overlap in core actions, even renew_lease and set_autorenew are clearly manual vs. automatic controls.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (create_tunnel, list_plans, order_lease, renew_lease, revoke_tunnel, set_autorenew, set_reverse_dns). The exception is 'lease_status', which is a noun phrase rather than a verb command, though it is readable and consistent enough not to cause confusion.

Tool Count5/5

With 8 tools, the set is well-scoped for IP leasing management. It covers provisioning, lifecycle, billing, and DNS configuration without being bloated or thin.

Completeness4/5

Core workflows are covered: order, renew, autorenew, status, tunnels, and DNS. The main gap is the lack of a direct 'cancel lease' or 'delete lease' operation, though stopping autorenew and letting the lease lapse covers this to some extent. No listing of all leases is another minor omission.

Resources