Mezmo MCP Server (Model Context Protocol)
Mezmo MCP is a remote Model Context Protocol (MCP) server that lets AI assistants and IDE chat agents interact with the Mezmo observability platform via the Model Context Protocol. Use it for streamlined observability, log analysis, and root-cause analysis in your favorite tools.
Add Mezmo MCP and you can:
- 🕵️ Run advanced Root-cause analysis over recent logs
- 📦 List and describe Pipelines
- 📤 Export and filter Logs with powerful query syntax
Overview
Mezmo MCP is a remote MCP server that connects AI assistants and IDE chat to Mezmo so you can run advanced root-cause analysis, discover pipelines, and export logs without hosting anything yourself. It’s built for observability use cases and works across many popular MCP clients.
Available Tools & Examples
1. Log Analysis & Root Cause Detection
analyze_logs_for_root_cause_relative_time
Fetches, processes (deduplicates, clusters), and analyzes logs to determine potential root causes for incidents within a relative time range.
Use cases:
- Investigating recent incidents
- Finding root causes of system failures
- Analyzing error patterns
Example: "Analyze the logs from the last 30 minutes to find the root cause of API service returning 500 errors"
analyze_logs_for_root_cause_time_range
Similar to the relative time version but uses absolute time ranges.
Example: "What caused the database connection pool to be exhausted between 10 AM and 11 AM today in the backend app?"
2. Log Deduplication
deduplicate_logs_relative_time
Removes duplicate log entries within a relative time range.
Example: "Deduplicate the error logs from the payment service in the last 15 minutes"
deduplicate_logs_time_range
Deduplicates logs within an absolute time range.
Example: "Remove duplicate exception logs from the web frontend between 2 PM and 3 PM yesterday"
3. Log Grouping & Aggregation
group_logs_by_field
Groups logs by a specific field and returns distribution of values with optional metric aggregation.
Use cases:
- "Which apps generate the most errors?"
- "What is the p95 latency per host?"
- "Which pods are producing the most logs?"
Examples:
"Which apps are generating the most errors? Show me the top 10"
"What's the p95 latency for each host between 9 AM and 10 AM today?"
"Show me the average memory usage by pod in the production namespace"
4. Log Visualization
get_log_histogram
Returns a time-series histogram of log volume over time.
Use cases:
- Visualizing log activity patterns
- Identifying spikes or anomalies
- Understanding when incidents occurred
Examples:
"Show me a histogram of error logs over the last hour"
"Create a histogram of API 500 errors from 8 AM to 12 PM today with 5-minute buckets"
"Visualize warning logs from the production namespace over the last hour with 30-second granularity"
5. Field Discovery
list_log_fields
Lists available structured fields that can be used in log queries.
Use cases:
- Discovering available fields for queries
- Finding field names like "app", "host", "level", "namespace"
Examples:
"What log fields are available?"
"Show me all fields that contain 'kubernetes'"
"List all fields that start with 'http'"
"Find all fields ending with '_ms' (timing metrics)"
"Is there an 'app' field in the logs?"
"Show me fields that start with 'request' and end with 'time'"
6. Pipeline Management
list_pipelines
Lists available Mezmo v3 pipelines.
Example: "Show me all the Mezmo pipelines" "What pipelines are configured?"
get_pipeline
Gets details for a specific Mezmo v3 pipeline.
Parameters:
pipeline_id(required): UUID of the pipeline
Example: "Show me the details for pipeline 123e4567-e89b-12d3-a456-426614174000" "What's the configuration of the production-logs pipeline?"
7. Time Utilities
get_current_time
Returns the current server time in various formats.
Example: "What time is it right now?" "Get the current timestamp"
Use cases:
- Determining time ranges for log analysis
- Converting between time formats
relative_time_to_time_range
Converts relative time expressions to absolute time ranges in milliseconds.
Examples:
"Convert 'last 5 minutes' to an absolute time range" "What's the timestamp range for '2 hours ago'?"
Best Practices
- Start broad for root-cause analysis
- If the query is too narrow, our RCA can't do its thing. Cast a wide net, and if needed, specify app/service/level in subsequent queries.
- Prefer analyze_logs_for_root_cause or deduplicate_log tools for insights
- These tools deduplicate and groups similar logs for better summaries, allowing the results to fit into finite LLM context windows.
- Use relative time ranges
- Prefer values like
last_15_minutes,last_hourwhen supported. - Keep prompts simple; add filters gradually
- Add
app,host,level, andqueryfilters step by step. - Use export_logs for raw data only
- For dashboards or offline analysis, use
export_logs; otherwise prefer RCA.
Installation
Requirements
- A Mezmo Service Key (generate one in your Mezmo dashboard under Settings > API Keys; see Mezmo docs for details)
- Node.js ≥ 18 (only needed for clients that use the
mcp-remotebridge) - One of the supported MCP clients below
For every client we follow a simple rule:
- Supports remote URL? → configure it with a
urlthat points tohttps://mcp.mezmo.com/mcpand include theAuthorizationheader. - StdIO-only client? → use the
mcp-remotebridge:
AUTH_HEADER="Bearer <SERVICE KEY>" npx mcp-remote https://mcp.mezmo.com/mcp \ --header "Authorization:${AUTH_HEADER}"Client Configurations
Cursor
Cursor natively supports remote MCP servers, so you only need a remote configuration.
Install Mezmo MCP Server in Cursor
Clicking the Install MCP Server badge opens Cursor and automatically adds the mezmo entry to your ~/.cursor/mcp.json with a placeholder for the Service Key. After it’s created, edit the file and replace <SERVICE KEY> with your actual Mezmo service key. Restart Cursor for changes to take effect. The final configuration should look like the example below.
{ "mcpServers": { "mezmo": { "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}Windsurf
Windsurf also supports remote servers via the serverUrl field.
{ "mcpServers": { "mezmo": { "serverUrl": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}Trae
{ "mcpServers": { "mezmo": { "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}VS Code’s Copilot Chat or Visual Studio 2022
"mcp": { "servers": { "mezmo": { "type": "http", "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}Zed
Zed does not support remote URLs yet, so use the mcp-remote bridge.
{ "context_servers": { "Mezmo": { "command": { "path": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } }, "settings": {} } }}Gemini CLI
{ "mcpServers": { "mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}Claude Code
claude mcp add --transport http mezmo https://mcp.mezmo.com/mcp \ --header "Authorization: Bearer <SERVICE KEY>"Claude Desktop
{ "mcpServers": { "Mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}BoltAI
{ "mcpServers": { "mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}Windows (CMD)
{ "mcpServers": { "mezmo": { "command": "cmd", "args": [ "/c", "npx", "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}Augment Code
Add a new MCP and enter:
AUTH_HEADER="Bearer <SERVICE KEY>" npx mcp-remote https://mcp.mezmo.com/mcp \ --header "Authorization:${AUTH_HEADER}"Roo Code
Roo Code supports remote URLs:
{ "mcpServers": { "mezmo": { "type": "streamable-http", "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}ZenCoder
{ "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" }}Amazon Q Developer CLI
{ "mcpServers": { "mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}Qodo Gen
{ "mcpServers": { "mezmo": { "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" } } }}JetBrains AI Assistant
{ "mcpServers": { "mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" } } }}Warp
{ "Mezmo": { "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" }, "working_directory": null, "start_on_launch": true }}OpenCode
"mcp": { "mezmo": { "type": "remote", "url": "https://mcp.mezmo.com/mcp", "headers": { "Authorization": "Bearer <SERVICE KEY>" }, "enabled": true }}Codex CLI
Add to ~/.codex/config.toml:
Codex defaults to being sandboxed, so you'll also need to give it network access. If you want to run in a sandbox mode of workspace-write for example, add this:
You can either start with a flag like codex --sandbox workspace-write or set a default mode with:
Troubleshooting
1. npx argument-escaping bug
Some clients pass command-line arguments to npx without quoting spaces. This can split the Authorization header (e.g. Bearer and the token become separate arguments) and cause authentication failures.
Work-around: store the header in an environment variable and pass it without spaces:
{ "command": "npx", "args": [ "mcp-remote", "https://mcp.mezmo.com/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer <SERVICE KEY>" }}2. Lost connection to the Mezmo MCP server
If your client shows an error such as “server disconnected” or stops responding to MCP commands:
- Disable or remove the Mezmo MCP entry in your client settings.
- Re-enable (or re-add) the same entry, or simply restart the client.
This forces the client to establish a fresh connection to the Mezmo MCP backend.
3. 401/403 authentication errors
- Verify the
Authorizationheader is present and formatted asBearer <SERVICE KEY>. - If using
npx mcp-remote, prefer the environment variable approach to avoid splitting the header. - Regenerate your Service Key in Mezmo and try again if issues persist.
Next Steps
Once your client is configured you can immediately run natural-language commands such as
analyze my logs from the last 30 minutes and determine root cause for any issues that you findlist all my pipelinesshow me details for pipeline <pipeline title>deduplicate error logs from the last 30 minutes for app "my-app-frontend"
Enjoy streamlined observability with Mezmo + AI! 🎉