细致的Espresso配置文件MCP服务器
MCP(模型上下文协议)服务器,用于管理您的细致意式浓缩咖啡机上的浓缩咖啡配置文件。使用Claude Desktop或Goose等人工智能助手创建、验证和管理espresso配置文件,而无需深入应用程序或手动JSON编辑。
什么是细致的MCP?
细致的MCP允许您通过AI代理在您的机器上创建和安装细致的配置文件。
你可以使用自然语言来描述你想要的配置文件类型、所需的阶段、流速、温度等,代理会为你构建一个配置文件——不需要JSON或在应用程序中摆弄。该服务器帮助代理商了解浓缩咖啡档案,并为他们提供工具,通过API与您的Meticulous互动。该服务器由精心设计的“Python API”、精心设计的浓缩咖啡配置文件模式以及Lance Hedrick、Aramse和Home-Barista.com的智慧构建而成。Agent的知识库需要工作,并将随着时间的推移而发展。它并不完美,你可能不喜欢它的建议,但你可以通过具体的指导来解决这个问题。
您必须能够通过STDIO访问可以使用桌面/本地MCP的代理。这方面的热门客户包括Claude Desktop、Goose、LibreChat、Cherry Studio和LM Studio。它只在Goose、Cursor和Claude Desktop上进行了测试。ChatGPT当前无法调用桌面上的MCP工具。
免责声明
⚠️ 重要免责声明: 请自行承担使用细致MCP的风险。没有任何形式的保证,如果你的人工智能构建了一个奇怪的配置文件,阻碍了你的细致,创作者不承担责任。MCP服务器只是一个通信层,允许AI与您的细致对话。虽然有配置文件验证,并且细致无法加载某些类型的奇怪配置文件,但我们无法保证一切。唯一的安全限制是15巴的压力,这似乎是应用程序中的限制。 请在运行应用程序之前检查您的个人资料。 特别是,模型越不智能,它可能会犯的错误就越多,包括正确提交JSON。服务器会向模型反馈其提交错误,以便它可以重试,但有些模型还不够好,无法自行修复。如果你的模型在多次尝试后都无法正确提交,那就尝试一个更智能的模型。
最后, 细致的MCP不是细致家居的产物请不要因为细致的MCP而打扰细致的开发团队。我们不是故意提交给细致的,因为它不符合细致的审查标准。服务器是构建配置文件的有趣工具,而不是产品的一部分。
有乐趣分析!
快速开始
第一步:安装Python 3.11+
雨衣:
# Check if you have Python 3.11+
python3.11 --version
# If not installed, install via Homebrew:
brew install python@3.11窗户:
- 从以下网址下载Python 3.11+ python.org
- 在安装过程中,勾选“将Python添加到PATH”
- 验证安装:打开命令提示符并运行
python --version
步骤2:下载存储库
从GitHub下载或克隆细致MCP存储库:
选项1:使用Git进行克隆
git clone https://github.com/twchad/meticulous-mcp.git
cd meticulous-mcp选项2:下载ZIP
- 访问
- 点击绿色的“代码”按钮
- 选择“下载ZIP”
- 将下载的文件解压缩到您的首选位置
步骤3:安装依赖项
导航到 meticulous-mcp 目录和安装:
cd meticulous-mcp
pip install -r requirements.txt注: 所有依赖项(包括 pyMeticulous 和MCP SDK)通过以下方式从PyPI自动安装 requirements.txt.
步骤4:配置MCP客户端
将细致的MCP服务器添加到您的MCP客户端配置中。
适用于克劳德桌面
雨衣: 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: 编辑 %APPDATA%\Claude\claude_desktop_config.json
添加此配置:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python3.11",
"args": [
"/absolute/path/to/meticulous-mcp/meticulous-mcp/run_server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/meticulous-mcp/meticulous-mcp/src"
}
}
}
}替换 /absolute/path/to/meticulous-mcp 使用克隆存储库的路径。
注: run_server.py 自动在内部设置路径,因此 PYTHONPATH 是可选的,但作为一种保障。所有其他依赖关系(pyMeticulous, mcp)在步骤3中通过pip安装。
Mac示例:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python3.11",
"args": [
"/Users/yourname/meticulous-mcp/meticulous-mcp/run_server.py"
],
"env": {
"PYTHONPATH": "/Users/yourname/meticulous-mcp/meticulous-mcp/src"
}
}
}
}Windows示例:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python",
"args": [
"C:\\Users\\YourName\\meticulous-mcp\\meticulous-mcp\\run_server.py"
],
"env": {
"PYTHONPATH": "C:\\Users\\YourName\\meticulous-mcp\\meticulous-mcp\\src"
}
}
}
}Windows注意事项: 使用反睫毛(\\)在路径和分号中(;)在PYTHONPATH。
对于光标
编辑 ~/.cursor/mcp.json (Mac)或 %APPDATA%\Cursor\mcp.json (Windows)并添加与上述相同的配置。
步骤5:测试您的设置(可选)
雨衣:
cd meticulous-mcp
python3.11 test_server.py或者从父目录运行(确保包含正斜杠):
python3.11 meticulous-mcp/test_server.py窗户:
cd meticulous-mcp
python test_server.py或者从父目录运行(确保包含反斜杠):
python meticulous-mcp\test_server.py您应该看到:
Testing imports...
✓ Successfully imported meticulous_mcp.server
✓ Server name: Meticulous Espresso Profile Server
✓ All imports successful!步骤6:重新启动MCP客户端
- 克劳德桌面: 退出并重新启动Claude Desktop
- 光标: 重新启动游标
您的细致MCP服务器现在应该可用了!
替代方案:Docker设置
如果你更喜欢容器化部署,你可以通过Docker而不是上面的本地设置来运行服务器。
先决条件
- 码头工人 和 安装。
- 本地网络上的细致机器。
构建与运行
- 克隆存储库(如果您还没有)并输入:
git clone https://github.com/twchad/meticulous-mcp.git
cd meticulous-mcp- 配置您机器的地址。默认值为
http://meticulous.local(mDNS)。要覆盖,请执行以下任一操作:
- 设置环境变量: export METICULOUS_API_URL=http://192.168.1.5 - 或者创建一个 .env 文件: echo "METICULOUS_API_URL=http://192.168.1.5" > .env
- 构建和启动:
docker compose up -d --build --wait连接您的MCP客户端(Docker)
选项1:SSE/HTTP(推荐)
无论容器是本地还是远程都有效:
{
"mcpServers": {
"meticulous": {
"url": "http://:8080/mcp"
}
}
}选项2:Docker Exec(仅限本地)
{
"mcpServers": {
"meticulous": {
"command": "docker",
"args": [
"exec", "-i", "meticulous-mcp-server",
"python", "meticulous-mcp/run_server.py"
]
}
}
}你能做什么
连接后,您可以要求您的AI助手:
- 机器信息 -“我的机器正在运行什么固件?”
- 管理设置 -“启用自动预热”或“更改声音主题”
- 访问拍摄历史记录 -“获取我最后一次拍摄的日志文件”
- 创建浓缩咖啡档案 -“使用…创建新的浓缩咖啡档案”
- 列出个人资料 -“显示我所有的浓缩咖啡档案”
- 获取个人资料详细信息 -“向我显示配置文件X的详细信息或向我解释此配置文件。”
- 更新配置文件 -“将配置文件X修改为…”
- 重复配置文件 -“复制配置文件X并将其命名为Y”
- 验证配置文件 -“检查此配置文件JSON是否有效”
- 选择配置文件 -“在机器上选择配置文件X”(不启动)
- 运行配置文件 -“在计算机上执行配置文件X”
代理对话示例
下面是一个现实的例子,说明人工智能代理将如何与您的细致机器交互,以创建新的浓缩咖啡配置文件:
用户: “我想为我的淡烤埃塞俄比亚咖啡制作一个涡轮增压咖啡。我想要一个明亮、清澈、酸度好的咖啡。”
代理人: “我将创建一个针对轻度烘焙咖啡进行优化的涡轮喷射配置文件。该配置文件将使用更高的温度和1:3的比例来提高亮度和清晰度。”
客服电话: create_profile 具有以下数据:
{
"name": "Turbo Light Roast v1",
"author": "AI Assistant",
"temperature": 94.0,
"final_weight": 54.0,
"stages": [
{
"name": "Preinfusion",
"key": "preinfusion",
"type": "flow",
"dynamics_points": [[0, 6]],
"dynamics_over": "time",
"dynamics_interpolation": "linear",
"exit_triggers": [
{"type": "pressure", "value": 1.5, "comparison": ">="},
{"type": "time", "value": 20, "comparison": ">="}
]
},
{
"name": "Infusion",
"key": "infusion",
"type": "pressure",
"dynamics_points": [[0, 6.0], [3, 6.0]],
"dynamics_over": "time",
"dynamics_interpolation": "linear",
"exit_triggers": [
{"type": "time", "value": 15, "comparison": ">="},
{"type": "weight", "value": 35, "comparison": ">="}
],
"limits": [{"type": "flow", "value": 8}]
},
{
"name": "Decline",
"key": "decline",
"type": "pressure",
"dynamics_points": [[0, 6.0], [10, 3.0]],
"dynamics_over": "time",
"dynamics_interpolation": "linear",
"exit_triggers": [
{"type": "weight", "value": 54, "comparison": ">="},
{"type": "time", "value": 30, "comparison": ">="}
]
}
]
}来自细致机器的回应:
{
"profile_id": "d188ba5f-4939-489a-9c0e-38fb879c9fdd",
"profile_name": "Turbo Light Roast v1",
"message": "Profile 'Turbo Light Roast v1' created successfully"
}最终配置文件JSON发送到细致的机器:
{
"name": "Turbo Light Roast v1",
"id": "d188ba5f-4939-489a-9c0e-38fb879c9fdd",
"author": "AI Assistant",
"author_id": "f2d7b244-b2cd-4f9d-ae27-baee5f9ebaa8",
"display": {
"image": "/api/v1/profile/image/f9e16abcc19c1a34deaa9c2ac3bc7653.png",
"accentColor": "#5098C8"
},
"temperature": 94.0,
"final_weight": 54.0,
"stages": [
{
"name": "Preinfusion",
"key": "preinfusion",
"type": "flow",
"dynamics": {
"points": [[0.0, 6.0]],
"over": "time",
"interpolation": "linear"
},
"exit_triggers": [
{"type": "pressure", "value": 1.5, "relative": false, "comparison": ">="},
{"type": "time", "value": 20.0, "relative": false, "comparison": ">="}
],
"limits": []
},
{
"name": "Infusion",
"key": "infusion",
"type": "pressure",
"dynamics": {
"points": [[0.0, 6.0], [3.0, 6.0]],
"over": "time",
"interpolation": "linear"
},
"exit_triggers": [
{"type": "time", "value": 15.0, "relative": false, "comparison": ">="},
{"type": "weight", "value": 35.0, "relative": false, "comparison": ">="}
],
"limits": [{"type": "flow", "value": 8.0}]
},
{
"name": "Decline",
"key": "decline",
"type": "pressure",
"dynamics": {
"points": [[0.0, 6.0], [10.0, 3.0]],
"over": "time",
"interpolation": "linear"
},
"exit_triggers": [
{"type": "weight", "value": 54.0, "relative": false, "comparison": ">="},
{"type": "time", "value": 30.0, "relative": false, "comparison": ">="}
],
"limits": []
}
]
}代理人: “我为您的埃塞俄比亚咖啡创建了一个名为‘turbo Light Roast v1’的涡轮增压咖啡档案。它的作用如下:
- 温度: 94°C(适合轻度烘焙以提取甜味)
- 预输注: 以6ml/s的速度快速流动,直至压力达到1.5巴
- 灌输: 保持6巴的压力以快速提取(在35g或15秒时退出)
- 拒绝: 逐渐将压力从6巴降至3巴,以获得光滑的表面
- 最终产量: 54克(1:3比例,明亮如茶般清澈)
配置文件现在保存在您的细致机器上,可以使用了!"
此示例显示了什么
- 自然语言输入: 用户用简单的英语描述他们想要什么
- 特工情报: AI理解请求并应用espresso分析知识
- 结构化API调用: 代理使用所有必填字段构造正确的JSON
- 自动标准化: 缺少字段,如
relative和limits自动添加 - 机器就绪输出: 最终的JSON完全符合细致模式
- 用户友好的响应: 代理以易于理解的方式解释配置文件的功能
特性
- 结构化配置文件创建:使用类型化参数而不是原始JSON创建配置文件
- 配置文件验证:根据JSON模式验证配置文件,并显示有用的错误消息
- 配置文件管理:列出、获取、更新、复制和删除配置文件
- 配置文件执行:在机器上加载和运行配置文件
- MCP资源:访问espresso知识、模式参考和配置文件作为资源
- MCP提示:创建和修改配置文件的提示模板
高级配置
配置您的计算机地址
设置 METICULOUS_API_URL 环境变量到您机器的地址。每台细致的机器都有一个唯一的主机名(例如。 meticulousmodel.local).您可以在计算机的设置中找到它,或直接使用IP地址。
选项1:环境变量(推荐)
添加 METICULOUS_API_URL MCP客户端配置的环境变量:
Mac示例:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python3.11",
"args": [
"/Users/yourname/meticulous-mcp/meticulous-mcp/run_server.py"
],
"env": {
"PYTHONPATH": "/Users/yourname/meticulous-mcp/meticulous-mcp/src",
"METICULOUS_API_URL": "http://your-machine-name.local"
}
}
}
}Windows示例:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python",
"args": [
"C:\\Users\\YourName\\meticulous-mcp\\meticulous-mcp\\run_server.py"
],
"env": {
"PYTHONPATH": "C:\\Users\\YourName\\meticulous-mcp\\meticulous-mcp\\src",
"METICULOUS_API_URL": "http://your-machine-name.local"
}
}
}
}选项2:系统环境变量
Mac(终端):
export METICULOUS_API_URL=http://your-machine-name.localMac(持久-添加到 ~/.zshrc 或 ~/.bash_profile):
echo 'export METICULOUS_API_URL=http://your-machine-name.local' >> ~/.zshrc
source ~/.zshrcWindows(命令提示符):
set METICULOUS_API_URL=http://your-machine-name.localWindows(持久-系统属性):
- 右键单击“这台电脑”→ 属性
- 高级系统设置→ 环境变量
- 添加新的系统变量:
METICULOUS_API_URL=http://your-machine-name.local
必修的: METICULOUS_API_URL 必须设置。没有它,服务器将无法启动。
替代方案:直接使用Python模块
如果你更喜欢直接使用Python模块而不是run脚本:
雨衣:
{
"mcpServers": {
"meticulous-mcp": {
"command": "python3.11",
"args": [
"-m",
"meticulous_mcp.server"
],
"env": {
"PYTHONPATH": "/Users/yourname/meticulous-mcp/meticulous-mcp/src"
}
}
}
}窗户: 格式相同,但使用 python 而不是 python3.11.
注: 使用模块方法时(-m meticulous_mcp.server),the PYTHONPATH 环境变量为 必需的 因为模块需要知道在哪里找到依赖关系。
故障排除
Python版本问题
问题: 错误关于 match 语句或语法错误
解决方案: 确保你使用的是Python 3.11或更高版本:
- 雨衣:
python3.11 --version - 窗户:
python --version
导入错误
问题: 未找到模块错误
解决方案:
- 如果使用
run_server.py:脚本应自动处理路径,但要确保在MCP配置中设置PYTHONPATH作为保护 - 如果使用模块方法(
-m meticulous_mcp.server):需要Python - 验证您的PYTHONPATH是否包括
meticulous-mcp/src - 确保安装了依赖项:
pip install -r meticulous-mcp/requirements.txt
Windows上的路径问题
问题: 带有空格的路径不起作用
解决方案:
- 使用双反睫毛:
C:\\Users\\YourName\\Meticulous MCP\\... - 或者使用正斜杠:
C:/Users/YourName/Meticulous MCP/... - Windows Python接受这两种格式
服务器未连接
问题: MCP客户端无法连接到服务器
解决:
- 检查配置中的Python路径是否正确
- 验证
run_server.py路径是绝对正确的 - 手动测试:
python3.11 /path/to/run_server.py(应该开始时没有错误) - 检查是否安装了所有依赖项:
pip install -r requirements.txt
配置文件创建错误
问题: 代理在尝试创建配置文件时出错
解决:
- 确保您的MCP服务器是最新的(更新后重新启动MCP客户端)
- 检查代理是否可以访问espresso分析知识资源
- 试着让代理人更简单地重新表述你的请求
- 如果错误仍然存在,请检查错误消息,并尝试先创建一个更简单的配置文件
未找到机器
问题: 无法连接到细致的机器
解决:
- 验证您的计算机是否已通电并且位于同一网络上
- 检查计算机设置中的主机名
- 集
METICULOUS_API_URL环境变量(请参阅高级配置) - 尝试访问
http://your-machine-name.local在浏览器中
工具参考
获取中文信息
获取机器设备信息(固件、序列号、名称等)。
获取设置/更新设置
读取和修改机器设置,如 auto_preheat, enable_sounds等等。
list_shot_history/get_shot_url
按日期浏览历史记录,并检索快照日志的直接下载链接。
创建文件
使用结构化参数创建新的浓缩咖啡配置文件。
必填字段:
name:配置文件名称author:作者姓名temperature:酿造温度,单位为摄氏度(通常为82-96°C)final_weight:目标输出重量(单位:克)stages:舞台对象数组(见上面的示例对话)
可选字段:
variables:动态值的自定义变量accent_color:十六进制颜色代码(例如“#FF5733”)image:配置文件图像的Base64数据URI或相对URL
list_profiles
列出所有可用的配置文件。
get_profile
按ID获取完整的个人资料详细信息。
update_profile
更新现有配置文件。
必填字段:
profile_id:要更新的配置文件的ID
可选字段:
name:新配置文件名称temperature:新温度(摄氏度)final_weight:新的目标重量(单位:克)image:配置文件图像的Base64数据URI或相对URLstages_json:包含更新的stages数组的JSON字符串
例子:
{
"profile_id": "profile-uuid-here",
"name": "Updated Name",
"temperature": 92.0
}重复配置文件
复制配置文件,并可选择对其进行修改。
删除文件
永久删除配置文件。
validate_profile
根据模式验证配置文件JSON。
选择文件
在机器显示器上选择一个配置文件。
run_profile
加载并执行配置文件(不保存)。
获取_归档_知识
获取浓缩咖啡分析的专业知识。接受a topic 参数:
rfc-Open Espresso配置文件格式RFCguide-通用分析指南schema-JSON模式引用mechanics-精细的硬件公理(液压惯性、传感、触发行为、转换)
资源
espresso://knowledge-Espresso分析知识espresso://schema-配置文件架构引用espresso://rfc-Open Espresso配置文件格式RFCmeticulous://mechanics-机器特定的物理和控制公理espresso://profile/{id}-个人资料作为资源
提示
create_espresso_profile-创建配置文件的提示模板modify_espresso_profile-修改配置文件的提示模板troubleshoot_profile-诊断射击问题的提示模板
发展
运行测试:
pytest依赖项
所有依赖项都是通过安装的 pip install -r meticulous-mcp/requirements.txt.
许可证
本项目根据GNU通用公共许可证v3.0或更高版本(GPL-3.0或更高)获得许可。
GPL 3合规性
该项目取决于 pyMeticulous,根据GPL 3.0许可。因此,该项目也根据GPL copyleft要求在GPL 3.0下获得许可。
有关完整的许可条款,请参阅 许可证 此目录中的文件。
