This is a read-only MCP server for OpenObserve Community Edition that enables querying and analysis of logs, traces, dashboards, and stream metadata via the OpenObserve REST API from local MCP clients like Claude and Codex.
list_streams: Browse available streams in your organization, filterable by keyword and stream type, with sorting and pagination support.get_stream_schema: Retrieve field/schema information for a specific stream, with a configurable limit on fields to inspect.search_logs: Run SQL queries against logs supporting WHERE, ORDER BY, GROUP BY, and aggregate functions. Includes token-efficient output formats (recordsorcolumns) and Kubernetes-compact record profiles.search_around: Fetch log records surrounding a specific entry by its_timestampvalue for contextual investigation.search_values: Discover distinct field values for a stream over a time range, with optional filtering and keyword search.list_dashboards: List all dashboards in your organization, with optional filtering by title or folder.get_dashboard: Retrieve the full definition of a specific dashboard by its ID.get_latest_traces: Fetch the most recent trace data from a trace stream within a given time range, with optional filtering.
Supports basic and bearer authentication, optional organization specification, SSL verification control, timeout settings, and multiple deployment options (uvx, local binary, or Docker).
OpenObserve MCP
stdio MCP server for OpenObserve Community Edition, using only the regular REST API.
This package is designed for local MCP clients such as Claude and Codex.
What it is:
stdioonlyCommunity Edition only
read-only only
regular OpenObserve REST API only
no native
/mcpendpoint
The server can boot without an active OpenObserve configuration so hosted MCP platforms can start it,
but every tool call still requires a reachable external OpenObserve instance configured via OO_BASE_URL
and credentials.
Quick Start
1. Create a config file
uvx --from openobserve-community-mcp openobserve-mcp init-configThis creates a sample config at:
~/.config/openobserve-mcp/config.envEdit it:
vim ~/.config/openobserve-mcp/config.envExample:
OO_BASE_URL=https://openobserve.example.com
# Optional if the credentials have access to exactly one organization.
# OO_ORG_ID=default
OO_AUTH_MODE=basic
OO_USERNAME=your_username
OO_PASSWORD=your_password
OO_TIMEOUT_SECONDS=20
OO_VERIFY_SSL=true2. Add it to Claude
claude mcp add -s user openobserve-community -- uvx --from openobserve-community-mcp openobserve-mcp3. Add it to Codex
codex mcp add openobserve-community -- uvx --from openobserve-community-mcp openobserve-mcpDocker / Glama
This repository also publishes a container image for Docker-based MCP clients and Glama deployments:
docker run --rm -i \
-e OO_BASE_URL \
-e OO_ORG_ID \
-e OO_AUTH_MODE \
-e OO_USERNAME \
-e OO_PASSWORD \
-e OO_TOKEN \
-e OO_TIMEOUT_SECONDS \
-e OO_VERIFY_SSL \
ghcr.io/alilxxey/openobserve-community-mcp:latestOO_ORG_ID is optional when the credentials only have access to one organization.
Use OO_USERNAME and OO_PASSWORD for basic auth, or OO_TOKEN for bearer auth.
The container can start without these values for hosted MCP platforms, but tool calls will fail until
you configure a real external OpenObserve instance.
Configuration
Default config path:
~/.config/openobserve-mcp/config.envSupported settings:
OO_BASE_URLOO_ORG_IDoptionalOO_AUTH_MODEOO_USERNAMEandOO_PASSWORDfor basic authOO_TOKENfor bearer authOO_TIMEOUT_SECONDSOO_VERIFY_SSLOO_CONFIG_FILEoptional explicit path to a config file
Config precedence:
explicit
OO_CONFIG_FILE~/.config/openobserve-mcp/config.envlegacy
.env.localin the current directoryprocess environment overrides file values
You can also pass config directly via MCP client env settings.
Claude with inline env
claude mcp add -s user openobserve-community \
-e OO_BASE_URL=https://openobserve.example.com \
-e OO_AUTH_MODE=basic \
-e OO_USERNAME=your_username \
-e OO_PASSWORD=your_password \
-- uvx --from openobserve-community-mcp openobserve-mcpCodex with inline env
codex mcp add openobserve-community \
--env OO_BASE_URL=https://openobserve.example.com \
--env OO_AUTH_MODE=basic \
--env OO_USERNAME=your_username \
--env OO_PASSWORD=your_password \
-- uvx --from openobserve-community-mcp openobserve-mcpTools
list_streamsget_stream_schemasearch_logssearch_aroundsearch_valueslist_dashboardsget_dashboardget_latest_traces
Optional Local Install
If you prefer a persistent local binary instead of uvx:
uv tool install openobserve-community-mcpThis installs the openobserve-mcp command into your user-level uv tools directory.
Add To Claude With Global Install
claude mcp add -s user openobserve-community -- openobserve-mcpAdd To Codex With Global Install
codex mcp add openobserve-community -- openobserve-mcpYou can also run the server directly:
openobserve-mcpThis mode may require ~/.local/bin to be present in your PATH.
If openobserve-mcp is not found, either:
add
~/.local/binto yourPATH; oruse the recommended
uvx --from openobserve-community-mcp openobserve-mcplaunch mode instead.