Skip to main content
Glama

Plugwise MCP Server

by Tommertom
test-scripts.mdโ€ข6.15 kB
# Test Scripts ## MCP Connection Test ### Overview The `test-mcp-connection.ts` script tests the Plugwise MCP Server by connecting to it via stdio and displaying server information and available tools. ### Location `scripts/test-mcp-connection.ts` ### Usage #### Using npm script (recommended): ```bash npm run test:connection ``` #### Direct execution: ```bash # Build the project first npm run build # Run the compiled test script node dist/scripts/test-mcp-connection.js ``` ### What it does 1. **Spawns the MCP Server**: Creates a child process running the MCP server 2. **Connects via stdio**: Establishes a stdio transport connection to the server 3. **Displays Server Info**: Shows: - Server name - Version - Full description 4. **Lists All Tools**: Displays: - Tool names - Descriptions - Parameters (with required fields highlighted) ### Output Example The script provides formatted output including: - Server metadata (name, version, description) - Complete tool listing with 16 available tools: - Hub management (add_hub, list_hubs, connect) - Device discovery (get_devices) - Temperature control (set_temperature, get_temperature, etc.) - Preset management (set_preset) - Switch control (control_switch) - Gateway configuration (set_gateway_mode, set_dhw_mode, etc.) - System operations (reboot_gateway, delete_notification) ### Technical Details **Technologies:** - TypeScript - @modelcontextprotocol/sdk Client & StdioClientTransport - Node.js child processes **Transport:** - Uses stdio (standard input/output) for MCP communication - Automatically spawns and manages the server process lifecycle **Cleanup:** - Properly closes the client connection - Terminates the server process when complete --- ## Device Discovery Test ### Overview The `test-device-discovery.ts` script performs comprehensive device discovery testing by connecting to all configured hubs, triggering device scans, and verifying filesystem storage. ### Location `scripts/test-device-discovery.ts` ### Usage #### Using npm script (recommended): ```bash npm run test:devices ``` #### Direct execution: ```bash # Build the project first npm run build # Run the compiled test script node dist/scripts/test-device-discovery.js ``` ### What it does The script performs 4 main steps: #### Step 1: List Hubs - Calls the `list_hubs` tool to get all configured hubs - Falls back to filesystem loading if tool response isn't parseable - Displays hub information including: - Name - IP address - Password (filename) - Model - Firmware version #### Step 2: Discover Devices - Connects to each hub using the `connect` tool - Calls `get_devices` to trigger device discovery - Collects all discovered devices for each hub #### Step 3: Display Discovered Devices - Lists all devices found across all hubs - Shows for each device: - Name - Device ID - Type/Class - Location (if available) - Provides total device count #### Step 4: Verify Filesystem Storage - Checks `mcp_data/plugwise/devices/` directory - Lists all saved device JSON files - Groups files by hub - Cross-checks discovered devices with saved files - Reports: - Number of devices saved per hub - Match status (all saved, partial, or none) ### Output Example ``` ๐Ÿš€ Starting Plugwise Device Discovery Test... โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“‹ STEP 1: LISTING HUBS โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” Found 1 hub(s): 1. Plugwise Gateway IP: 192.168.178.235 Password: glmpttxf Model: smile_open_therm Firmware: 3.7.8 โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“‹ STEP 2: DISCOVERING DEVICES โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ” Discovering devices for hub: Plugwise Gateway (192.168.178.235)... Connecting... โœ… Connected to Plugwise Gateway Fetching devices... โœ… Found 17 devices โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“‹ STEP 3: DISCOVERED DEVICES โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ  Hub: Plugwise Gateway Total devices: 17 1. Licht boompje ID: 22ac469f705c4f4e90b801017694163a Type: lamp 2. Central heating boiler ID: e5cad71698f24fd99ca0c734318d4f1a Type: heater_central ... ๐Ÿ“Š Total devices discovered across all hubs: 17 โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“‹ STEP 4: VERIFYING FILESYSTEM STORAGE โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ“ Checking directory: /home/tom/plugwise/mcp_data/plugwise/devices Found 17 device file(s): ๐Ÿ“ฆ Plugwise Gateway: 17 device(s) ๐Ÿ” Cross-checking discovered devices with saved files: Hub: Plugwise Gateway Total devices discovered: 17 Devices saved to filesystem: 17/17 โœ… All devices successfully saved โœจ Device discovery test completed successfully! ``` ### Technical Details **Technologies:** - TypeScript - @modelcontextprotocol/sdk Client - Node.js filesystem operations **Device Storage Format:** - Individual JSON file per device - Naming convention: `{HubName}_{DeviceID}.json` - Location: `mcp_data/plugwise/devices/` **Data Flow:** 1. MCP client calls `get_devices` tool 2. Tool returns entities as object with device IDs as keys 3. Script converts to array and extracts device information 4. MCP server automatically saves each device to individual file 5. Script verifies files exist and match discovered devices **Verification Logic:** - Checks each discovered device ID against expected filename - Reports match statistics per hub - Identifies any missing or extra files

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tommertom/plugwise-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server