BACnet MCP 服务器
使用说明内容(Markdown格式)
- 项目简介
- 这是一个基于 MCP 的后端服务器实现,专注于通过标准化的接口向大模型/LLM 客户端提供对 BACnet 设备的访问能力。核心能力包括:通过资源映射对设备对象进行读取、通过工具执行写操作、通过提示模板帮助对话过程,以及对异常情况提供帮助性对话。
- 主要功能点
- 资源、工具与提示:将 BACnet 设备的对象属性映射为资源与工具,提供对 device、analogValue、binaryValue 等对象的读取与写入能力,并提供帮助性提示。
- 读取与写入能力:实现读取对象列表、读取属性、写入属性等常用操作的接口,方便 LLM 调用。
- 设备发现能力:通过 who_is / who_has 等工具实现局部设备发现。
- 安全与会话:可选集成 AuthKit 提供的身份认证,支持多种传输协议(如 Streamable HTTP)。
- 健康检查端点:提供健康检查以便监控服务器状态。
- 与 BACnet 的集成:使用 bacpypes3 应用层在本地/测试环境中驱动 BACnet 设备模拟或实际设备。
- 安装步骤
- 安装依赖并获取代码:通过 pip/install 或项目管理工具获取该包及其依赖。
- 运行服务器:通过命令行入口 bacnet-mcp 或在 Python 中创建 BACnetMCP 实例并以传输模式 http 启动运行。默认端口通常为 8000 的 Streamable HTTP 服务,具体可通过 CLI 参数覆盖。
- 运行环境配置:可使用 .env 文件或环境变量配置 BACnet 设备主机与端口,以及多设备配置 devices.json,方便在同一工作区管理多设备。
- 服务器配置(MCP 客户端使用的启动信息,JSON 示例) 说明:以下配置用于 MCP 客户端在需要时启动并连接到该 MCP 服务器。字段含义与仓库实现的一致,server_name 用于标识服务器,command/args 指定启动该 MCP 服务器所需的命令及参数。 { "server_name": "BACnet MCP Server", "command": "bacnet-mcp", "args": [ "--host", "127.0.0.1", "--port", "8000" ] } 注:以上参数用于在本地监听 HTTP 流式端点,实际部署中可根据网络环境调整。MCP 客户端无需其他额外配置即可连接该服务器的 MCP 端点。
- 基本使用方法
- 启动方式:可以在命令行直接启动(bacnet-mcp),也可以在应用中通过调用 BACnetMCP().run_async(transport="http") 启动。
- 交互方式:LLM 客户端(如 OpenAI 的工具集成、openai-agents 等)调用服务器暴露的工具,如读取、写入属性以及设备发现等,MCP 服务器将返回结构化结果或提示信息。
- 调试与诊断:通过 MCP Inspector(浏览器/工具)连接 http://127.0.0.1:8000/mcp/,查看可用资源、工具和提示,确认服务器已就绪并可交互。