io.github.ljcl/gaggiuino-mcp MCP Server
io.github.ljcl/gaggiuino-mcp
What is the io.github.ljcl/gaggiuino-mcp MCP server?
Remote MCP server for your Gaggiuino espresso machine's shots and profiles
How to install io.github.ljcl/gaggiuino-mcp
Copy-paste configuration for popular MCP clients.
GAGGIUINO_URLGaggiuino machine URL (default http://gaggiuino.local)
PORTServer port (default 8000)
HOSTBind address (default 0.0.0.0)
MCP_PUBLIC_URLPublic https origin clients reach this server on, with no path (e.g. https://box.tailnet.ts.net). Set with MCP_OAUTH_SECRET to enable OAuth; it is advertised as the OAuth resource and must match the URL entered in the client exactly
MCP_OAUTH_SECRETsecretSigning key for self-issued OAuth access and refresh tokens, at least 32 characters (openssl rand -hex 32). Keep it stable across restarts so clients stay signed in
MCP_OAUTH_PASSPHRASE_HASHsecretscrypt hash of the passphrase you type on the OAuth consent page, in the form scrypt$N$r$p$salt$hash. Required whenever OAuth is enabled. Generate with `bun run hash-passphrase` — never store the passphrase itself
MCP_ALLOWED_ORIGINSComma-separated browser origins allowed to call /mcp, or * to allow any (unsafe). Requests with no Origin header are unaffected
MCP_ALLOWED_HOSTSComma-separated Host header values to accept on /mcp. Empty disables host validation
{
"mcpServers": {
"gaggiuino-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/gaggiuino-mcp:3.2.0"
],
"env": {
"GAGGIUINO_URL": "<YOUR_GAGGIUINO_URL>",
"PORT": "<YOUR_PORT>",
"HOST": "<YOUR_HOST>",
"MCP_PUBLIC_URL": "<YOUR_MCP_PUBLIC_URL>",
"MCP_OAUTH_SECRET": "<YOUR_MCP_OAUTH_SECRET>",
"MCP_OAUTH_PASSPHRASE_HASH": "<YOUR_MCP_OAUTH_PASSPHRASE_HASH>",
"MCP_ALLOWED_ORIGINS": "<YOUR_MCP_ALLOWED_ORIGINS>",
"MCP_ALLOWED_HOSTS": "<YOUR_MCP_ALLOWED_HOSTS>"
}
}
}
}{
"mcpServers": {
"gaggiuino-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/gaggiuino-mcp:3.2.0"
],
"env": {
"GAGGIUINO_URL": "<YOUR_GAGGIUINO_URL>",
"PORT": "<YOUR_PORT>",
"HOST": "<YOUR_HOST>",
"MCP_PUBLIC_URL": "<YOUR_MCP_PUBLIC_URL>",
"MCP_OAUTH_SECRET": "<YOUR_MCP_OAUTH_SECRET>",
"MCP_OAUTH_PASSPHRASE_HASH": "<YOUR_MCP_OAUTH_PASSPHRASE_HASH>",
"MCP_ALLOWED_ORIGINS": "<YOUR_MCP_ALLOWED_ORIGINS>",
"MCP_ALLOWED_HOSTS": "<YOUR_MCP_ALLOWED_HOSTS>"
}
}
}
}{
"mcpServers": {
"gaggiuino-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/gaggiuino-mcp:3.2.0"
],
"env": {
"GAGGIUINO_URL": "<YOUR_GAGGIUINO_URL>",
"PORT": "<YOUR_PORT>",
"HOST": "<YOUR_HOST>",
"MCP_PUBLIC_URL": "<YOUR_MCP_PUBLIC_URL>",
"MCP_OAUTH_SECRET": "<YOUR_MCP_OAUTH_SECRET>",
"MCP_OAUTH_PASSPHRASE_HASH": "<YOUR_MCP_OAUTH_PASSPHRASE_HASH>",
"MCP_ALLOWED_ORIGINS": "<YOUR_MCP_ALLOWED_ORIGINS>",
"MCP_ALLOWED_HOSTS": "<YOUR_MCP_ALLOWED_HOSTS>"
}
}
}
}{
"servers": {
"gaggiuino-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/ljcl/gaggiuino-mcp:3.2.0"
],
"env": {
"GAGGIUINO_URL": "<YOUR_GAGGIUINO_URL>",
"PORT": "<YOUR_PORT>",
"HOST": "<YOUR_HOST>",
"MCP_PUBLIC_URL": "<YOUR_MCP_PUBLIC_URL>",
"MCP_OAUTH_SECRET": "<YOUR_MCP_OAUTH_SECRET>",
"MCP_OAUTH_PASSPHRASE_HASH": "<YOUR_MCP_OAUTH_PASSPHRASE_HASH>",
"MCP_ALLOWED_ORIGINS": "<YOUR_MCP_ALLOWED_ORIGINS>",
"MCP_ALLOWED_HOSTS": "<YOUR_MCP_ALLOWED_HOSTS>"
}
}
}
}claude mcp add gaggiuino-mcp --env GAGGIUINO_URL=<YOUR_GAGGIUINO_URL> --env PORT=<YOUR_PORT> --env HOST=<YOUR_HOST> --env MCP_PUBLIC_URL=<YOUR_MCP_PUBLIC_URL> --env MCP_OAUTH_SECRET=<YOUR_MCP_OAUTH_SECRET> --env MCP_OAUTH_PASSPHRASE_HASH=<YOUR_MCP_OAUTH_PASSPHRASE_HASH> --env MCP_ALLOWED_ORIGINS=<YOUR_MCP_ALLOWED_ORIGINS> --env MCP_ALLOWED_HOSTS=<YOUR_MCP_ALLOWED_HOSTS> -- docker run -i --rm ghcr.io/ljcl/gaggiuino-mcp:3.2.0