# ZeroTier — Pipedream Connect

> Use the easiest to manage and most widely supported network virtualization platform to connect all your devices, cloud VMs, and apps as if the whole world is one big cloud region!

- API slug: `zerotier` (use in MCP headers and tool keys)
- Auth: API key (Pipedream-managed)
- Categories: Infrastructure & Cloud
- Website: https://www.zerotier.com/
- This page (HTML): https://pipedream.com/apps/zerotier
- Tools: 10 actions · 4 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: zerotier`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "zerotier",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Authorize Network Member:
const result = await mcp.callTool({
  name: "zerotier-authorize-network-member",
  arguments: {
    networkId: "Network",
    nodeId: "Node",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a ZeroTier endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://my.zerotier.com/api/v1/org

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9teS56ZXJvdGllci5jb20vYXBpL3YxL29yZw?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "zerotier-authorize-network-member",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    zerotier: { authProvisionId: "apn_xxxxxxx" },
    networkId: "Network",
    nodeId: "Node",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (10)

### `zerotier-authorize-network-member` — Authorize Network Member (Write)

Authorize a specific member (node) in a network. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/authorize-network-member.md

### `zerotier-create-network` — Create A Network (Write)

Create a new network on your ZeroTier account. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/create-network.md

### `zerotier-delete-network-member` — Delete Network Member (Write)

Delete a specific member (node) in a network. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/delete-network-member.md

### `zerotier-get-status` — Get Account Status (Read-only)

Get the overall account status. Returns the overall status of the account tied to the API token in use. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-status.md

### `zerotier-get-network` — Get Network (Read-only)

Get a specific network. Returns a single network. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-network.md

### `zerotier-get-network-node` — Get Network Node (Read-only)

Get a specific node of a specific network. Returns an individual member (node) on a network. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-network-node.md

### `zerotier-get-network-nodes` — Get Network Nodes (Read-only)

Get the nodes of a specific network. Returns a list of members (nodes) on the network. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-network-nodes.md

### `zerotier-get-networks` — Get Networks (Read-only)

Get all networks. Returns a list of Networks you have access to. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-networks.md

### `zerotier-get-user` — Get User (Read-only)

Get a specific user. Returns a single user. See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/get-user.md

### `zerotier-update-network-member` — Update Network Member (Write)

Update a specific member (node) within a network. Can authorize, rename, hide a member (as well as other updates). See docs here

Full schema: https://pipedream.com/apps/zerotier/actions/update-network-member.md

## Triggers (4)

### `zerotier-new-node-join` — New Node Join (Polling)

Emit new event when a node joins a network. See docs here

Full schema: https://pipedream.com/apps/zerotier/triggers/new-node-join.md

### `zerotier-new-node-left` — New Node Left (Polling)

Emit new event when a node left a network. See docs here

Full schema: https://pipedream.com/apps/zerotier/triggers/new-node-left.md

### `zerotier-new-node-offline` — New Node Offline (Polling)

Emit new event for each offline node. See docs here

Full schema: https://pipedream.com/apps/zerotier/triggers/new-node-offline.md

### `zerotier-new-node-online` — New Node Online (Polling)

Emit new event for each online node. See docs here

Full schema: https://pipedream.com/apps/zerotier/triggers/new-node-online.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
