lucidlink-mcp-cloudflared
One command, one URL: serve the LucidLink MCP to any MCP client that supports remote connectors — claude.ai (web, mobile, Cowork), Cursor, Codex, and friends — through a Cloudflare quick tunnel.
uvx lucidlink-mcp-cloudflared
starts the team gateway and prints one connector URL
(https://<random>.trycloudflare.com/mcp). Add it once to your client
(claude.ai: Settings → Connectors); each person who connects enrolls with their
own service-account token and gets their own isolated backend, identity, and
audit trail. Ctrl+C kills server, tunnel, and URL together — nothing
persists anywhere. Details under Team mode.
For a personal, no-OAuth endpoint (the URL itself is the credential):
uvx lucidlink-mcp-cloudflared solo
prints https://<random-words>.trycloudflare.com/<secret>/mcp, paste-ready,
and self-tests it over the exact edge-and-back path a remote client will use.
Why a separate package
The official lucidlink-mcp package deliberately never spawns a tunnel
vendor's binary or routes your traffic anywhere — its --http mode binds a
local port and leaves the pipe to you. This companion is the
explicitly-chosen convenience that adds the pipe. Installing it is the
opt-in.
Prerequisites
- A LucidLink service-account token per person (a workspace admin mints
them in the LucidLink admin app under Service Accounts). No pre-setup
needed: in team mode each member pastes their token on the enrollment
page when they click Connect; in
solomode, first run walks you through pasting and verifying yours — the same wizard aslucidlink-mcp-setup, saved to the same~/.lucidlink/mcp-config.jsonevery LucidLink MCP client reads. cloudflaredon PATH — never downloaded for you:- macOS:
brew install cloudflared - Windows:
winget install --id Cloudflare.cloudflared - Linux: Cloudflare's downloads page
- macOS:
Flags
Bare invocation takes team serve flags: --port, --write (mutating
tools for every member that session), --idle-timeout, --max-backends,
--public-url (your own pipe instead of a quick tunnel).
solo flags:
--port N— local port (default 8000; always binds loopback)--write— register mutating tools (read-only by default)--path-secret SECRET— bring your own secret path segment (one is always generated otherwise; a public quick-tunnel URL never runs without one)
Team mode: one URL, per-member auth
The default command (team serve spelled out):
uvx lucidlink-mcp-cloudflared team serve
It prints one connector URL (https://<host>/mcp). Add it once as a
remote connector in your MCP client (claude.ai: Settings → Connectors —
on Team/Enterprise plans a workspace Owner does this; members then connect
individually). When a member connects,
their browser lands on the gateway's enrollment page and they paste their
own service-account token — verified with LucidLink, stored only on the
gateway box (0600). The client receives an opaque, revocable OAuth token
per member; SA tokens never pass through an admin, a URL, or a conversation.
Each member gets their own backend process under their own SA — own
permissions, own audit identity, own locks and rate limits — spawned lazily
on first request and reaped when idle (--idle-timeout, default 15 min;
--max-backends caps concurrent members, default 8; budget roughly one
client stack plus ~1 GB cache per active member).
Admin console:
uvx lucidlink-mcp-cloudflared team list # who's enrolled
uvx lucidlink-mcp-cloudflared team remove maria # revoke: kills all her tokens
uvx lucidlink-mcp-cloudflared team allow-write maria # register mutating tools for her
uvx lucidlink-mcp-cloudflared team revoke-write maria # back to read-only (the default)
Write grants apply when the member's backend next spawns — restart the
gateway (or wait for the idle reap) after changing one. For a sandbox
session where everyone should be able to write (demo filespace, kicking
the tires), skip the per-member ceremony: team serve --write registers
mutating tools for every member for that session only.
Caveat that matters: OAuth binds to the hostname, and a quick tunnel mints a
new hostname every restart — the whole team reconnects. Fine for a demo;
a real deployment runs team serve --public-url https://mcp.yourco.example
behind a named tunnel or reverse proxy.
What to know before pasting the URL anywhere
- The URL is a bearer credential. Anyone who has it has the endpoint. Treat it like a password; it dies on Ctrl+C and a restart mints a new one.
- The model reading files is the exposure. Content the agent reads enters your conversation and your AI provider's infrastructure under your plan's data terms. The tunnel adds Cloudflare's edge as a TLS terminator in the path.
- Quick tunnels are best-effort. No SLA; a reconnect mints a new
hostname (re-paste in your client). For anything persistent, run the official
package behind your own pipe instead — see this package's
docs/REMOTE-HOSTING.md.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lucidlink_mcp_cloudflared-0.2.0.tar.gz.
File metadata
- Download URL: lucidlink_mcp_cloudflared-0.2.0.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48aa3cf864546c4a680e73f816be541912477cdc3fcff0a7a908625d977b30a4
|
|
| MD5 |
6dcb5af41499691d40c893e779d78f99
|
|
| BLAKE2b-256 |
81364a37f256a7d53940d8ae0fa1d184c509065d2acfae8fa65ca07319551d7f
|
File details
Details for the file lucidlink_mcp_cloudflared-0.2.0-py3-none-any.whl.
File metadata
- Download URL: lucidlink_mcp_cloudflared-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
510b09093bdd08e3833d6aaedc78d67a4255dbb6518369773089daca22c42bf1
|
|
| MD5 |
bfa3a7e90c07c916b57b6785dce15d3f
|
|
| BLAKE2b-256 |
41d60a99c7d50f4304448043a2b98f0359a53e348bfacb16bfa7596797d292d9
|