Skip to main content

Lumoz MCP Server

MCP server for Lumoz observability data and RCA resolution reporting. Connect it to Claude, Cursor, GitHub Copilot, Codex, or any other MCP-compatible client to query traces, signals, and problems, and to drive RCA generation and fix reporting directly from your AI tool.

Getting an API Key

  1. Log in to the Lumoz console.
  2. Go to Settings → API Keys (org admin required).
  3. Click Create Key, name it (e.g. MCP - my laptop), and save it.
  4. Copy the key shown as client_id:client_secret — you won't be able to see the secret again after closing the dialog.

The default scopes granted (read:telemetry, write:telemetry) are sufficient for every tool in this server, including the ones that write RCA feedback and fix reports.

Claude / Cursor / Codex / Copilot Config

Requires uv installed locally — uvx runs the server without a separate install step.

{
  "mcpServers": {
    "lumoz": {
      "command": "uvx",
      "args": ["lumoz-mcp"],
      "env": {
        "LUMOZ_API_KEY": "client_id:client_secret"
      }
    }
  }
}

Paste in the key from the step above and you're done — the server talks to Lumoz's production API by default. Add this block to your client's MCP config file (e.g. Claude Desktop's claude_desktop_config.json, or the equivalent settings file for Cursor/Copilot/Codex), then restart the client.

Tools

  • Data: list_services, list_traces, get_trace, get_trace_spans
  • Signals: list_signals, get_signal, list_traces_for_signal, list_trace_signals
  • Errors: list_trace_errors
  • Problems: list_problems, get_problem, list_problem_signals, generate_rca, report_fix, submit_problem_feedback
  • RCA: list_rcas, get_rca, submit_rca_feedback

Inventory Discovery

Use list_services() without an environment argument to discover all service and environment combinations visible to the authenticated tenant. Omitting environment is intentional: it does not fall back to LUMOZ_ENVIRONMENT; it returns every service row across all environments.

Hosts should call this first when they need valid service_id and environment values:

{}

Each returned service row includes service_id, service_name, and environment. Pass environment only when you want to filter inventory to one environment. include_summary=true is the exception: summary metrics require a specific environment.

Signal Discovery

Use list_signals(service_id, environment) to discover valid signal_key values. Signals are backed by classifier results, but hosts should use the signal vocabulary in tool calls.

Common flows:

{
  "service_id": "123",
  "environment": "prod"
}
  • list_traces_for_signal(service_id, signal_key="error_detection") lists traces where the error signal fired.
  • list_traces_for_signal(service_id, signal_key="workflow_anomaly") lists traces matching the workflow anomaly signal.
  • list_trace_signals(service_id, trace_id) lists all signals attached to one trace.
  • list_trace_errors(service_id, trace_id) lists error signals and error spans for one trace.

Problem and RCA Discovery

Problems are groups of detected trace signals sharing the same signature. Drill down progressively:

  1. list_problems(service_id, environment) — paginated, newest-first, each row includes a latest_rca summary if one has been generated.
  2. get_problem(service_id, problem_id) — full detail, including every generated RCA (rcas) and the lifecycle/feedback audit trail (events).
  3. get_rca(rca_id) — the complete RCA writeup (root cause, evidence pattern, recommended fixes), plus the trace signals it covers and its own feedback/lifecycle audit trail (events).

list_rcas(service_id, environment) browses generated RCAs directly, across all problems, without going through list_problems first.

If a problem has no RCA yet, generate_rca(problem_id) creates one (or returns the existing one if already generated).

Problem and RCA Feedback

submit_problem_feedback and submit_rca_feedback record a thumbs_up or thumbs_down vote (optionally with note/reason) against a problem or an RCA, respectively:

{
  "service_id": "123",
  "rca_id": "rca-1",
  "environment": "prod",
  "vote": "thumbs_down",
  "reason": "Recommended fix didn't address the root cause."
}

RCA Fix Reporting

report_fix marks an existing problem resolved and records the fix description. This is one-way — there is no unresolve/reopen action:

{
  "service_id": "123",
  "problem_id": "problem-1",
  "environment": "prod",
  "description": "Added timeout handling around vector search fallback."
}

Troubleshooting

  • environment is required, or set LUMOZ_ENVIRONMENT — normal the first time you use a service: call list_services() to find a valid service_id/environment pair, then pass environment on the call, or set LUMOZ_ENVIRONMENT if you always work in the same one.
  • Client doesn't pick up the server after editing config — most MCP clients only read their config file at startup; fully restart the client, don't just reload a window.

Release files for lumoz-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lumoz-mcp 0.1.1
File Size Uploaded
lumoz_mcp-0.1.1.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lumoz-mcp 0.1.1
File Interpreter ABI Platform
lumoz_mcp-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.2 kB

Release files / lumoz_mcp-0.1.1.tar.gz

Download URL lumoz_mcp-0.1.1.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ff0fb3235844e9119813f9be7840d8acf10866f8fc2bd787c34771dfa392a5fe
BLAKE2b-256 checksum
How to use checksums
21b22e38d4b459a90d3b032a1789a0738e8f634917191c1537b544738b14afde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / lumoz_mcp-0.1.1-py3-none-any.whl

Download URL lumoz_mcp-0.1.1-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f70469fc93d8384d922dc9e861294ef4275a9c2526937eca52227e697a76092c
BLAKE2b-256 checksum
How to use checksums
3419771c1a83a77dff94948b23fb8e9f68a5e8a0b50ff90129644e1882616dcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page