{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_swed4ay8jrf6","handle":"tailscale-blade-mcp","url":"https://wellknown.network/agents/tailscale-blade-mcp","links":{"self":"https://wellknown.network/agents/tailscale-blade-mcp/record.json","html":"https://wellknown.network/agents/tailscale-blade-mcp","markdown":"https://wellknown.network/agents/tailscale-blade-mcp/record.md","api":"https://wellknown.network/api/v1/agents/tailscale-blade-mcp","status":"https://wellknown.network/api/v1/agents/tailscale-blade-mcp/status","claim":"https://wellknown.network/agents/tailscale-blade-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/tailscale-blade-mcp/claim.json","badge":"https://wellknown.network/agents/tailscale-blade-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/tailscale-blade-mcp/history","tools":"https://wellknown.network/api/v1/agents/tailscale-blade-mcp/tools"},"ard":{"identifier":"urn:air::server:tailscale-blade-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"tailscale-blade-mcp","summary":"MCP server for Tailscale network monitoring and security — devices, ACLs, DNS, keys, users, audit logs","description":"# tailscale-blade-mcp\n\nAn MCP server that gives AI agents structured access to Tailscale tailnets. Built for the [Model Context Protocol](https://modelcontextprotocol.io) with security visibility and token efficiency as first-class design goals.\n\n## Why this exists\n\nTailscale exposes a clean REST API (v2) for managing devices, ACL policies, DNS, auth keys, users, and audit logs. This MCP wraps it with the guardrails that automated agents need:\n\n- **Security-first tool set** — 19 tools focused on what network security agents actually need: device inventory, key expiry auditing, ACL review + apply, route approval, DNS hygiene. Not a thin wrapper around every endpoint.\n- **Token-efficient output** — compact pipe-delimited format. A 20-device tailnet in ~40 tokens per device. Devices flagged with `KEY_EXPIRY_OFF`, `KEY_EXPIRED`, `UPDATE_AVAILABLE`, `UNAUTHORIZED`, `OFFLINE` at a glance.\n- **Write-gated mutations** — device authorization, tagging, key management, route approval, and ACL apply require explicit opt-in via `TAILSCALE_WRITE_ENABLED=true`. Destructive operations (delete device, revoke key) additionally require per-call `confirm=true`; ACL apply defaults to optimistic-concurrency (`If-Match`) so it won't silently clobber a concurrent edit.\n- **SecOps visibility** — ACL policy summary shows groups, rules, SSH rules, and tag owners. Audit log shows who changed what. Key listing flags reusable keys and expiry status.\n\n## How this differs from other Tailscale MCPs\n\n| | tailscale-blade-mcp | HexSleeves/tailscale-mcp | jaxxstorm/tailscale-mcp |\n|---|---|---|---|\n| **Focus** | Monitoring + security (19 tools) | Management (~15 tools) | Read-only (~5 tools) |\n| **Design for** | LLM agents (token-efficient) | Claude Code | General MCP |\n| **Output** | Pipe-delimited, compact | Full JSON | Full JSON |\n| **Write safety** | Dual-gated (env + confirm) | Direct writes | Read-only |\n| **Audit log** | Yes | No | No |\n| **ACL summary** | Parsed groups/rules/SSH/tags | Raw JSO…","publisher":{"name":"groupthink-dev","url":null},"homepage":null,"repository":null,"version":"0.9.0","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:tailscale-blade-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":0.825,"provenance":"derived"},{"slug":"dev.monitoring","name":"Monitoring & Observability","confidence":0.802,"provenance":"derived"}],"categories":["dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"tailscale-blade-mcp","registry":"pypi","observedAt":"2026-11-04T02:26:16.434Z","publishedAt":"2026-06-11T17:26:41.168403Z","latestVersion":"0.9.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"tailscale-blade-mcp","url":"https://pypi.org/project/tailscale-blade-mcp/","firstSeenAt":"2026-09-10T13:20:43.307Z","fetchedAt":"2026-11-04T02:24:11.051Z","normalizedAt":"2026-11-04T02:24:11.051Z"}]},"firstSeenAt":"2026-09-10T13:20:43.307Z","updatedAt":"2026-11-04T02:26:16.434Z"}