About Ecal MCP
Ecal MCP is an MCP server in the Commerce category: a local MCP server that exposes Eclipse eCAL to LLM clients.
Install
git clone https://github.com/zpg6/ecal-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (11)
ecal_call_serviceCall a method on every discovered server, returning each server's identity (`service_id`, `service_process_id`, `service_host_name`) and response. Pass `target_service_id` to drive exactly one replica; `discovered_instances` reports the visible fleet at call time.
Parameters not published.
ecal_diagnose_topic**Start here when a topic isn't behaving.** Combines a monitoring snapshot (publishers, subscribers, type signatures, transport layers, SHM domains, process health) with a live measurement window and emits a `findings` list naming the actual anomaly: missing publisher / subscriber, metadata mismatch, no shared active transport, cross-host SHM-domain split, ongoing message drops, non-healthy producer process. When the topic doesn't exist at all, a `did_you_mean` finding (`detail.candidates` / `detail.suggestion`) lists the closest known names to catch typos.
Parameters not published.
ecal_get_logsDrain pending eCAL log messages with optional `min_level` (`debug4 < debug3 < debug2 < debug1 < info < warning < error < fatal`), `since_timestamp_us`, and `process_name_pattern` filters.
Parameters not published.
ecal_get_monitoringSingle-call raw monitoring snapshot — publishers, subscribers, services, clients, processes, plus the derived `hosts` roster — in one JSON object. Same underlying snapshot rustecal exposes as `Monitoring::get_snapshot()`. Prefer this over four sequential `ecal_list_*` calls when you need a coherent network survey.
Parameters not published.
ecal_list_hostsFirst-class hosts roster — same entity the eCAL Monitor GUI surfaces — with per-host counts (publishers/subscribers/servers/clients/processes), distinct `shm_transport_domains` seen on that host (>1 ⇒ same-host SHM ineligible between some processes), and the union of `runtime_version` strings (>1 ⇒ heterogeneous eCAL builds on one box). Derived from the same single monitoring snapshot.
Parameters not published.
ecal_list_processesLive eCAL processes with state, runtime version, and `config_file_path`. Accepts `name_pattern` against `unit_name` / `process_name`.
Parameters not published.
ecal_list_publishersSnapshot every publisher (topic, data type, transport layers, host, SHM domain, traffic stats, `data_id`/`data_clock`/`registration_clock`). Accepts `name_pattern` and `type_name_pattern` (case-insensitive substring) and `include_descriptors` (opt-in base-64 type descriptor blobs, off by default — they can be tens of KB each).
Parameters not published.
ecal_list_subscribersSame shape and filtering as publishers.
Parameters not published.
ecal_publishOne-shot publish (`text` is sent via rustecal `StringMessage` / `payload_base64` via `BytesMessage`). Polls for ≥1 subscriber up to `discovery_wait_ms` so the first send actually lands.
Parameters not published.
ecal_subscribeListen on a topic for a fixed window and return up to N samples (UTF-8 + base-64, per-sample `topic_name`).
Parameters not published.
ecal_topic_statsSubscribe for `duration_ms` and report measured rate, payload size min/mean/max, inter-arrival gap min/mean/max, and gap stddev (jitter). The honest answer to "what's actually on the wire?" — independent of the cached `registered_data_frequency_hz` registration value.
Parameters not published.
Ask AI
Ask AI about Ecal MCP
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.