About MCP Server for sensor device
A Node.js MCP server for Claude Desktop that simulates a CO2 sensor or reads real measurements from a Raspberry Pi Pico over USB. It also exposes device and network status, with some network and MQTT actions mocked.
Key features
- 01Simulated CO2 readings
- 02USB readings from Raspberry Pi Pico
- 03Device, sensor, and network status
- 04MQTT publishing command
- 05WiFi and MQTT reconnect commands
Use cases
- 01Test sensor interactions without hardware
- 02Read CO2 levels from a Raspberry Pi Pico
- 03Inspect device and network status
- 04Try MQTT publishing and reconnection commands
MCP support
Exposes device information, sensor readings, and network status as MCP resources, with tools for MQTT publishing and WiFi or MQTT reconnection.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Server for sensor device
This project is a Node.js application designed for use with Claude Desktop. It simulates a CO2 sensor device and provides a JSON-RPC server to interact with the device. The application can run in both simulation mode and real mode, where it connects to a Raspberry Pi Pico via USB to read CO2 levels.
Features
- Simulates a CO2 sensor device with random CO2 levels in simulation mode.
- Connects to a Raspberry Pi Pico via USB to read real CO2 levels.
- Provides device information, sensor data, and network status via JSON-RPC.
- Supports commands to publish data to MQTT, reconnect WiFi, and reconnect MQTT (some functionalities are mocked).
Installation
You need to have Node.js installed on your machine to run this application. If you don't have Node.js installed, you can download it from the official website.
-
Clone the repository.
-
Install the dependencies using npm:
npm install
Configuration
Ensure that the claude_desktop_config.json file is correctly configured to run the server. Example configuration:
{
"mcpServers": {
"CO2 sensor": {
"command": "node",
"args": [
"...mcp-server-for-sensor-device/index.js"
],
"env": {}
}
}
}
Usage
To start the server, run the following command:
node index.js
JSON-RPC Methods
initialize
Initializes the server and returns server capabilities.
shutdown
Shuts down the server.
resources/list
Lists available resources.
resources/read
Reads the specified resource.
tools/list
Lists available tools.
tools/call
Calls the specified tool.
DeviceState Class
The DeviceState class simulates the device state and provides methods to get device information, sensor data, and network status. It also handles the connection to the Raspberry Pi Pico and reads CO2 levels.
Methods
getDeviceInfo(): Returns device information.getSensorData(): Returns sensor data.getNetworkStatus(): Returns network status (mocked functionality).publishToMQTT(): Simulates publishing data to MQTT (mocked functionality).reconnectWiFi(): Simulates reconnecting to WiFi (mocked functionality).reconnectMQTT(): Simulates reconnecting to MQTT (mocked functionality).
Logging
The application logs CO2 levels and other information to a log file located in the user's home directory (co2_level.log).
License
This project is licensed under the MIT License.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.