WoT MCP
WoT MCP是一个服务器应用程序,它通过模型上下文协议(MCP)将物联网(WoT)设备暴露给AI助手。
随着人工智能代理变得越来越复杂,它们与现实世界交互的能力仍然受到分散的物联网协议的限制。WoT MCP通过翻译标准化的 物联网 模型(属性、操作、事件)转换为 主控程序 原语(资源和工具)。
这允许任何符合MCP的AI客户端(如Claude Desktop或LangChain代理)本地发现、监视和控制物理设备,而无需为每个设备定制代码。
特性
- 协议转换:将WoT属性、操作和事件转换为MCP资源和工具。
- 两种工具策略:
- explicit:为每个属性和动作生成单独的工具(例如。, set_temperature, get_humidity).最适合少量设备。 - generic:提供一组固定的工具(list_devices, read_property, write_property, invoke_action)管理任意数量的设备。最适合可扩展性。
- 运输方式:支持两者
stdio和streamable-http. - 事件缓冲:捕获WoT事件并将其作为MCP资源公开。
- Docker支持:已准备好使用Dockerfile进行容器化部署。
安装
git clone https://github.com/macc-n/wot-mcp.git
cd wot-mcp
npm install
npm run build用法
Stdio(本地客户)
将WoT MCP用于本地客户,如 克劳德桌面版,您可以配置它们以直接生成服务器。
Claude桌面配置: 将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"wot": {
"command": "npm",
"args": [
"--prefix",
"/wot-mcp",
"start",
"--",
"--tool-strategy",
"explicit",
"--config",
"/things-config.json"
]
}
}
}注: 确保脚本和配置文件都使用绝对路径。
流式HTTP
要通过HTTP公开MCP服务器,请执行以下操作:
npm start -- --mode streamable-http --port 3000 --config things-config.jsonClaude桌面配置: 将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"wot": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://:
/mcp",
"--allow-http"
]
}
}
}工具策略
显式策略(默认) 为每种功能创建一个独特的工具:
- WoT财产:
- 创建一个 获取器 工具。 - 如果属性是可写的,则还会创建 设置器 工具。
- WoT动作:
- 使用直接从WoT-Action输入模式派生的输入模式创建单个工具。
- WoT事件:
- 公开可订阅资源。
npm start -- --tool-strategy explicit --config things-config.json通用策略 使用4个静态工具管理所有设备:
list_devices:返回所有设备及其功能的JSON列表。read_property:需要devide_id和property_name.write_property:需要devide_id,property_name,以及value.invoke_action:需要devide_id,action_name,可选params.
注: WoT事件的管理方式如前所述。
npm start -- --tool-strategy generic --config things-config.json配置文件
您必须从JSON配置文件加载内容。该文件支持HTTP、CoAP和MQTT设备。
// things-config.json
{
"things": [
{
"protocol": "http",
"url": "http://localhost:8080/httpthermostat"
},
{
"protocol": "coap",
"url": "coap://localhost:5683/coaplight"
},
{
"protocol": "mqtt",
"url": "mqtt://test.mosquitto.org/MqttSensor",
"td": "/path/to/mqtt-td.json"
}
]
}注: 对于 mqtt 设备 td 字段是必需的,并且必须指向包含事物描述的本地文件,因为MQTT不支持TD发现。
例子
这 wot-mcp-cli 存储库包含一个用于WoT MCP服务器的交互式命令行界面(CLI)客户端,允许您检查工具并与设备交互。
这 wot-mcp示例 存储库包含设备、配置文件和客户端的示例代码。
有关全面的文档和更多详细信息,请咨询相应的存储库。
码头工人
塑造形象:
docker build -t wot-mcp .使用配置文件运行:
docker run --rm --network="host" \
-v $(pwd)/things-config.json:/app/things-config.json \
wot-mcp \
--tool-strategy explicit \
--config /app/things-config.json \
--mode streamable-http \
--port 3000注: 替换配置文件的路径。
已知限制
此第一个版本侧重于将物联网设备桥接到MCP的核心功能。它还不包括身份验证、安全机制或持久存储层等高级功能。
