Operate your networks
conversationally.
Public OpenAPI spec. Model Context Protocol server. Long-lived access tokens with proper auth boundaries. Point your coding agent at wg0 and let it work.
Developers, ops teams, and anyone building AI into their infra workflow
wg0 exposes a real API, a real spec, and a real MCP surface — so your coding agent can actually do the work instead of explaining it.
Developers with coding agents
Claude Code, Cursor, Continue — whatever's in your editor. Your agent can inspect and manage your wg0 networks in-session, right alongside your code, without you tabbing into a dashboard.
Ops teams automating at scale
Onboarding, audits, and health checks across many networks. Wrap the OpenAPI client in whatever runbook tooling you already use, or let an agent drive it conversationally.
MSPs building provisioning pipelines
Customer onboarding that includes a private network as a first-class step. Scripted per-tenant network creation, device enrollment, and health reporting — no clickops required.
Teams building internal AI assistants
You're building a Slack bot or an internal copilot that can answer "is production reachable from the bastion?" wg0 drops in as a tool surface with the same token model as the rest of your stack.
The primitives an agent needs to actually operate your networks
Production-ready, documented, and stable. The MCP server, REST API, and all 42 tools ship today.
Public OpenAPI 3.1 spec
Served at /openapi.yaml. Feed it to openapi-generator-cli, any agent tool loader, Postman, or whatever codegen pipeline you already run. Every endpoint, every schema, every error shape.
llms.txt agent index
Served at /llms.txt. A curated entry point for any LLM discovering wg0 — human-readable prose that routes the model to the OpenAPI spec, the use-case pages, and the auth model without it having to crawl the site.
Model Context Protocol server
A stdio MCP server that wraps wg0 as 42 tools, 3 resources, and 4 pre-baked task prompts — audit_networks, provision_mobile_device, activate_byo_exit, roaming_investigation. Works with Claude Desktop, Claude Code, Cursor, and any MCP stdio client.
Personal Access Tokens
Long-lived automation credentials with optional expiry and instant revocation. Self-identifying wg0_pat_ prefix so secret scanners can detect leaks in the wild. Mint them in the dashboard; treat them like any other production secret.
Strict PAT management boundary
PATs cannot mint or revoke other PATs. That's enforced at the type level, not just documented in prose. A leaked token cannot create successor credentials to outlive its own revocation — the compromise stays bounded.
Machine-friendly errors
Every 4xx / 5xx response returns structured JSON with a detail field explaining exactly what went wrong. Your agent can read it, act on it, and surface a useful explanation to the user instead of a raw status code.
Real prompts, real tool calls
These are the pre-baked task prompts shipped with the MCP server — but any of them work as free-form natural language too.
Audit across networks
List all my wg0 networks, count nodes per
network, flag any network with no online
nodes or any host offline more than a day.
Agent calls list_networks + list_nodes across each network, cross-references presence and last_activity, and returns a structured health report.
Onboard a new site
Create a new native-LAN network called
'branch-3' with subnet 192.168.3.0/24,
generate an enrollment token, and give me
the exact command to run on the host.
Agent calls create_network + generate_enrollment_token and composes the one-line install for the host machine.
Provision a mobile device
Provision a new device named 'scott-pixel'
in the home-native network. It's an Android
phone. Render the wg_config as a QR code
I can scan.
Agent calls provision_device with device_kind=android, receives the wg_config, and renders a QR code inline in the chat.
Investigate roaming
The device 'scott-macbook-pro' has been
showing weird presence. Tell me what's
going on.
Agent reads presence, observed_endpoint, last_endpoint, last_activity, device_kind, and route_all_active, then explains the roaming pattern in plain English.
From zero to agent-operated in six steps
If you've used any modern API product, this is going to feel familiar.
-
Mint a Personal Access Token
Sign in at login.wg0.io. Click API keys → + New token. Name it something like
claude-desktop, set an expiry, click Mint token. Copy the value — it's shown exactly once. -
Store it like any production secret
The token format is
wg0_pat_...— self-identifying so GitGuardian, Trufflehog, and other secret scanners can detect it if it leaks. Put it in your secrets manager, your keychain, or your editor's credential store. Never checked into source control. -
Verify the token works
Hit
/api/v1/networkswithAuthorization: Bearer wg0_pat_...onconnect.wg0.io. You should get your network list back as JSON. If you don't, the error body will tell you why. -
Generate a typed client (optional)
The OpenAPI spec at
/openapi.yamldocuments every endpoint. Feed it toopenapi-generator-cli,orval, or your preferred codegen and you'll have a typed client in any language in under a minute. -
Wire up the MCP server
For MCP integration, add the remote connector at
https://mcp.wg0.io/mcp, or run the bundled stdio server from the public repo. Once connected, 42 tools show up immediately — no per-tool glue code required. -
Run your first task prompt
Start with one of the examples above — "List my networks, flag anything offline" is a good first probe. Watch the tool trace, confirm the auth path is working, then iterate. From there, the constraint on what your agent can do is your imagination, not the API.
What agents cannot do (by design)
wg0's auth boundaries are deliberate. We want agents to be capable operators inside their scope — not able to escalate out of it.
- PAT management is JWT-only. Minting and revoking tokens cannot be done with a PAT. A leaked PAT cannot create successor credentials to survive its own revocation.
- The admin surface is gated by a separate header.
/api/v1/admin/*requires anX-Admin-Keyheader and is not reachable via any PAT, ever. - Account deletion requires a browser session. Destructive account-level actions never happen over automation.
- These boundaries are type-enforced. Not "we recommend," not "please don't." The server literally cannot route a PAT-authenticated request to a PAT-management handler.
What's coming next
We'd rather tell you what's missing than surprise you when you hit it. This is the short list.
- Fine-grained PAT scopes. Today, every PAT shares the owning user's authority minus PAT management. Read-only PATs — "let Claude query but not change anything" — are on the roadmap.
- OAuth 2.0 client credentials flow. For server-to-server integrations that prefer standard OAuth over bearer PATs.
- SSO / SAML for dashboard login. For teams that want to gate wg0 access behind their existing identity provider.
- Published MCP directory listing. We'll be in the public MCP catalogs as soon as listing is generally available.
- Per-token usage metrics. Which PAT is calling what, how often — for attribution and cost tracking in larger deployments.
Built for the AI-era operator
We ship the spec, the tokens, and the MCP server with the same care as the dashboard. Bring your agent.