Skip to content

Litmus MCP Server Release v0.0.6

Choose a tag to compare

@parthShahLitmus parthShahLitmus released this 27 Feb 20:04
· 71 commits to main since this release
8f3937e

v0.0.6

What's Changed

Web Client (restored & significantly enhanced)

  • Re-added the browser-based chat UI (/) with streaming responses for Anthropic and OpenAI models
  • Dynamic model selection - live model picker fetches available models directly from the Anthropic and OpenAI APIs; selected model persists in .env
  • Multi-instance Litmus Edge support - configure, switch, activate, and remove multiple Edge instances from the Config page; active credentials are mirrored to the main EDGE_* env vars automatically
  • Per-instance health dashboard (/health) - service status grid (DeviceHub, Digital Twins, Flows Manager, Analytics, Marketplace, OPC UA, System) with live version numbers per instance
  • MCP Client Config floating panel - pre-filled JSON snippets for Cursor, VS Code, Claude Code, and Claude Desktop; available on every page with static HTML fallback (no JS required)
  • Tools & Resources panel - compact tool list with hover descriptions and click-to-expand markdown modal; sessionStorage caching avoids re-fetching /mcp-info on every navigation
  • Configuration page consolidated: API keys, active model, Edge instances, and connection settings in one place

MCP Server

  • MCP Resources - new resource_tools.py exposes live docs.litmus.io documentation as MCP resources under litmus://docs/* URIs; clients can read documentation directly from the context
  • Tag query overhaul - get_devicehub_device_tags now uses GraphQL directly (api.gql_query); supports querying a single device or all devices; counts tags first and refuses to list if the total exceeds 1,000 (returning an informative message instead)
  • Device list cache - 10-second in-process cache keyed by EDGE_URL prevents redundant API round-trips when the LLM calls multiple device tools in the same turn
  • NATS timeouts - explicit 30-second timeout on single and multi-topic NATS subscriptions with a clear error message on expiry

Infrastructure

  • SDK bump - litmussdk updated to 2.5.3, supporting LitmusEdge v4.0.x
  • GitHub Actions CI - new workflow runs ruff lint and pytest on push to main/develop and on PRs to main
  • Docker / run.sh - run.sh now selects the project venv Python (.venv/bin/python3) explicitly, ensuring correct package resolution both locally and in Docker without relying on PATH manipulation; MCP SSE server readiness is polled before the web client starts accepting connections
  • MCP_PORT env var - overrides the default SSE port (8000) consistently across server and readiness check

Tests

  • Added tests/test_env_config.py - env loader, updater, multi-instance helpers
  • Added tests/test_influxdb_validation.py - InfluxDB query parameter validation
  • Updated tests/test_mcp_tools.py - aligned with new GraphQL-based tag implementation; 19 tests, 59 total across suite

Full Changelog: v0.0.5...v0.0.6