咖啡机监控协议服务器

用于Gaggiuino改装咖啡机的模型上下文协议服务器,支持实时监控、萃取分析和冲泡配置文件管理。

  • by sgerlach
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sgerlach/grr-gaggiuino-mcp

使用说明

grr-gaggiuino-mcp

MCP(模型上下文协议)服务器 加吉乌伊诺-改良的浓缩咖啡机。

从任何兼容MCP的客户端监控您的机器、分析注射并管理冲泡配置文件。

工具

工具 说明
get_status 实时机器状态:温度、压力、重量、水位、活动曲线、酿造/蒸煮状态
get_shot 使用具有时间序列曲线(压力、流量、温度、重量)和剖面的快照数据。默认为最新拍摄。
get_profiles 列出所有带有ID和选择状态的酿造配置文件
select_profile 通过ID激活酿造配置文件

安装

先决条件

  • Node.js 18+
  • 您本地网络上的Gaggiuino改良浓缩咖啡机

选项1:npx(最简单)

无需安装-只需配置Claude Desktop以使用npx:

{
  "mcpServers": {
    "gaggiuino": {
      "command": "npx",
      "args": ["grr-gaggiuino-mcp"],
      "env": {
        "GAGGIUINO_BASE_URL": "http://YOUR_GAGGIUINO_IP"
      }
    }
  }
}

选项2:克隆和构建

git clone https://github.com/sgerlach/grr-gaggiuino-mcp.git
cd grr-gaggiuino-mcp
npm install
npm run build

Claude桌面配置

添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "gaggiuino": {
      "command": "node",
      "args": ["/path/to/grr-gaggiuino-mcp/dist/index.js"],
      "env": {
        "GAGGIUINO_BASE_URL": "http://YOUR_GAGGIUINO_IP"
      }
    }
  }
}

备注:如果使用nvm,请指定节点18+的完整路径:

"command": "/Users/you/.nvm/versions/node/v20.x.x/bin/node"

配置

变量 默认值 描述
GAGGIUINO_BASE_URL http://192.168.3.248 您的Gaggiuino的IP或主机名
REQUEST_TIMEOUT 5000 API超时(以毫秒为单位)

测试

# With MCP Inspector
npm run inspect

# Direct run
GAGGIUINO_BASE_URL=http://YOUR_IP npm start

示例工作流

快速状态检查

You: "Is my machine ready to pull a shot?"
→ get_status: temp 93°C (target 93°C), pressure stable, water level 85%

点一杯新咖啡

You: "I have a new bag of coffee - Ethiopian Yirgacheffe, light roast,
      tasting notes of blueberry and citrus. It's 10 days off roast.
      What profile should I start with?"

→ LLM recommends a profile based on the coffee characteristics

You: "OK I pulled the shot, analyze it"
→ get_shot returns pressure/flow/temp curves

You: "It tasted sour and watery"
→ LLM analyzes the shot data against your taste feedback:
   "The pressure ramped too quickly and flow was high (4.2 ml/s).
    Try grinding 2 steps finer. The 6:1 ratio in 24s suggests
    under-extraction - aim for 28-32s."

You: "Pulled another shot after adjusting"
→ get_shot for the new shot
→ "Much better - pressure curve is smoother, 2.8 ml/s flow.
    How did it taste?"

射击分析和故障排除

You: "My shots have been channeling lately, look at my last few shots"
→ get_shot (latest), get_shot (id: previous)
→ LLM identifies pressure spikes/instability indicating channeling

You: "Compare this shot to yesterday's good one"
→ Side-by-side analysis of shot curves

配置文件管理

You: "What profiles do I have?"
→ get_profiles lists all available profiles

You: "Switch to my low-pressure blooming profile"
→ select_profile activates it

You: "Pull a shot and tell me if this profile works for my current beans"
→ get_shot + analysis based on bean characteristics you've shared

迭代拨入会话

You: "Let's dial in this coffee. Medium-dark Brazilian, chocolate/nutty,
      for milk drinks. 18g dose, targeting 36g out."

→ LLM suggests starting parameters and profile

[Pull shot 1]
You: "Done, check it"
→ get_shot → "23 seconds, slightly fast. Bitter finish suggests
   over-extraction at the end despite short time - likely channeling.
   Grind 1 step finer and improve puck prep."

[Pull shot 2]
You: "Better prep this time"
→ get_shot → "27 seconds, smooth pressure curve. How's the taste?"

You: "Really good! Balanced, nice chocolate, good body for a cortado"
→ "Great - this is your baseline. Shot data saved.
    Current recipe: 18g → 36g in 27s, Profile: X"

单位换算

Gaggiuino API返回的值单位为分位数。此服务器将它们转换为标准单位:

原始API 已转换
分秒 秒
分贝 巴
摄氏度
分克 克
分毫升/秒 毫升/秒

API 参考

基于 使用 REST API.

许可证

麻省理工学院