NodeMCU MCP Service
by amanasmuei
Verified
- nodemcu-mcp
- assets
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="800" height="600" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
<!-- Background -->
<rect width="800" height="600" fill="#f8f9fa" />
<!-- Title -->
<text x="400" y="40" font-family="Arial" font-size="24" font-weight="bold" text-anchor="middle"
fill="#00a1e9">NodeMCU MCP Architecture</text>
<!-- NodeMCU Devices Zone -->
<rect x="50" y="100" width="200" height="300" rx="10" ry="10" fill="#f0f0f0" stroke="#ddd"
stroke-width="2" />
<text x="150" y="125" font-family="Arial" font-size="16" font-weight="bold" text-anchor="middle">IoT
Devices</text>
<!-- Device 1 -->
<rect x="80" y="150" width="140" height="70" rx="5" ry="5" fill="#1b1c1d" />
<text x="150" y="175" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">NodeMCU - Living Room</text>
<rect x="100" y="185" width="50" height="25" rx="2" ry="2" fill="#292a2b" />
<text x="125" y="202" font-family="Arial" font-size="10" text-anchor="middle" fill="#00a1e9">
ESP8266</text>
<circle cx="170" cy="195" r="5" fill="#ff0000" />
<!-- Device 2 -->
<rect x="80" y="240" width="140" height="70" rx="5" ry="5" fill="#1b1c1d" />
<text x="150" y="265" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">NodeMCU - Kitchen</text>
<rect x="100" y="275" width="50" height="25" rx="2" ry="2" fill="#292a2b" />
<text x="125" y="292" font-family="Arial" font-size="10" text-anchor="middle" fill="#00a1e9">
ESP8266</text>
<circle cx="170" cy="285" r="5" fill="#ff0000" />
<!-- Device 3 -->
<rect x="80" y="330" width="140" height="70" rx="5" ry="5" fill="#1b1c1d" opacity="0.6" />
<text x="150" y="355" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">NodeMCU - Bedroom</text>
<rect x="100" y="365" width="50" height="25" rx="2" ry="2" fill="#292a2b" />
<text x="125" y="382" font-family="Arial" font-size="10" text-anchor="middle" fill="#00a1e9">
ESP8266</text>
<circle cx="170" cy="375" r="5" fill="#ff0000" />
<!-- MCP Server Zone -->
<rect x="300" y="100" width="200" height="300" rx="10" ry="10" fill="#e6f7ff" stroke="#00a1e9"
stroke-width="2" />
<text x="400" y="125" font-family="Arial" font-size="16" font-weight="bold" text-anchor="middle">NodeMCU
MCP Server</text>
<!-- Server components -->
<rect x="320" y="150" width="160" height="40" rx="5" ry="5" fill="#00a1e9" />
<text x="400" y="175" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">WebSocket Server</text>
<rect x="320" y="200" width="160" height="40" rx="5" ry="5" fill="#00a1e9" />
<text x="400" y="225" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">REST API</text>
<rect x="320" y="250" width="160" height="40" rx="5" ry="5" fill="#00a1e9" />
<text x="400" y="275" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">MCP Protocol Handler</text>
<rect x="320" y="300" width="160" height="40" rx="5" ry="5" fill="#00a1e9" />
<text x="400" y="325" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">Device Manager</text>
<rect x="320" y="350" width="160" height="40" rx="5" ry="5" fill="#00a1e9" opacity="0.7" />
<text x="400" y="375" font-family="Arial" font-size="12" font-weight="bold" text-anchor="middle"
fill="#ffffff">Authentication</text>
<!-- AI Assistant Zone -->
<rect x="550" y="100" width="200" height="300" rx="10" ry="10" fill="#f0f8ff" stroke="#666"
stroke-width="2" />
<text x="650" y="125" font-family="Arial" font-size="16" font-weight="bold" text-anchor="middle">AI
Assistants</text>
<!-- Claude Desktop -->
<rect x="570" y="150" width="160" height="90" rx="5" ry="5" fill="#ffffff" stroke="#00a1e9"
stroke-width="2" />
<text x="650" y="175" font-family="Arial" font-size="14" font-weight="bold" text-anchor="middle">Claude
Desktop</text>
<rect x="590" y="185" width="120" height="45" rx="5" ry="5" fill="#f5f5f5" />
<text x="650" y="210" font-family="Arial" font-size="10" text-anchor="middle" fill="#333">MCP
Client</text>
<text x="650" y="225" font-family="Arial" font-size="10" text-anchor="middle" fill="#666">Runs
MCP Tools</text>
<!-- Custom Clients -->
<rect x="570" y="260" width="160" height="90" rx="5" ry="5" fill="#ffffff" stroke="#666"
stroke-width="2" />
<text x="650" y="285" font-family="Arial" font-size="14" font-weight="bold" text-anchor="middle">Custom
MCP Clients</text>
<rect x="590" y="295" width="120" height="45" rx="5" ry="5" fill="#f5f5f5" />
<text x="650" y="320" font-family="Arial" font-size="10" text-anchor="middle" fill="#333">MCP
Protocol</text>
<text x="650" y="335" font-family="Arial" font-size="10" text-anchor="middle" fill="#666">Tool
Definitions</text>
<!-- Web UI Zone -->
<rect x="300" y="450" width="200" height="100" rx="10" ry="10" fill="#f9f9f9" stroke="#ddd"
stroke-width="2" />
<text x="400" y="475" font-family="Arial" font-size="16" font-weight="bold" text-anchor="middle">Web
UI</text>
<rect x="325" y="485" width="150" height="55" rx="5" ry="5" fill="#fff" stroke="#00a1e9"
stroke-width="1" />
<text x="400" y="515" font-family="Arial" font-size="12" text-anchor="middle">Device Management
Dashboard</text>
<!-- Connection Lines -->
<!-- IoT Devices to Server -->
<path d="M250,170 C280,170 270,170 300,170" stroke="#00a1e9" stroke-width="2" fill="none" />
<path d="M250,260 C280,260 270,220 300,220" stroke="#00a1e9" stroke-width="2" fill="none" />
<path d="M250,350 C280,350 270,320 300,320" stroke="#00a1e9" stroke-width="2" fill="none"
stroke-dasharray="5,5" />
<!-- Server to Claude -->
<path d="M500,270 C530,270 530,195 570,195" stroke="#00a1e9" stroke-width="2" fill="none" />
<text x="535" y="250" font-family="Arial" font-size="10" fill="#00a1e9">MCP</text>
<!-- Server to Custom Clients -->
<path d="M500,320 C520,320 520,305 570,305" stroke="#666" stroke-width="2" fill="none"
stroke-dasharray="4,4" />
<text x="535" y="340" font-family="Arial" font-size="10" fill="#666">MCP</text>
<!-- Server to Web UI -->
<path d="M400,400 L400,450" stroke="#00a1e9" stroke-width="2" fill="none" />
<text x="410" y="425" font-family="Arial" font-size="10" fill="#00a1e9">HTTP</text>
<!-- Data Flow Arrows -->
<polygon points="295,170 300,168 300,172" fill="#00a1e9" />
<polygon points="295,220 300,218 300,222" fill="#00a1e9" />
<polygon points="295,320 300,318 300,322" fill="#00a1e9" />
<polygon points="565,195 570,193 570,197" fill="#00a1e9" />
<polygon points="565,305 570,303 570,307" fill="#666" />
<polygon points="400,445 398,450 402,450" fill="#00a1e9" />
<!-- Legend -->
<rect x="50" y="450" width="200" height="100" rx="5" ry="5" fill="#ffffff" stroke="#ddd"
stroke-width="1" />
<text x="150" y="470" font-family="Arial" font-size="14" font-weight="bold" text-anchor="middle">
Legend</text>
<line x1="70" y1="485" x2="90" y2="485" stroke="#00a1e9" stroke-width="2" />
<text x="150" y="490" font-family="Arial" font-size="12" fill="#333">Active Connection</text>
<line x1="70" y1="510" x2="90" y2="510" stroke="#666" stroke-width="2" stroke-dasharray="4,4" />
<text x="150" y="515" font-family="Arial" font-size="12" fill="#333">Optional Connection</text>
<rect x="70" y="525" width="15" height="15" fill="#00a1e9" />
<text x="150" y="537" font-family="Arial" font-size="12" fill="#333">MCP Service Component</text>
<!-- Flowchart explanation -->
<text x="400" y="570" font-family="Arial" font-size="12" text-anchor="middle" fill="#666">
NodeMCU Devices ↔ MCP Server ↔ Claude Desktop/MCP Clients
</text>
</svg>