Skip to main content
Glama
emsnicket

raptio-mcp

by emsnicket

免责声明: 这是一个独立的、由社区构建的项目, 与 KegLand 或 RAPT.io 均无关联,亦未经其认可或支持。 RAPT、RaptPill 和 KegLand 均为其各自所有者的商标, 在此仅用于描述兼容性。 本软件按“原样”提供,不附带任何形式的担保——完整条款见 LICENSE,其中包含专门针对本项目使用不受支持的 第三方 API 的额外通俗语言免责声明。

RAPT.io MCP Server

一个用于通过 RAPT.io API 监控和控制 KegLand RAPT 设备(Fermentation Chamber 和 RaptPill 比重计)的 MCP(Model Context Protocol,模型上下文协议)服务器。

⚠️ 默认只读。 RAPT.io API 对大多数变更操作而言既不受支持, 也没有文档说明(参见下文 安全与 API 使用说明)。 本服务器会拒绝所有发送到 RAPT.io API 的 POST 请求,除非操作者 明确通过 RAPTIO_MCP_READ_ONLY=false 选择启用。

功能

Fermentation Chamber(发酵室)

  • 列出所有发酵室

  • 获取状态(温度、加热/制冷、PID、运行时长)

  • 获取遥测历史数据

  • (当 RAPTIO_MCP_READ_ONLY=false 时) 设置目标温度、启用/禁用 PID、配置 PID 参数

RaptPill(比重计)

  • 列出所有 RaptPill

  • 获取状态(比重、温度、电池电量)

  • 获取遥测历史数据

通用

  • 列出所有已绑定设备

  • 管理/查看发酵档案

此前可用的一些控制类工具(加热/制冷/风扇/灯光开关、迟滞、压缩机/模式切换延迟)已被移除, 等待对底层 API 端点的验证。请参见下文 已移除的工具

Related MCP server: RAPT.io MCP Server

安装

环境要求

  • Python 3.11+

  • uv(推荐)或 pip

使用 uv

uv sync --frozen

使用 pip

pip install -e .

身份验证

本服务器使用您的 RAPT.io 用户名API Secret(而非您的账户密码)向 RAPT.io API 进行身份验证。

  1. 登录 RAPT Portal

  2. 进入 My Account → API Secretshttps://app.rapt.io/account/apisecrets)。

  3. 点击 Add API Secret 并立即记录该值——它会在服务端进行哈希处理,之后将无法再次查看。

请勿将您的真实账户密码用作 RAPT_API_SECRET。API Secret 是一种独立的、可单独撤销的凭据——即使泄露,您也可以在门户网站中重新轮换它,而不会影响真实的账户登录凭据。

配置

设置以下环境变量:

变量

是否必填

默认值

说明

RAPT_USERNAME

RAPT.io 账户邮箱

RAPT_API_SECRET

app.rapt.io/account/apisecrets 生成的 API Secret

RAPTIO_MCP_AUTH_TOKEN

MCP 客户端必须作为 Authorization: Bearer <token> 发送的共享密钥 Bearer Token

RAPTIO_MCP_READ_ONLY

true

true(默认)时,所有变更类(set_*)工具调用都会在到达 RAPT.io API 之前被拒绝。设为 false 以允许有文档记录的变更端点(见 安全与 API 使用说明

RAPTIO_MCP_ALLOWED_HOSTS

推荐

(未设置——校验已禁用)

允许的 Host 标头值列表(逗号分隔)(DNS rebinding 保护)

RAPTIO_MCP_ALLOWED_ORIGINS

推荐

(未设置——校验已禁用)

允许的 Origin 标头值列表(逗号分隔)

RAPTIO_MCP_HOST

0.0.0.0

绑定地址

RAPTIO_MCP_PORT

8000

绑定端口

RAPTIO_MCP_LOG_LEVEL

INFO

Python 日志级别

使用

直接运行(Streamable HTTP)

RAPT_USERNAME="you@example.com" \
RAPT_API_SECRET="your-api-secret" \
RAPTIO_MCP_AUTH_TOKEN="$(openssl rand -hex 32)" \
  uv run raptio-mcp

服务器监听于 http://<RAPTIO_MCP_HOST>:<RAPTIO_MCP_PORT>/mcp(Streamable HTTP transport,无状态,JSON 响应)。所有发送到 /mcp 的请求都需要上述 Bearer Token。/healthz 无需认证,用于容器编排器的存活/就绪探针。

连接 MCP 客户端

配置您的 MCP 客户端使用 Streamable HTTP transport,例如:

claude mcp add --transport http raptio http://localhost:8000/mcp \
  --header "Authorization: Bearer <your RAPTIO_MCP_AUTH_TOKEN>"

本服务器更早的版本使用 stdio transport(供 Claude Desktop/Claude Code 通过本地子进程使用)。自 0.2.0 起,服务器仅通过 Streamable HTTP 运行,并要求上述 Bearer Token——进程所有权不再构成隐式信任边界,因此必须强制认证。

可用工具

工具

说明

模式

get_bonded_devices

列出所有已绑定设备

只读

get_bonded_device

获取单个设备

只读

get_bonded_device_telemetry

获取设备数据

只读

get_fermentation_chambers

列出所有发酵室

只读

get_fermentation_chamber

获取发酵室状态

只读

get_fermentation_chamber_telemetry

获取发酵室温度历史记录

只读

set_fermentation_chamber_temperature

设置目标温度

变更类——需 RAPTIO_MCP_READ_ONLY=false

set_fermentation_chamber_pid_enabled

启用/禁用 PID 控制

变更类——需 RAPTIO_MCP_READ_ONLY=false

set_fermentation_chamber_pid

配置 PID 参数

变更类——需 RAPTIO_MCP_READ_ONLY=false

get_hydrometers

列出所有 RaptPill

只读

get_hydrometer

获取 RaptPill 状态

只读

get_hydrometer_telemetry

获取比重/温度历史记录

只读

get_profiles

列出所有发酵档案

只读

get_profile

获取档案详情

只读

get_profile_types

列出可用的档案类型

只读

RAPTIO_MCP_READ_ONLY=true(默认)时,这三个变更类工具仍会列出(因此其 schema 依旧可发现),但每次调用都会返回明确的错误,而不会真正到达 RAPT.io API。

已移除的工具

以下工具存在于早期版本中,但已被移除并等待验证:

  • set_fermentation_chamber_heating_enabled

  • set_fermentation_chamber_cooling_enabled

  • set_fermentation_chamber_fan_enabled

  • set_fermentation_chamber_light_enabled

  • set_fermentation_chamber_cooling_hysteresis

  • set_fermentation_chamber_heating_hysteresis

  • set_fermentation_chamber_compressor_delay

  • set_fermentation_chamber_mode_switch_delay

它们此前都依赖 POST /api/FermentationChambers/UpdateFermentationChamber,该端点并未出现在 RAPT.io 的已发布 API 规范(https://api.rapt.io/swagger/v1/swagger.json)中,也没有文档化的并发行为说明。只有在通过活跃账户确认该端点存在且安全之后,这些工具才会被恢复。(set_fermentation_chamber_light_enabled 此前还发送了错误的枚举值——On/Off/Auto,而不是正确的 AlwaysOn/AlwaysOff/Automatic——在恢复前也需要一并修复。)

安全与 API 使用说明

RAPT.io 公共 API 被 KegLand 明确描述为不受支持

“访问 API 不受支持。这意味着您在使用 API 时遇到任何问题都无法从 KegLand 获得帮助……如果您因滥用 API 而损坏设备,设备的保修将失效……API(端点、参数、响应模型等)随时可能变更,恕不另行通知。” — https://docs.rapt.io/integrations/api-secrets

鉴于以上原因,服务器默认采取保守策略:

  • 默认只读RAPTIO_MCP_READ_ONLY=true)——除非显式启用,否则不会发送任何可能改变设备状态的请求。

  • 仅使用官方文档化的端点进行变更——SetTargetTemperatureSetPIDEnabledSetPID——这些都已确认出现在 RAPT.io 自己的已发布 Swagger 规范中。

  • 未使用未经文档化的端点——见 已移除的工具

  • HTTP transport 强制要求认证RAPTIO_MCP_AUTH_TOKEN),因为 Streamable HTTP 失去了先前 stdio 子进程模型免费提供的隐式信任边界,因此认证是强制性要求。

  • 所有变更类工具的调用都会写入审计日志(工具名称、参数、结果)。

如果您选择设置 RAPTIO_MCP_READ_ONLY=false,即表示您主动同意向实体酿造/发酵设备发送命令,而这依赖于 KegLand 可能随时更改或限制的 API;由此造成的任何损坏或账户限制,将按照上文 KegLand 的条款并由您自行负责。

身份验证流程详情

在内部,服务器会使用你的 RAPT_USERNAMERAPT_API_SECRET,通过 OAuth2 Resource Owner Password Credentials 授权流程,向 https://id.rapt.io/connect/token 换取一个短期有效的 bearer token,遵循 RAPT.io 的文档化流程。令牌会缓存在内存中,并在过期前约 30 秒自动刷新。

许可证

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for interacting with Fireboard BBQ temperature monitoring. Enables querying devices, live probe temperatures, Drive fan controller status, and historical cook sessions.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables monitoring and controlling KegLand RAPT fermentation chambers and RaptPill hydrometers through the RAPT.io API, including temperature control, PID configuration, and telemetry retrieval.
    23
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Connects MCP clients (e.g., Claude) to your NIBE myUplink heat-pump account for reading sensors and controlling settings via OAuth2 authentication.

View all related MCP servers

Related MCP Connectors

  • MCP server wrapping the Tesla Fleet API and TeslaMate API

  • Manage feature requests, votes, roadmaps, and changelogs from any MCP client.

  • OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/emsnicket/raptio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server