From unifi-protect
Walk the user through setting up UniFi Protect NVR credentials and persist them to `~/.mcp.json` so the MCP server can authenticate on every Claude Code launch.
npx claudepluginhub pzharyuk/ai-claude-plugins --plugin unifi-protectThis skill uses the workspace's default tool permissions.
Walk the user through setting up UniFi Protect NVR credentials and persist them to `~/.mcp.json` so the MCP server can authenticate on every Claude Code launch.
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
Walk the user through setting up UniFi Protect NVR credentials and persist them to ~/.mcp.json so the MCP server can authenticate on every Claude Code launch.
Say: "What is the URL of your UniFi Protect NVR or console? (e.g. https://192.168.1.1 or https://unifi.local)"
Store as UNIFI_HOST.
Say: "What is your UniFi Protect admin username?"
Store as UNIFI_USERNAME.
Say: "What is your UniFi Protect admin password?"
Store as UNIFI_PASSWORD.
Say: "Should SSL certificates be verified? Most homelabs use self-signed certs. Enter true or false (default: false)."
Default to false if unsure. Store as UNIFI_VERIFY_SSL.
Use Python to read ~/.mcp.json (create if missing), set the env vars under the unifi-protect server, and write it back:
import json, os
path = os.path.expanduser("~/.mcp.json")
config = {}
if os.path.exists(path):
with open(path) as f:
config = json.load(f)
config.setdefault("mcpServers", {}).setdefault("unifi-protect", {}).setdefault("env", {}).update({
"UNIFI_HOST": "<value from step 1>",
"UNIFI_USERNAME": "<value from step 2>",
"UNIFI_PASSWORD": "<value from step 3>",
"UNIFI_VERIFY_SSL": "<value from step 4>"
})
with open(path, "w") as f:
json.dump(config, f, indent=2)
print("Saved.")
Say: "UniFi Protect credentials saved to ~/.mcp.json. Run /reload-plugins to apply them."
~/.mcp.json is missing, create it with the full structure.