by litmusautomation
Enables LLMs and other intelligent agents to configure, monitor, and manage Litmus Edge devices through real‑time Model Context Protocol communication.
Litmus MCP Server provides a Model Context Protocol (MCP) interface that lets large language models and intelligent systems interact with Litmus Edge devices. It exposes a set of API functions for environment configuration, device discovery, tag access, Docker container management, and cloud‑activation status, all streamed via Server‑Sent Events (SSE).
docker run -d --name litmus-mcp-server -p 8000:8000 ghcr.io/litmusautomation/litmus-mcp-server:main
http://<server-ip>:8000/sse for real‑time streaming.{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<IP Address>:8000/sse"
}
}
}
Place the JSON in the appropriate location for the IDE or tool (e.g., ~/.cursor/mcp.json, claude_desktop_config.json, .vscode/mcp.json, ~/.codeium/windsurf/mcp_config.json).update_environment_config or update_config to re‑configure a Litmus Edge gateway on the fly.run_docker_container_on_litmusedge from within an AI workflow.get_cloud_activation_status helps maintain compliance and connectivity awareness.0.0.0.0:8000/sse by default.The official Litmus Automation Model Context Protocol (MCP) Server enables LLMs and intelligent systems to interact with Litmus Edge for device configuration, monitoring, and management. It is built on top of the MCP SDK and adheres to the Model Context Protocol spec.
Run the server in Docker:
docker run -d --name litmus-mcp-server -p 8000:8000 ghcr.io/litmusautomation/litmus-mcp-server:latest
Example mcp.json configuration:
{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<MCP_SERVER_IP>:8000/sse",
"headers": {
"EDGE_URL": "https://<LITMUSEDGE_IP>",
"EDGE_API_CLIENT_ID": "<oauth2_client_id>",
"EDGE_API_CLIENT_SECRET": "<oauth2_client_secret>",
"NATS_SOURCE": "<LITMUSEDGE_IP>",
"NATS_PORT": "4222",
"NATS_USER": "<access_token_username>",
"NATS_PASSWORD": "<access_token_from_litmusedge>",
"INFLUX_HOST": "<LITMUSEDGE_IP>",
"INFLUX_PORT": "8086",
"INFLUX_DB_NAME": "tsdata",
"INFLUX_USERNAME": "<datahub_username>",
"INFLUX_PASSWORD": "<datahub_password>"
}
}
}
}
Header Configuration Guide:
EDGE_URL: Litmus Edge base URL (include https://)EDGE_API_CLIENT_ID / EDGE_API_CLIENT_SECRET: OAuth2 credentials from Litmus EdgeNATS_SOURCE: Litmus Edge IP (no http/https)NATS_USER / NATS_PASSWORD: Access token credentials from System → Access Control → TokensINFLUX_HOST: Litmus Edge IP (no http/https)INFLUX_USERNAME / INFLUX_PASSWORD: DataHub user credentialsSee the Cursor docs for more info.
| Category | Function Name | Description |
|---|---|---|
| DeviceHub | get_litmusedge_driver_list |
List supported Litmus Edge drivers (e.g., ModbusTCP, OPCUA, BACnet). |
get_devicehub_devices |
List all configured DeviceHub devices with connection settings and status. | |
create_devicehub_device |
Create a new device with specified driver and default configuration. | |
get_devicehub_device_tags |
Retrieve all tags (data points/registers) for a specific device. | |
get_current_value_of_devicehub_tag |
Read the current real-time value of a specific device tag. | |
| Device Identity | get_litmusedge_friendly_name |
Get the human-readable name assigned to the Litmus Edge device. |
set_litmusedge_friendly_name |
Update the friendly name of the Litmus Edge device. | |
| LEM Integration | get_cloud_activation_status |
Check cloud registration and Litmus Edge Manager (LEM) connection status. |
| Docker Management | get_all_containers_on_litmusedge |
List all Docker containers running on Litmus Edge Marketplace. |
run_docker_container_on_litmusedge |
Deploy and run a new Docker container on Litmus Edge Marketplace. | |
| NATS Topics * | get_current_value_from_topic |
Subscribe to a NATS topic and return the next published message. |
get_multiple_values_from_topic |
Collect multiple sequential values from a NATS topic for trend analysis. | |
| InfluxDB ** | get_historical_data_from_influxdb |
Query historical time-series data from InfluxDB by measurement and time range. |
| Digital Twins | list_digital_twin_models |
List all Digital Twin models with ID, name, description, and version. |
list_digital_twin_instances |
List all Digital Twin instances or filter by model ID. | |
create_digital_twin_instance |
Create a new Digital Twin instance from an existing model. | |
list_static_attributes |
List static attributes (fixed key-value pairs) for a model or instance. | |
list_dynamic_attributes |
List dynamic attributes (real-time data points) for a model or instance. | |
list_transformations |
List data transformation rules configured for a Digital Twin model. | |
get_digital_twin_hierarchy |
Get the hierarchy configuration for a Digital Twin model. | |
save_digital_twin_hierarchy |
Save a new hierarchy configuration to a Digital Twin model. |
* NATS Topic Tools Requirements:
To use get_current_value_from_topic and get_multiple_values_from_topic, you must configure access control on Litmus Edge:
** InfluxDB Tools Requirements:
To use get_historical_data_from_influxdb, you must allow InfluxDB port access:
This server supports the MCP SSE transport for real-time communication.
http://<server-ip>:8000/sse0.0.0.0:8000/sseDownload or try Litmus Edge via Litmus Central.
Add to ~/.cursor/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<MCP_SERVER_IP>:8000/sse",
"headers": {
"EDGE_URL": "https://<LITMUSEDGE_IP>",
"EDGE_API_CLIENT_ID": "<oauth2_client_id>",
"EDGE_API_CLIENT_SECRET": "<oauth2_client_secret>",
"NATS_SOURCE": "<LITMUSEDGE_IP>",
"NATS_PORT": "4222",
"NATS_USER": "<access_token_username>",
"NATS_PASSWORD": "<access_token_from_litmusedge>",
"INFLUX_HOST": "<LITMUSEDGE_IP>",
"INFLUX_PORT": "8086",
"INFLUX_DB_NAME": "tsdata",
"INFLUX_USERNAME": "<datahub_username>",
"INFLUX_PASSWORD": "<datahub_password>"
}
}
}
}
Add to claude_desktop_config.json:
{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<MCP_SERVER_IP>:8000/sse",
"headers": {
"EDGE_URL": "https://<LITMUSEDGE_IP>",
"EDGE_API_CLIENT_ID": "<oauth2_client_id>",
"EDGE_API_CLIENT_SECRET": "<oauth2_client_secret>",
"NATS_SOURCE": "<LITMUSEDGE_IP>",
"NATS_PORT": "4222",
"NATS_USER": "<access_token_username>",
"NATS_PASSWORD": "<access_token_from_litmusedge>",
"INFLUX_HOST": "<LITMUSEDGE_IP>",
"INFLUX_PORT": "8086",
"INFLUX_DB_NAME": "tsdata",
"INFLUX_USERNAME": "<datahub_username>",
"INFLUX_PASSWORD": "<datahub_password>"
}
}
}
}
In VS Code: Open User Settings (JSON) → Add:
{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<MCP_SERVER_IP>:8000/sse",
"headers": {
"EDGE_URL": "https://<LITMUSEDGE_IP>",
"EDGE_API_CLIENT_ID": "<oauth2_client_id>",
"EDGE_API_CLIENT_SECRET": "<oauth2_client_secret>",
"NATS_SOURCE": "<LITMUSEDGE_IP>",
"NATS_PORT": "4222",
"NATS_USER": "<access_token_username>",
"NATS_PASSWORD": "<access_token_from_litmusedge>",
"INFLUX_HOST": "<LITMUSEDGE_IP>",
"INFLUX_PORT": "8086",
"INFLUX_DB_NAME": "tsdata",
"INFLUX_USERNAME": "<datahub_username>",
"INFLUX_PASSWORD": "<datahub_password>"
}
}
}
}
Or use .vscode/mcp.json in your project.
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"litmus-mcp-server": {
"url": "http://<MCP_SERVER_IP>:8000/sse",
"headers": {
"EDGE_URL": "https://<LITMUSEDGE_IP>",
"EDGE_API_CLIENT_ID": "<oauth2_client_id>",
"EDGE_API_CLIENT_SECRET": "<oauth2_client_secret>",
"NATS_SOURCE": "<LITMUSEDGE_IP>",
"NATS_PORT": "4222",
"NATS_USER": "<access_token_username>",
"NATS_PASSWORD": "<access_token_from_litmusedge>",
"INFLUX_HOST": "<LITMUSEDGE_IP>",
"INFLUX_PORT": "8086",
"INFLUX_DB_NAME": "tsdata",
"INFLUX_USERNAME": "<datahub_username>",
"INFLUX_PASSWORD": "<datahub_password>"
}
}
}
}
© 2025 Litmus Automation, Inc. All rights reserved.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by robotmcp
Enables bidirectional integration of large language models with ROS‑enabled robots, allowing natural language commands and real‑time access to robot state, topics, services and parameters.
by sunsetcoder
Track flights in real time, retrieve arrival and departure times, view airport status, and monitor emergency situations using Flightradar24 data via a Model Context Protocol server.
by EduBase
Enables Claude and other LLMs to interact with the EduBase e‑learning platform via the Model Context Protocol, allowing automated quiz creation, exam scheduling, and result analysis.
by gNucleus
Generate editable CAD parts or assemblies directly from natural‑language prompts by leveraging gNucleus generative AI models through a lightweight MCP server.
by jyjune
Provides control and access to a video surveillance system, allowing retrieval of live and recorded video streams, channel status queries, PTZ camera positioning, and playback dialog management.
by NonicaTeam
Enables AI desktop applications to read and select Revit model elements through a set of predefined micro‑tools, integrated directly into the Nonicatab toolbar.
by zaiwork
MCP Server for ZIZAI Recruitment API.
by wuye-ai
Provides Model Context Protocol endpoints for property‑industry AI services, including daily industry news, knowledge‑base search, and intelligent question‑answering.
by AndrewKlement
Provides real-time access to Gaggiuino espresso machine status, latest shot ID, and detailed shot telemetry for AI clients.