子宫MCP服务器
MCP服务器,为AI编码助手提供对Utelogy U-Manage门户网站REST API的直接访问,涵盖房间、资产、警报和全球设备库。它完全使用Deno在您的本地计算机上运行,通过stdio进行通信,并使用您提供的凭据连接到您自己的Utlogy门户帐户。没有任何内容是通过American Sound或任何第三方托管、代理或路由的。
此服务器是开源的,任何拥有Utelogy门户帐户和API凭据的人都可以使用(Utelogy平台本身不是开源的,您必须拥有有效的Utelogy订阅才能访问REST API)。您不需要是American Sound的客户就可以使用它。该项目由American Sound在Utlogy的知识和许可下开发。American Sound全权负责支持这一整合。Utlogy不直接支持第三方平台和服务。
支持的AI平台
American Sound在以下AI编码助手的付费计划上测试并支持此服务器:
- 克劳德代码 和 克劳德桌面版 (Anthropic)关于Max、团队和企业计划
- OpenAI Codex命令行界面 关于OpenAI付费计划
这些平台上的免费层计划可能适用于MCP服务器,但American Sound不会针对免费层配置进行测试,也不会为其提供集成支持。如果您首选的AI助手将来添加了MCP支持,则此服务器应无需修改即可使用它,尽管我们只有在内部验证后才会将其添加到我们支持的平台列表中。
它的作用
服务器公开了13个映射到Utelogy REST API核心端点的工具。API是只读的,但有一个例外:警报确认是Utelogy通过其REST接口公开的唯一写入操作。
这些工具涵盖四个领域:
- 警报 通过可选的日期过滤列出活动和历史警报,并按ID确认警报
- 资产 列出所有受监视的设备并检索特定资产的详细信息
- 房间 列出已配置的房间,获取房间详细信息,并提取每个房间的警报状态
- 全局设备库 按关键字查询制造商、设备种类、功能种类、驱动程序和搜索驱动程序
所有API调用的速率限制为每10秒一个请求。限制器在模块级别强制执行这一点,因此背靠背的工具调用按顺序排队和执行,而不是淹没门户API。
本地安装
此服务器在您的计算机上本地运行。它不是云服务,没有托管版本,American Sound除了我们自己的内部使用外,不会操作或访问此服务器的任何实例。您的Utelogy凭据保留在您的计算机上,并通过HTTPS直接传递到Utelogy门户API。
先决条件
- 德诺 运行时(v1.40+)
- 具有API访问权限的Utelogy门户帐户
- 您的Utelogy API密钥和Base64编码的授权头(可从您的Utelogy门户帐户设置中获得)
设置
将此存储库克隆到本地计算机:
git clone https://github.com/American-Sound/utelogy-mcp-server.git将服务器添加到MCP客户端的配置中。大多数客户端接受类似于以下内容的JSON格式:
{
"mcpServers": {
"utelogy": {
"command": "deno",
"args": [
"run",
"--allow-net=portal.utelogy.com",
"--allow-env",
"server.ts"
],
"cwd": "/path/to/utelogy-mcp-server",
"env": {
"UTELOGY_API_KEY": "your-api-key",
"UTELOGY_AUTHORIZATION": "your-base64-auth"
}
}
}
}这 --allow-net=portal.utelogy.com 标志仅限制服务器对子宫科门户的网络访问。您可以使用更广泛的 --allow-net 如果您的门户在自定义域上运行,但将权限范围限定到特定主机是更安全的默认设置。
您还可以直接运行服务器以验证其是否启动:
deno run --allow-net --allow-env server.ts服务器将等待stdin上的MCP工具调用。在正常使用中,您的AI助手会通过MCP配置自动启动它。
凭证解析
每个工具都接受可选的凭据参数,但您不需要在每次调用时都提供这些参数。服务器通过两层回退来解析凭据:
- 显式参数 (
apiKey,authorization,baseUrl)直接在工具调用中传递覆盖一切。当您需要针对特定帐户或使用不同凭据进行测试时,请使用此选项。 - 环境变量 (
UTELOGY_API_KEY,UTELOGY_AUTHORIZATION,UTELOGY_BASE_URL)当没有提供显式凭据时,将其设置为默认值。这是标准配置路径。
基本URL默认为 https://portal.utelogy.com 如果没有通过任何一层提供。
凭证安全: MCP客户端配置以明文JSON存储在磁盘上(例如。, ~/.claude.json 克劳德代码)。确保您的配置文件具有适当的文件权限(chmod 600 在Linux/macOS上),并且永远不要将其提交给源代码管理。如果您的组织使用secrets管理器,请考虑在运行时将凭据作为环境变量注入,而不是直接将其存储在配置文件中。
工具参考
警报
| 工具 | 说明 |
|---|---|
list-active-alerts | 列出所有受监控设备上当前所有活动(未确认)的警报 |
list-alerts | 使用可选日期范围过滤器列出警报(ISO 8601日期时间) |
acknowledge-alert | 通过ID确认活动警报(写入操作) |
资产
| 工具 | 说明 |
|---|---|
list-assets | 列出所有房间的所有受监控资产(设备) |
get-asset | 按ID获取特定资产的详细信息 |
房间
| 工具 | 说明 |
|---|---|
list-rooms | 列出子宫科门户中配置的所有房间 |
get-room | 获取详细的房间信息,包括CLM状态和指标 |
get-room-alerts | 列出特定房间的活动警报 |
全局设备库
| 工具 | 说明 |
|---|---|
list-manufacturers | 列出GDL中的所有制造商 |
list-device-kinds | 列出所有设备类别 |
list-feature-kinds | 列出设备功能(功率、音量、输入等) |
list-drivers | 列出所有可用的设备驱动程序 |
search-drivers | 按关键字搜索驱动程序(制造商名称、型号等) |
依赖项
服务器使用通过Deno的npm说明符语法导入的两个npm包:
@modelcontextprotocol/sdk@1.12.1用于MCP服务器框架和stdio传输zod@3.25.1用于工具参数验证
不 package.json 或 node_modules 需要目录。Deno在第一次运行时获取并缓存这些数据。
速率限制
速率限制器在模块级别强制执行API调用之间的最小10秒间隔。因为每次MCP工具调用都会创建一个新的客户端实例,所以限制器位于客户端类之外,因此它全局应用于服务器会话中的所有工具调用。在窗口内到达的呼叫会延迟而不是被拒绝,因此您不需要在工作流中处理重试逻辑。
间隔配置为 minIntervalMs: 10_000 在 rateLimiter 对象在 utelogy-client.ts.
权限和AI安全
这 acknowledge-alert 工具是此服务器中唯一的写入操作。当您将此服务器连接到AI助手时,助手可以代表您确认警报,而无需额外确认,除非您的MCP客户端配置为需要批准工具调用。
Utelogy的API不支持作用域权限。可以读取房间和资产的API密钥也可以确认警报。无法通过U-Manage门户发布只读密钥。如果您的工作流仅用于监控,请将MCP客户端配置为在执行工具调用之前需要明确批准,或删除 acknowledge-alert 工具注册来自 server.ts 在部署之前。
局限性
Utelogy REST API不公开U-Automate脚本触发,因此此服务器无法启动设备控制操作。警报webhooks(HMAC SHA-256签名,在U-Manage门户中按帐户配置)是此服务器不处理的单独入站集成路径。
API 参考
此服务器包装 通用REST API。所有终结点都需要有效的API密钥和授权标头,您可以从Utelogy门户帐户设置中获取这些密钥和标头。
质量和测试
所有发布到American Sound GitHub组织的软件在发布之前,都经过了他们许可的生产客户端环境或American Sound集成实验室的测试。
联系
Doug Schaefer,美国音响电子股份有限公司首席技术官。
- github: @道格·谢弗6
- 领英: linkedin.com/in/dougschaefer
- 电子邮件:dougschaefer@asei.com
许可证
MIT。看 许可证 了解详情。
