# AnchoredIP

> Dedicated static outbound IPv4 over WireGuard. Free 7-day trial, no card, no sales call.

- name: com.anchoredip/anchoredip
- version: 1.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.anchoredip%2Fanchoredip
- tools: https://api.protogrid.dev/v1/servers/com.anchoredip%2Fanchoredip/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "anchoredip": {
      "type": "http",
      "url": "https://api.anchoredip.com/api/mcp/"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-7d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: set_reverse_dns (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); create_tunnel (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_plans (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,356 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 1,356 tokens to load them all
- tool set hash: 8c43ef354d72de38c92f064b69b479b1
- badge: [![protogrid quality](https://protogrid.dev/badge/com.anchoredip/anchoredip.svg)](https://protogrid.dev/servers/com.anchoredip/anchoredip)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://api.anchoredip.com/api/mcp/ (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `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.
- `lease_status`: Everything about one lease: whether it is active, which addresses it holds, its tunnels and when it renews.
- `list_plans`: The published catalogue with live prices and which payment methods each plan accepts. Prices are never hardcoded; read them here.
- `order_lease`: Place an order. The trial plan is free and activates immediately; paid plans return payment details and stay pending until settled. No account or card is needed to order. A second trial for the same billing email is refused — order a paid plan instead, which needs no approval.
- `renew_lease`: Raise an invoice for another term and keep the same addresses. This is how a trial becomes a paying customer: the address does not change, so whatever the customer's partner has already allowlisted goes on working. A trial cannot renew into itself, so name the plan to move to — called without one it returns the plans that can be moved to. Pressing it twice quotes the same reference rather than raising a second invoice.
- `revoke_tunnel`: Retire a peer and hand its slot back to the plan's allowance. An agent that provisions a tunnel per short-lived worker and never revokes one exhausts the allowance and then cannot bring the next machine up. Revoking the peer that holds the public address stops inbound connections to it and cannot be undone by promoting another — only by bringing a new machine up.
- `set_autorenew`: Stop this lease charging the customer's card again, or start it again. Only a card subscription can be stopped — a bank transfer is a payment the customer sends us, so there is nothing of ours to cancel. Stopping is not a cancellation: the lease runs to the end of the period already paid for, and the same call turns it back on.
- `set_reverse_dns`: Publish a PTR record for an address on the lease. Live within a second; an empty hostname removes it.
