Manages a homelab through Docker, OPNsense and TrueNAS integrations.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add homelab-bshandley --env API_KEY='<API_KEY>' --env CAPABILITY_LEVEL='<CAPABILITY_LEVEL>' --env OPNSENSE_API_KEY='<OPNSENSE_API_KEY>' --env OPNSENSE_API_SECRET='<OPNSENSE_API_SECRET>' --env OPNSENSE_HOST='<OPNSENSE_HOST>' --env TRUENAS_API_KEY='<TRUENAS_API_KEY>' --env TRUENAS_HOST='<TRUENAS_HOST>' -- node /path/to/homelab-mcp/dist/index.js~/.codex/config.toml
[mcp_servers.homelab-bshandley]
command = "node"
args = ["/path/to/homelab-mcp/dist/index.js"]
env = { API_KEY = "<API_KEY>", CAPABILITY_LEVEL = "<CAPABILITY_LEVEL>", OPNSENSE_API_KEY = "<OPNSENSE_API_KEY>", OPNSENSE_API_SECRET = "<OPNSENSE_API_SECRET>", OPNSENSE_HOST = "<OPNSENSE_HOST>", TRUENAS_API_KEY = "<TRUENAS_API_KEY>", TRUENAS_HOST = "<TRUENAS_HOST>" }
# codex mcp add homelab-bshandley --env API_KEY='<API_KEY>' --env CAPABILITY_LEVEL='<CAPABILITY_LEVEL>' --env OPNSENSE_API_KEY='<OPNSENSE_API_KEY>' --env OPNSENSE_API_SECRET='<OPNSENSE_API_SECRET>' --env OPNSENSE_HOST='<OPNSENSE_HOST>' --env TRUENAS_API_KEY='<TRUENAS_API_KEY>' --env TRUENAS_HOST='<TRUENAS_HOST>' -- node /path/to/homelab-mcp/dist/index.js~/.cursor/mcp.json
{
"mcpServers": {
"homelab-bshandley": {
"command": "node",
"args": [
"/path/to/homelab-mcp/dist/index.js"
],
"env": {
"API_KEY": "<API_KEY>",
"CAPABILITY_LEVEL": "<CAPABILITY_LEVEL>",
"OPNSENSE_API_KEY": "<OPNSENSE_API_KEY>",
"OPNSENSE_API_SECRET": "<OPNSENSE_API_SECRET>",
"OPNSENSE_HOST": "<OPNSENSE_HOST>",
"TRUENAS_API_KEY": "<TRUENAS_API_KEY>",
"TRUENAS_HOST": "<TRUENAS_HOST>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"homelab-bshandley": {
"type": "stdio",
"command": "node",
"args": [
"/path/to/homelab-mcp/dist/index.js"
],
"env": {
"API_KEY": "<API_KEY>",
"CAPABILITY_LEVEL": "<CAPABILITY_LEVEL>",
"OPNSENSE_API_KEY": "<OPNSENSE_API_KEY>",
"OPNSENSE_API_SECRET": "<OPNSENSE_API_SECRET>",
"OPNSENSE_HOST": "<OPNSENSE_HOST>",
"TRUENAS_API_KEY": "<TRUENAS_API_KEY>",
"TRUENAS_HOST": "<TRUENAS_HOST>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"homelab-bshandley": {
"command": "node",
"args": [
"/path/to/homelab-mcp/dist/index.js"
],
"env": {
"API_KEY": "<API_KEY>",
"CAPABILITY_LEVEL": "<CAPABILITY_LEVEL>",
"OPNSENSE_API_KEY": "<OPNSENSE_API_KEY>",
"OPNSENSE_API_SECRET": "<OPNSENSE_API_SECRET>",
"OPNSENSE_HOST": "<OPNSENSE_HOST>",
"TRUENAS_API_KEY": "<TRUENAS_API_KEY>",
"TRUENAS_HOST": "<TRUENAS_HOST>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"homelab-bshandley": {
"command": "node",
"args": [
"/path/to/homelab-mcp/dist/index.js"
],
"env": {
"API_KEY": "<API_KEY>",
"CAPABILITY_LEVEL": "<CAPABILITY_LEVEL>",
"OPNSENSE_API_KEY": "<OPNSENSE_API_KEY>",
"OPNSENSE_API_SECRET": "<OPNSENSE_API_SECRET>",
"OPNSENSE_HOST": "<OPNSENSE_HOST>",
"TRUENAS_API_KEY": "<TRUENAS_API_KEY>",
"TRUENAS_HOST": "<TRUENAS_HOST>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"homelab-bshandley": {
"command": "node",
"args": [
"/path/to/homelab-mcp/dist/index.js"
],
"env": {
"API_KEY": "<API_KEY>",
"CAPABILITY_LEVEL": "<CAPABILITY_LEVEL>",
"OPNSENSE_API_KEY": "<OPNSENSE_API_KEY>",
"OPNSENSE_API_SECRET": "<OPNSENSE_API_SECRET>",
"OPNSENSE_HOST": "<OPNSENSE_HOST>",
"TRUENAS_API_KEY": "<TRUENAS_API_KEY>",
"TRUENAS_HOST": "<TRUENAS_HOST>"
}
}
}
}Environment variables
API_KEYCAPABILITY_LEVELOPNSENSE_API_KEYOPNSENSE_API_SECRETOPNSENSE_HOSTTRUENAS_API_KEYTRUENAS_HOST
Replace the placeholders with your own credentials and keep them out of version control.