A side-by-side look at the MCP Server and Openobserve Community MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Server for monitoring work as a local process; choose Openobserve Community MCP for monitoring as a local process. You can also run both side by side in one mcpServers block.
MACKEREL_APIKEY.list_alerts, get_alert, get_alert_logs.OO_BASE_URL, OO_ORG_ID, OO_AUTH_MODE, OO_USERNAME, OO_PASSWORD, OO_TOKEN, OO_TIMEOUT_SECONDS, OO_VERIFY_SSL.list_streams, get_stream_schema, search_logs.Rows where the two servers differ are marked.
| Spec | M MCP Server | |
|---|---|---|
| Category | Monitoring | Monitoring |
| Quality signal | 60/100 · Good | 56/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | other |
| Pricing | BYOK (pay the provider) | Free |
| Required env vars | MACKEREL_APIKEY | OO_BASE_URLOO_ORG_IDOO_AUTH_MODEOO_USERNAMEOO_PASSWORDOO_TOKENOO_TIMEOUT_SECONDSOO_VERIFY_SSL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 7 | 16 |
| Directory activity | 0 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 16 | 8 |
| Full listing | View MCP Server | View Openobserve Community MCP |
list_alertsRetrieve alerts.get_alertRetrieve a specific alert.get_alert_logsRetrieve logs for a specific alert.list_dashboardsRetrieve dashboards.get_dashboardRetrieve a specific dashboard.update_dashboardUpdate a specific dashboard.list_hostsRetrieve hosts.get_host_metricsRetrieve metrics data for a specific host.list_servicesRetrieve services.get_service_metricsRetrieve metrics data for a specific service.list_monitorsRetrieve monitor configurations.get_monitorRetrieve a specific monitor configuration.list_streamsList streams available in the current organization.get_stream_schemaGet schema information for a specific stream. Use this first to confirm real field names before writing SQL; many log streams expose `message` rather than `log`. Increase fields_limit to inspect more fields from large schemas.search_logsRun a full SQL search against OpenObserve logs. Example row query: SELECT _timestamp, message FROM "my_stream" ORDER BY _timestamp DESC LIMIT 20. Example aggregate query: SELECT level, count(*) AS cnt FROM "my_stream" GROUP BY level ORDER BY cnt DESC LIMIT 20. Prefer double quotes around stream names in SQL when in doubt, and confirm actual field names with get_stream_schema instead of assuming a `log` column. start_time and end_time accept Unix timestamps in seconds, milliseconds, microseconds, or nanoseconds and are normalized to microseconds. The limit parameter sets the API page size; if your OpenObserve/DataFusion setup still complains about ORDER BY without a SQL LIMIT, add an explicit LIMIT to the SQL as well. output_format can be 'records' or 'columns'; 'columns' is especially useful for wide SELECT * queries and can save roughly 35-40% tokens. record_profile can be 'generic' or 'kubernetes_compact'; the Kubernetes compact profile trims common noisy metadata fields such as pod labels and pod IP metadata.search_aroundFetch records around a specific log entry. key accepts Unix timestamps in seconds, milliseconds, microseconds, or nanoseconds for convenience, but the best input is the exact `_timestamp` returned by search_logs; otherwise OpenObserve may return no nearby rows. output_format can be 'records' or 'columns' for a more token-efficient table shape. record_profile can be 'generic' or 'kubernetes_compact'.search_valuesGet distinct field values for a stream over a time range. stream_name is the raw stream name path segment, for example my_stream; do not quote it like SQL. fields is a comma-separated field list. filter_query uses OpenObserve's _values filter syntax, e.g. kubernetes_pod_namespace=litellm. Simple SQL-like equality such as kubernetes_pod_namespace='litellm' is normalized automatically. start_time and end_time accept Unix timestamps in seconds, milliseconds, microseconds, or nanoseconds and are normalized to microseconds. In this tool, total means the number of field groups returned, not the total number of matching log records.list_dashboardsList dashboards in the current organization.get_dashboardGet a dashboard definition by id.get_latest_tracesGet the latest trace data from a trace stream. start_time and end_time accept Unix timestamps in seconds, milliseconds, microseconds, or nanoseconds and are normalized to microseconds.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"mcp-server-180": {
"command": "npx",
"args": [
"-y",
"@mackerel/mcp-server"
],
"env": {
"MACKEREL_APIKEY": "YOUR_MACKEREL_APIKEY_HERE"
}
}
}
}
{
"mcpServers": {
"alilxxey-openobserve-community-mcp": {
"command": "uvx",
"args": [
"--from",
"openobserve-community-mcp",
"openobserve-mcp"
],
"env": {
"OO_BASE_URL": "YOUR_OO_BASE_URL_HERE",
"OO_ORG_ID": "YOUR_OO_ORG_ID_HERE",
"OO_AUTH_MODE": "YOUR_OO_AUTH_MODE_HERE",
"OO_USERNAME": "YOUR_OO_USERNAME_HERE",
"OO_PASSWORD": "YOUR_OO_PASSWORD_HERE",
"OO_TOKEN": "YOUR_OO_TOKEN_HERE",
"OO_TIMEOUT_SECONDS": "YOUR_OO_TIMEOUT_SECONDS_HERE",
"OO_VERIFY_SSL": "YOUR_OO_VERIFY_SSL_HERE"
}
}
}
}