OpenMEP duct sizing

io.github.samarmstrong由 GitHub 账号 samarmstrong 发布v0.2.0更新于 Oct 24, 2026

Deterministic HVAC duct sizing at a fixed or Manual D friction rate; grades existing ducts.

已验证STDIO仅桌面开发者工具数据与分析

概览

AI 生成的概览

一个本地 MCP 服务器,让助手按固定摩擦率或 Manual D 摩擦率确定性地进行暖通空调风管选型,并评估现有风管。

可以做什么
根据风量、用途、气流类型以及可选的现有圆形、矩形或椭圆形截面,为单段风管选型,返回推荐的标准圆管直径、风速、摩擦率,以及现有风管的合格、偏小或偏大评级。为整张风管网络(由终端、管段、管件和设备通过引用连接)选型,返回每段的 CFM、用途、建议和评级。在给定风机静压和长度时,推导 Manual D 设计:可用静压、总有效长度、摩擦率和控制路径。报告缺失风量、终端未连接、悬空引用、混合系统、偏小或偏大管段以及摩擦率超出 0.06–0.18 等问题。
适用场景
当助手需要进行初步的暖通空调风管选型,或判断现有风管是否偏小、偏大或合适时适用,包括带风机静压的整网布局。结果仅作为供工程师复核的初步选型。
运行要求
通过 npx 从 npm 包 @openmep/mcp 以 stdio 在本地运行,需要 Node.js 24+。无需编辑器、CAD 宿主、账户、API 密钥或网络访问。
安装前请注意
风量是设计输入,服务器从不自行估算,助手必须提供 CFM 数值。引擎不包含管件损失、静压累加和风机选型,结果仅为供工程师复核的初步选型。两个工具均为只读且幂等,不会写入或发送任何数据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 OpenMEP duct sizing,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@openmep/mcp

An MCP server that gives any agent OpenMEP's deterministic HVAC duct sizing. No editor, CAD host, account, or network access: the agent describes the ducts, the engine sizes them.

json
{  "mcpServers": {    "openmep": { "command": "npx", "args": ["-y", "-p", "@openmep/mcp", "openmep-mcp"] }  }}

Claude Code: claude mcp add openmep -- npx -y -p @openmep/mcp openmep-mcp. Requires Node.js 24+. Transport: stdio.

Tools

ToolInputReturns
size_ductcfm, optional role (main/branch/runout), airflowType (supply/return/exhaust/outside-air), existing section ({diameterIn} or {shape: rect|oval, widthIn, heightIn})Recommended standard round diameter, velocity, friction; for an existing section its circular equivalent and ok/undersized/oversized
size_duct_networkitems: terminals with requiredCfm, segments (optionally with existing and lengthFt), fittings (optionally equivalentLengthFt), equipment, linked by connectedItemRefs; optional fan (externalStaticInWg, componentLossesInWg)Every loaded segment's CFM, role, recommendation, and grade; with fan, the Manual D design (available static, total effective length, friction rate, governing paths); findings for missing CFM, disconnected terminals, dangling references, mixed systems, undersized and oversized runs, friction rate outside 0.06–0.18

Both tools are read-only and idempotent. Invalid input comes back as a tool error naming the field (NetworkInputError [invalid-item]: items[2].requiredCfm: ...) so the model can correct it.

Example prompt that works in a fresh Claude Code session with only this server:

I have a furnace feeding a supply trunk that tees into two runouts: bedroom 1 needs 120 CFM, bedroom 2 needs 90 CFM, and the living room is fed off the trunk end at 200 CFM. All drawn as 6 inch round. One return grille in the hall at 410 CFM on a 10 inch drop. Is anything undersized?

The agent builds the network in one size_duct_network call and reports 7, 6, and 8 in runouts, an 11 in trunk, and a return drop just under size at 10 in.

Engineering basis and limits

Equal friction at 0.08 in. w.g./100 ft, or at the Manual D rate derived from the blower's available static pressure when fan and lengths are given, with role-based velocity caps per system, rounded up to standard round diameters; see @openmep/hvac-domain for the formula, sources, and what is excluded (fitting losses, static pressure summation, fan selection). Airflow is a design input the server never estimates. Treat results as preliminary sizing for an engineer to review.

The server uses the official MCP TypeScript SDK and speaks the initialize-handshake protocol revisions (through 2025-11-25), which current clients support.

Library

ts
import { createOpenMepServer } from "@openmep/mcp";await createOpenMepServer().connect(transport); // any MCP server transport

来源:packages/mcp/README.md,提交 4f57471

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.2.0最新Oct 7, 2026
  2. v0.1.0Sep 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分