linode-mcp
by jcavaiuolo
README.md
# linode-mcp
MCP server that wraps the Linode API v4 for use in Claude Desktop.
## Auth
Reads the API token from a local file at `~/.config/linode-mcp/token`
(falls back to the `LINODE_API_TOKEN` environment variable if set, but note
that on macOS, GUI apps like Claude Desktop don't reliably inherit env vars
set via `launchctl setenv` — the file is the reliable path).
The token is never hardcoded in this repo. If you're sharing this folder
with someone else, they need to create their own token file — nothing here
grants access to your Linode account.
## Setup
1. Install dependencies:
```
cd ~/Desktop/mcp-servers/linode-mcp
npm install
```
2. Create a Linode Personal Access Token: Linode Cloud Manager → profile
icon → API Tokens → Create a Personal Access Token. Grant it access to
whichever scopes you want this MCP to manage (Read/Write on Linodes,
Volumes, Domains, etc., or broader if you want the full API surface to
work).
3. Save the token to the local file:
```
mkdir -p ~/.config/linode-mcp
echo -n "your-token-here" > ~/.config/linode-mcp/token
chmod 600 ~/.config/linode-mcp/token
```
4. Register the server in
`~/Library/Application Support/Claude-3p/claude_desktop_config.json`
under `mcpServers`. Note: Claude Desktop does not honor the `cwd` field,
so a bare relative path or `cwd` alone won't work. Using a shell wrapper
with `$HOME` keeps this portable (no hardcoded username) if the project
lives at `~/Desktop/linode-mcp` for whoever runs it:
```json
"linode": {
"command": "/bin/sh",
"args": ["-c", "exec node \"$HOME/Desktop/mcp-servers/linode-mcp/mcp-index.js\""]
}
```
If your copy lives somewhere other than `~/Desktop/mcp-servers/linode-mcp`,
adjust the path inside the quotes accordingly.
5. Fully quit (Cmd+Q) and relaunch Claude Desktop. Check
Developer → Local MCP servers to confirm `linode` connects. The logs
there will show which token source was used (masked, plus a SHA-256
fingerprint for verification — never the raw token).
## Tools
Covers Linode instances (create/list/reboot/resize/rebuild/clone/delete),
types/regions/images, Block Storage volumes, DNS domains & records,
networking (IPs/firewalls), NodeBalancers, LKE clusters, StackScripts,
and account/billing info — plus a generic `linode_api_request` pass-through
tool for any endpoint not explicitly wrapped.
## Sharing this folder
Safe to share as-is — no secrets live in this directory. The recipient
just needs to follow steps 1-5 above with their own Linode token.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues