{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.ljcl/gaggiuino-mcp","description":"Remote MCP server for your Gaggiuino espresso machine's shots and profiles","repository":{"url":"https://github.com/ljcl/gaggiuino-mcp","source":"github"},"version":"4.0.0","websiteUrl":"https://github.com/ljcl/gaggiuino-mcp#readme","packages":[{"registryType":"oci","identifier":"ghcr.io/ljcl/gaggiuino-mcp:4.0.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp"},"environmentVariables":[{"description":"Gaggiuino machine URL (default http://gaggiuino.local)","format":"string","name":"GAGGIUINO_URL"},{"description":"Server port (default 8000)","format":"number","name":"PORT"},{"description":"Bind address (default 0.0.0.0)","format":"string","name":"HOST"},{"description":"Public 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","format":"string","name":"MCP_PUBLIC_URL"},{"description":"Signing 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","format":"string","isSecret":true,"name":"MCP_OAUTH_SECRET"},{"description":"scrypt 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","format":"string","isSecret":true,"name":"MCP_OAUTH_PASSPHRASE_HASH"},{"description":"External OAuth issuer URL to delegate token issuing to (e.g. a Keycloak or Authentik realm). Puts the server in resource-server-only mode; requires MCP_PUBLIC_URL and refuses to start alongside MCP_OAUTH_SECRET or MCP_OAUTH_PASSPHRASE_HASH","format":"string","name":"MCP_OAUTH_ISSUER"},{"description":"Comma-separated browser origins allowed to call /mcp, or * to allow any (unsafe). Requests with no Origin header are unaffected","format":"string","name":"MCP_ALLOWED_ORIGINS"},{"description":"Comma-separated Host header values to accept on /mcp. Empty disables host validation","format":"string","name":"MCP_ALLOWED_HOSTS"},{"description":"Log verbosity: debug, info, warn, error, or silent (default info). Logs are one JSON object per line on stderr","format":"string","name":"LOG_LEVEL"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-23T05:29:26.495761Z","publishedAt":"2026-08-23T05:29:26.495761Z","updatedAt":"2026-08-23T05:29:26.495761Z","isLatest":true}}}
