Observability

Install

Select a method below to install the server.
Cursor
Claude Code
Claude Desktop
VS Code
Gemini CLI
Codex CLI
Available Tools (13)
get-keys Discover available data keys/dimensions for a product type. Use this tool BEFORE creating dashboards to understand what data fields are available for filtering and grouping. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - productType (required): One of "logs", "traces", "sessions", "errors", "metrics", "events" - startDate (required): ISO format start date (e.g., "2024-01-15T10:00:00Z") - endDate (optional): ISO format end date (defaults to current time) - search (optional): Filter keys by name - limit (optional, default 25): Maximum number of keys to return RETURNS: - keys: Array of key objects with name and type - product_type: The queried product type - key_count: Number of keys returned Use the returned keys in: - create-graph groupBy parameter - Query filters Example usage: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z"}
Discover available data keys/dimensions for a product type. Use this tool BEFORE creating dashboards to understand what data fields are available for filtering and grouping. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - productType (required): One of "logs", "traces", "sessions", "errors", "metrics", "events" - startDate (required): ISO format start date (e.g., "2024-01-15T10:00:00Z") - endDate (optional): ISO format end date (defaults to current time) - search (optional): Filter keys by name - limit (optional, default 25): Maximum number of keys to return RETURNS: - keys: Array of key objects with name and type - product_type: The queried product type - key_count: Number of keys returned Use the returned keys in: - create-graph groupBy parameter - Query filters Example usage: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z"}
Read-only Idempotent Open-world
preview-graph Preview a chart/graph inline WITHOUT saving it to a dashboard. Always use this tool first when a user asks to create or visualize a chart. Returns both the graph configuration and the queried metrics data so the user can see the chart rendered inline. After showing the preview, ask the user if they want to save it to a dashboard (using create-graph). REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - title: Chart title. - type: Chart type — "Line chart", "Bar chart", or "Table". - productType: Data source — one of "Logs", "Traces", "Sessions", "Errors", "Events", "Metrics" (case-insensitive aliases accepted). - expressions: Array of aggregations, each with { aggregator, column }. e.g. [{"aggregator": "Count", "column": ""}] for a raw count, or [{"aggregator": "P90", "column": "duration"}] for a percentile. Valid aggregators: Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum. OPTIONAL INPUTS: - query: Filter string using search syntax, e.g. "level=error" or "service_name=api". - groupBy: Array of dimension keys, e.g. ["level"] or ["service_name", "level"]. Use get-keys to discover available keys. - bucketCount: Number of time buckets (default 12). - startDate: ISO start date. If neither startDate nor endDate is provided, defaults to the last 24 hours. - endDate: ISO end date. Defaults to now when startDate is provided without endDate. - display: Display style for bar charts, e.g. "Stacked" or "Grouped". RETURNS: - title, type, product_type, query, expressions, group_by, display: echoed graph configuration. - metrics: time-series buckets queried for the preview. - _hint: reminder that the UI renders the chart directly — do not emit markdown image syntax. Example — logs by level as a stacked bar chart: {"projectKey": "default", "title": "Logs by Level", "type": "Bar chart", "productType": "Logs", "expressions": [{"aggregator": "Count", "column": ""}], "groupBy": ["level"], "display": "Stacked"}
Preview a chart/graph inline WITHOUT saving it to a dashboard. Always use this tool first when a user asks to create or visualize a chart. Returns both the graph configuration and the queried metrics data so the user can see the chart rendered inline. After showing the preview, ask the user if they want to save it to a dashboard (using create-graph). REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - title: Chart title. - type: Chart type — "Line chart", "Bar chart", or "Table". - productType: Data source — one of "Logs", "Traces", "Sessions", "Errors", "Events", "Metrics" (case-insensitive aliases accepted). - expressions: Array of aggregations, each with { aggregator, column }. e.g. [{"aggregator": "Count", "column": ""}] for a raw count, or [{"aggregator": "P90", "column": "duration"}] for a percentile. Valid aggregators: Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum. OPTIONAL INPUTS: - query: Filter string using search syntax, e.g. "level=error" or "service_name=api". - groupBy: Array of dimension keys, e.g. ["level"] or ["service_name", "level"]. Use get-keys to discover available keys. - bucketCount: Number of time buckets (default 12). - startDate: ISO start date. If neither startDate nor endDate is provided, defaults to the last 24 hours. - endDate: ISO end date. Defaults to now when startDate is provided without endDate. - display: Display style for bar charts, e.g. "Stacked" or "Grouped". RETURNS: - title, type, product_type, query, expressions, group_by, display: echoed graph configuration. - metrics: time-series buckets queried for the preview. - _hint: reminder that the UI renders the chart directly — do not emit markdown image syntax. Example — logs by level as a stacked bar chart: {"projectKey": "default", "title": "Logs by Level", "type": "Bar chart", "productType": "Logs", "expressions": [{"aggregator": "Count", "column": ""}], "groupBy": ["level"], "display": "Stacked"}
Read-only Idempotent Open-world
create-graph Add a chart/graph to an existing dashboard. IMPORTANT: Before creating a graph: 1. Use get-keys to discover available data dimensions 2. Use the data query tools (query-logs, query-traces, query-aggregations, query-error-groups, query-sessions) to verify data exists INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - dashboardId (required): ID of the dashboard to add the graph to - title (required): Chart title (e.g., "Error Rate by Service") - type (required): Chart type - one of: - "Line chart": For time-series trends (errors over time, latency trends) - "Bar chart / histogram": For comparisons (errors by service, requests by endpoint) - "Table": For detailed breakdowns with multiple dimensions - productType (required): Data source - one of: - "Logs": Log entries - "Traces": Distributed traces/spans - "Errors": Error groups - "Sessions": User sessions - "Metrics": Custom metrics - "Events": Product analytics events - expressions (required): Array of aggregations, each with: - aggregator: One of Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum - column: Field to aggregate (empty string "" for Count, field name for others) - query (optional): Filter query string using search syntax - groupBy (optional): Array of dimension keys to group by - groupByLimit (optional, default 10): Maximum number of series to render when groupBy is set. High-cardinality dimensions (URLs, click selectors, account IDs) can produce hundreds of series and make the dashboard UI unresponsive — keep this small. Ignored when groupBy is empty. - limitAggregator (optional, default "Count"): Which aggregator to rank groups by when applying groupByLimit. Use the same aggregator you ranked by in query-aggregations. - limitColumn (optional): Column used alongside limitAggregator when ranking groups (e.g. "duration" for P90 latency ranking). Ignored for Count. - bucketBy (optional, default "Timestamp"): Field to bucket by for time-series - bucketCount (optional, default 12): Number of time buckets - display (optional): Display style - "Line", "Stacked", "Stacked area" CHART TYPE SELECTION GUIDE: - Use "Line chart" for: Error rates over time, latency percentiles, request volume trends - Use "Bar chart / histogram" for: Top errors by type, requests by endpoint, errors by browser - Use "Table" for: Detailed error listings, session breakdowns, trace details AGGREGATOR SELECTION GUIDE: - Count: Total number of events (most common) - CountDistinct: Unique values (users, sessions, trace IDs) - Avg/P50/P90/P95/P99: Latency and duration metrics (P95 for Web Vitals / Datadog-style SLOs) - Sum: Aggregate numeric totals NOTE: The backend does NOT currently accept P75. Use P90 or P95 instead if you need a high-percentile Web Vitals metric. Example - Error count over time: {"dashboardId": 12345, "title": "Error Count", "type": "Line chart", "productType": "Errors", "expressions": [{"aggregator": "Count", "column": ""}], "bucketCount": 24} Example - Top 10 errors by service: {"dashboardId": 12345, "title": "Errors by Service", "type": "Bar chart / histogram", "productType": "Errors", "expressions": [{"aggregator": "Count", "column": ""}], "groupBy": ["service_name"], "groupByLimit": 10}
Add a chart/graph to an existing dashboard. IMPORTANT: Before creating a graph: 1. Use get-keys to discover available data dimensions 2. Use the data query tools (query-logs, query-traces, query-aggregations, query-error-groups, query-sessions) to verify data exists INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - dashboardId (required): ID of the dashboard to add the graph to - title (required): Chart title (e.g., "Error Rate by Service") - type (required): Chart type - one of: - "Line chart": For time-series trends (errors over time, latency trends) - "Bar chart / histogram": For comparisons (errors by service, requests by endpoint) - "Table": For detailed breakdowns with multiple dimensions - productType (required): Data source - one of: - "Logs": Log entries - "Traces": Distributed traces/spans - "Errors": Error groups - "Sessions": User sessions - "Metrics": Custom metrics - "Events": Product analytics events - expressions (required): Array of aggregations, each with: - aggregator: One of Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum - column: Field to aggregate (empty string "" for Count, field name for others) - query (optional): Filter query string using search syntax - groupBy (optional): Array of dimension keys to group by - groupByLimit (optional, default 10): Maximum number of series to render when groupBy is set. High-cardinality dimensions (URLs, click selectors, account IDs) can produce hundreds of series and make the dashboard UI unresponsive — keep this small. Ignored when groupBy is empty. - limitAggregator (optional, default "Count"): Which aggregator to rank groups by when applying groupByLimit. Use the same aggregator you ranked by in query-aggregations. - limitColumn (optional): Column used alongside limitAggregator when ranking groups (e.g. "duration" for P90 latency ranking). Ignored for Count. - bucketBy (optional, default "Timestamp"): Field to bucket by for time-series - bucketCount (optional, default 12): Number of time buckets - display (optional): Display style - "Line", "Stacked", "Stacked area" CHART TYPE SELECTION GUIDE: - Use "Line chart" for: Error rates over time, latency percentiles, request volume trends - Use "Bar chart / histogram" for: Top errors by type, requests by endpoint, errors by browser - Use "Table" for: Detailed error listings, session breakdowns, trace details AGGREGATOR SELECTION GUIDE: - Count: Total number of events (most common) - CountDistinct: Unique values (users, sessions, trace IDs) - Avg/P50/P90/P95/P99: Latency and duration metrics (P95 for Web Vitals / Datadog-style SLOs) - Sum: Aggregate numeric totals NOTE: The backend does NOT currently accept P75. Use P90 or P95 instead if you need a high-percentile Web Vitals metric. Example - Error count over time: {"dashboardId": 12345, "title": "Error Count", "type": "Line chart", "productType": "Errors", "expressions": [{"aggregator": "Count", "column": ""}], "bucketCount": 24} Example - Top 10 errors by service: {"dashboardId": 12345, "title": "Errors by Service", "type": "Bar chart / histogram", "productType": "Errors", "expressions": [{"aggregator": "Count", "column": ""}], "groupBy": ["service_name"], "groupByLimit": 10}
Open-world
create-dashboard Create a new empty dashboard (visualization) for organizing charts. IMPORTANT: Before creating a new dashboard: 1. Use list-dashboards to check if a similar dashboard already exists 2. Use get-keys to discover available data dimensions for the product types you want to chart INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - name (required): Name for the dashboard (e.g., "Frontend Errors Overview") - timePreset (optional, default "last_24_hours"): Default time range. Use format like "last_24_hours", "last_7_days", "last_30_days" RETURNS: - dashboard_created: Boolean indicating success - dashboard_id: ID of the created dashboard - dashboard_url: URL to view the dashboard - name: Dashboard name After creating a dashboard, use create-graph to add charts to it. Example usage: {"name": "API Performance Dashboard", "timePreset": "last_7_days"}
Create a new empty dashboard (visualization) for organizing charts. IMPORTANT: Before creating a new dashboard: 1. Use list-dashboards to check if a similar dashboard already exists 2. Use get-keys to discover available data dimensions for the product types you want to chart INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - name (required): Name for the dashboard (e.g., "Frontend Errors Overview") - timePreset (optional, default "last_24_hours"): Default time range. Use format like "last_24_hours", "last_7_days", "last_30_days" RETURNS: - dashboard_created: Boolean indicating success - dashboard_id: ID of the created dashboard - dashboard_url: URL to view the dashboard - name: Dashboard name After creating a dashboard, use create-graph to add charts to it. Example usage: {"name": "API Performance Dashboard", "timePreset": "last_7_days"}
Open-world
get-dashboard Get detailed information about a specific dashboard including all its graphs. Use this tool to understand the configuration of an existing dashboard. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - dashboardId (required): The numeric ID of the dashboard RETURNS: - id: Dashboard ID - name: Dashboard name - time_preset: Default time range - dashboard_url: URL to view the dashboard - graphs: Array of graph configurations with type, title, expressions, etc. - graph_count: Number of graphs in the dashboard Example usage: {"projectKey": "default", "dashboardId": 12345}
Get detailed information about a specific dashboard including all its graphs. Use this tool to understand the configuration of an existing dashboard. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - dashboardId (required): The numeric ID of the dashboard RETURNS: - id: Dashboard ID - name: Dashboard name - time_preset: Default time range - dashboard_url: URL to view the dashboard - graphs: Array of graph configurations with type, title, expressions, etc. - graph_count: Number of graphs in the dashboard Example usage: {"projectKey": "default", "dashboardId": 12345}
Read-only Idempotent Open-world
list-dashboards List existing dashboards (visualizations) for the project. Use this tool to see what dashboards already exist before creating new ones. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - search (optional): Filter dashboards by name - limit (optional, default 10): Maximum number of dashboards to return RETURNS: - dashboards: Array of dashboard objects with id, name, graph_count, updated_at, dashboard_url - total_count: Total number of matching dashboards Example usage: {"projectKey": "default", "search": "frontend"}
List existing dashboards (visualizations) for the project. Use this tool to see what dashboards already exist before creating new ones. INPUTS: - projectKey (required): The LaunchDarkly project key (e.g., "default"). - search (optional): Filter dashboards by name - limit (optional, default 10): Maximum number of dashboards to return RETURNS: - dashboards: Array of dashboard objects with id, name, graph_count, updated_at, dashboard_url - total_count: Total number of matching dashboards Example usage: {"projectKey": "default", "search": "frontend"}
Read-only Idempotent Open-world
query-flag-evaluations Query flag evaluations for a session. Retrieve flag evaluation events for a specific session to understand which feature flags were evaluated during that session. The tool always scopes results to the given session via secure_session_id and to feature flag events via events.name=feature_flag. Any additional filters (e.g. service_name) can be supplied via the optional query input. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - sessionSecureId: The secure ID of the session to get flag evaluations for. REQUIRED. - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Additional filters appended to the session/feature-flag scope (e.g. "service_name=gonfalon-web"). Defaults to empty string. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". - limit: Number of flag evaluation entries to return. Do not use a value greater than 100. Defaults to 50. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns flag evaluation events containing timestamp, flag name, and evaluation attributes that occurred during the session. These events provide insights into which feature flags were evaluated and their values during the user session. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. Examples: 1. Specific time window: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z"} 3. Extended search: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "limit": 100} 4. Scoped to a service: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "query": "service_name=gonfalon-web"}
Query flag evaluations for a session. Retrieve flag evaluation events for a specific session to understand which feature flags were evaluated during that session. The tool always scopes results to the given session via secure_session_id and to feature flag events via events.name=feature_flag. Any additional filters (e.g. service_name) can be supplied via the optional query input. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - sessionSecureId: The secure ID of the session to get flag evaluations for. REQUIRED. - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Additional filters appended to the session/feature-flag scope (e.g. "service_name=gonfalon-web"). Defaults to empty string. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". - limit: Number of flag evaluation entries to return. Do not use a value greater than 100. Defaults to 50. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns flag evaluation events containing timestamp, flag name, and evaluation attributes that occurred during the session. These events provide insights into which feature flags were evaluated and their values during the user session. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. Examples: 1. Specific time window: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z"} 3. Extended search: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "limit": 100} 4. Scoped to a service: {"sessionSecureId": "abc123def456", "startDate": "2024-01-15T10:00:00Z", "query": "service_name=gonfalon-web"}
Read-only Idempotent Open-world
query-timeline-events Query timeline indicator events for a session. Retrieve timeline indicator events for a specific session to understand what happened during that session. Keep in mind that this will not include flag evaluation events, you must use the query-flag-evaluations tool to retrieve those. REQUIRED INPUTS: - sessionSecureId: The secure ID of the session to get timeline events for. REQUIRED. The tool returns timeline indicator events containing timestamp, type, and event data that occurred during the session. These events provide insights into user interactions, page views, clicks, and other important activities during the session. Here's an example of a valid input: {"sessionSecureId": "abc123def456"}
Query timeline indicator events for a session. Retrieve timeline indicator events for a specific session to understand what happened during that session. Keep in mind that this will not include flag evaluation events, you must use the query-flag-evaluations tool to retrieve those. REQUIRED INPUTS: - sessionSecureId: The secure ID of the session to get timeline events for. REQUIRED. The tool returns timeline indicator events containing timestamp, type, and event data that occurred during the session. These events provide insights into user interactions, page views, clicks, and other important activities during the session. Here's an example of a valid input: {"sessionSecureId": "abc123def456"}
Read-only Idempotent Open-world
query-sessions Query project sessions. Retrieve sessions for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "identifier='user@example.com' AND has_errors=true"). Defaults to empty string to get all sessions. - count: Number of session entries to return. Do not use a value greater than 50. Defaults to 10. - sortField: Field to sort by (e.g., "created_at", "length"). Defaults to "created_at". - sortDesc: Boolean for descending sort. Defaults to true. - page: Page number for pagination. Defaults to 1. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns sessions containing session information, user details, and core attributes. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. Filtered sessions: {"startDate": "2024-01-15T10:00:00Z", "query": "has_errors=true", "sortField": "length", "count": 20} 4. Getting a specific session (a wide time-window should be specified since we don't know when the session happened): {"startDate": "2024-01-15T10:00:00Z", "query": "secure_id=LWK4jxZch4GMmVYJ0rW3R6CNymSy", "count": 1} When you reference sessions fetched using this tool you MUST put session ids in an XML tag so that the UI can find them and turn them into links for the user. Here is an example of a sessionId in an XML tag: <session-id>c6wX2TtznM6F0QByEiRBoQBFw1Bv</session-id>
Query project sessions. Retrieve sessions for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "identifier='user@example.com' AND has_errors=true"). Defaults to empty string to get all sessions. - count: Number of session entries to return. Do not use a value greater than 50. Defaults to 10. - sortField: Field to sort by (e.g., "created_at", "length"). Defaults to "created_at". - sortDesc: Boolean for descending sort. Defaults to true. - page: Page number for pagination. Defaults to 1. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns sessions containing session information, user details, and core attributes. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. Filtered sessions: {"startDate": "2024-01-15T10:00:00Z", "query": "has_errors=true", "sortField": "length", "count": 20} 4. Getting a specific session (a wide time-window should be specified since we don't know when the session happened): {"startDate": "2024-01-15T10:00:00Z", "query": "secure_id=LWK4jxZch4GMmVYJ0rW3R6CNymSy", "count": 1} When you reference sessions fetched using this tool you MUST put session ids in an XML tag so that the UI can find them and turn them into links for the user. Here is an example of a sessionId in an XML tag: <session-id>c6wX2TtznM6F0QByEiRBoQBFw1Bv</session-id>
Read-only Idempotent Open-world
query-error-groups Query project error groups. Retrieve error groups for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "error_type='RuntimeError' AND environment=production"). Defaults to empty string to get all error groups. Note: Do not attempt to use the 'event' attribute as part of the query. This is not a valid attribute and you should likely be using the exception.message attribute (see example 4 below) - count: Number of error group entries to return. Do not use a value greater than 50. Defaults to 10. - page: Page number for pagination. Defaults to 1. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns error groups containing error information, frequency, stack traces, and core attributes. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. Filtered for a specific error type: {"startDate": "2024-01-15T10:00:00Z", "query": "error_type='RuntimeError'", "count": 20} 4. Filtered for a specific service and error message: {"startDate": "2024-01-15T10:00:00Z", "query": "exception.message=\"Cannot use 'in' operator*\" and service_name=gonfalon-web", "count": 20}
Query project error groups. Retrieve error groups for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "error_type='RuntimeError' AND environment=production"). Defaults to empty string to get all error groups. Note: Do not attempt to use the 'event' attribute as part of the query. This is not a valid attribute and you should likely be using the exception.message attribute (see example 4 below) - count: Number of error group entries to return. Do not use a value greater than 50. Defaults to 10. - page: Page number for pagination. Defaults to 1. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns error groups containing error information, frequency, stack traces, and core attributes. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. Filtered for a specific error type: {"startDate": "2024-01-15T10:00:00Z", "query": "error_type='RuntimeError'", "count": 20} 4. Filtered for a specific service and error message: {"startDate": "2024-01-15T10:00:00Z", "query": "exception.message=\"Cannot use 'in' operator*\" and service_name=gonfalon-web", "count": 20}
Read-only Idempotent Open-world
query-aggregations Retrieve bucketed, aggregated values over time for a product type. Returns time-series buckets (not raw events) suitable for charting trends, comparing groups, and computing sums/averages/percentiles. Use this instead of query-logs/query-traces/query-sessions/query-error-groups when you want aggregated values over a window rather than individual records. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - productType: Which product to aggregate over ("errors", "requests", "logs", "sessions", "metrics"). Use "metrics" to query OpenTelemetry / custom metric data points. REQUIRED. - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "error EXISTS AND service_name=foo"). Defaults to empty string to aggregate all records. - groupBy: Optional field to group results by (e.g., "message", "service_name", or for metrics "metric_name"). - expressions: Array of aggregations to compute per bucket. Each expression is {aggregator, column}. If omitted, defaults to [{aggregator: "Count", column: ""}]. EXPRESSION SCHEMA: - aggregator: one of Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum - column: the field to aggregate. Use "" for Count. For metrics productType the column is "value" (the OpenTelemetry metric data point value) — always confirm with get-keys(productType: "metrics") and pick a Numeric key, since passing the wrong column name (e.g. "metric_value") silently returns empty buckets instead of an error. For traces use "duration"; for logs/events the relevant numeric attribute discovered via get-keys. AGGREGATOR GUIDE: - Count: number of records/data points in each bucket (ignores column). - CountDistinct: unique values of column (e.g., unique user_ids). - Sum/Avg/Min/Max: numeric aggregation of column across records. - P50/P90/P95/P99: percentiles of column (e.g., P99 latency). DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) Examples: 1. Error counts for specific window: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T16:00:00Z"} 2. Request counts from specific time to now: {"productType": "requests", "startDate": "2024-01-15T10:00:00Z"} 3. Grouped counts: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z", "groupBy": "service_name"} 4. P99 latency for traces: {"productType": "traces", "startDate": "2024-01-15T10:00:00Z", "expressions": [{"aggregator": "P99", "column": "duration"}]} 5. OTel metrics: average data point value grouped by metric_name: {"productType": "metrics", "startDate": "2024-01-15T10:00:00Z", "groupBy": "metric_name", "expressions": [{"aggregator": "Avg", "column": "value"}]} 6. OTel metrics: sum of data point values for a specific metric: {"productType": "metrics", "startDate": "2024-01-15T10:00:00Z", "query": "metric_name=\"http.server.duration\"", "expressions": [{"aggregator": "Sum", "column": "value"}]}
Retrieve bucketed, aggregated values over time for a product type. Returns time-series buckets (not raw events) suitable for charting trends, comparing groups, and computing sums/averages/percentiles. Use this instead of query-logs/query-traces/query-sessions/query-error-groups when you want aggregated values over a window rather than individual records. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - productType: Which product to aggregate over ("errors", "requests", "logs", "sessions", "metrics"). Use "metrics" to query OpenTelemetry / custom metric data points. REQUIRED. - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "error EXISTS AND service_name=foo"). Defaults to empty string to aggregate all records. - groupBy: Optional field to group results by (e.g., "message", "service_name", or for metrics "metric_name"). - expressions: Array of aggregations to compute per bucket. Each expression is {aggregator, column}. If omitted, defaults to [{aggregator: "Count", column: ""}]. EXPRESSION SCHEMA: - aggregator: one of Count, CountDistinct, CountDistinctKey, Min, Avg, P50, P90, P95, P99, Max, Sum - column: the field to aggregate. Use "" for Count. For metrics productType the column is "value" (the OpenTelemetry metric data point value) — always confirm with get-keys(productType: "metrics") and pick a Numeric key, since passing the wrong column name (e.g. "metric_value") silently returns empty buckets instead of an error. For traces use "duration"; for logs/events the relevant numeric attribute discovered via get-keys. AGGREGATOR GUIDE: - Count: number of records/data points in each bucket (ignores column). - CountDistinct: unique values of column (e.g., unique user_ids). - Sum/Avg/Min/Max: numeric aggregation of column across records. - P50/P90/P95/P99: percentiles of column (e.g., P99 latency). DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) Examples: 1. Error counts for specific window: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T16:00:00Z"} 2. Request counts from specific time to now: {"productType": "requests", "startDate": "2024-01-15T10:00:00Z"} 3. Grouped counts: {"productType": "errors", "startDate": "2024-01-15T10:00:00Z", "groupBy": "service_name"} 4. P99 latency for traces: {"productType": "traces", "startDate": "2024-01-15T10:00:00Z", "expressions": [{"aggregator": "P99", "column": "duration"}]} 5. OTel metrics: average data point value grouped by metric_name: {"productType": "metrics", "startDate": "2024-01-15T10:00:00Z", "groupBy": "metric_name", "expressions": [{"aggregator": "Avg", "column": "value"}]} 6. OTel metrics: sum of data point values for a specific metric: {"productType": "metrics", "startDate": "2024-01-15T10:00:00Z", "query": "metric_name=\"http.server.duration\"", "expressions": [{"aggregator": "Sum", "column": "value"}]}
Read-only Idempotent Open-world
query-traces Query project traces. Retrieve traces for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "span_name=\"getUserData\" AND service_name=auth"). Defaults to empty string to get all traces. - limit: Number of trace entries to return. Do not use a value greater than 50. Defaults to 20. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". - sortColumn: Column to sort by (e.g., "duration" to find slowest traces). Default sort is by timestamp. - sortDirection: Sort direction for sortColumn: "ASC" or "DESC". Defaults to "DESC" if sortColumn is set. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) - Never query a date range of more than 24 hours. If you need to query more data than 24 hours, do not use this tool and instead use the query-aggregations tool. The tool returns a paginated connection with trace entries containing timestamp, span details, and core attributes. Keep in mind that you can query for the traces that occurred during a particular session by using secure_session_id in your query. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. To find the slowest traces, use sortColumn="duration" with sortDirection="DESC" instead of adding sort terms to the query string. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. With query filter: {"startDate": "2024-01-15T10:00:00Z", "query": "span_name=\"getUserData\"", "limit": 20}
Query project traces. Retrieve traces for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "span_name=\"getUserData\" AND service_name=auth"). Defaults to empty string to get all traces. - limit: Number of trace entries to return. Do not use a value greater than 50. Defaults to 20. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". - sortColumn: Column to sort by (e.g., "duration" to find slowest traces). Default sort is by timestamp. - sortDirection: Sort direction for sortColumn: "ASC" or "DESC". Defaults to "DESC" if sortColumn is set. DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) - Never query a date range of more than 24 hours. If you need to query more data than 24 hours, do not use this tool and instead use the query-aggregations tool. The tool returns a paginated connection with trace entries containing timestamp, span details, and core attributes. Keep in mind that you can query for the traces that occurred during a particular session by using secure_session_id in your query. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. To find the slowest traces, use sortColumn="duration" with sortDirection="DESC" instead of adding sort terms to the query string. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. With query filter: {"startDate": "2024-01-15T10:00:00Z", "query": "span_name=\"getUserData\"", "limit": 20}
Read-only Idempotent Open-world
query-logs Query project logs. Retrieve logs for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "message=\"error\" AND level=error"). Defaults to empty string to get all logs. - limit: Number of log entries to return. Do not use a value greater than 50. Defaults to 20. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns a paginated connection with log entries containing timestamp, level, message and core attributes. Keep in mind that you can query for the logs that occurred during a particular session by using secure_session_id in your query. For instance, query="secure_session_id=1234567890" will return all logs that occurred during the session with secure_session_id=1234567890. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. With query filter: {"startDate": "2024-01-15T10:00:00Z", "query": "level=error", "limit": 50}
Query project logs. Retrieve logs for a given project with explicit date range parameters. REQUIRED INPUTS: - projectKey: The LaunchDarkly project key (e.g., "default"). - startDate: Start date in ISO format (e.g., "2024-01-15T10:00:00Z"). REQUIRED. OPTIONAL INPUTS: - endDate: End date in ISO format (e.g., "2024-01-15T11:00:00Z"). If not provided, uses current time. - query: Search query string (e.g., "message=\"error\" AND level=error"). Defaults to empty string to get all logs. - limit: Number of log entries to return. Do not use a value greater than 50. Defaults to 20. - direction: SortDirection (must be the string "ASC" or "DESC"). Defaults to "DESC". DATE FORMAT: - Use ISO format: "2024-01-15T10:00:00Z" or "2024-01-15T10:00:00-08:00" - Dates should be reasonable and within your data retention period - Always specify timezone if not using Z (UTC) The tool returns a paginated connection with log entries containing timestamp, level, message and core attributes. Keep in mind that you can query for the logs that occurred during a particular session by using secure_session_id in your query. For instance, query="secure_session_id=1234567890" will return all logs that occurred during the session with secure_session_id=1234567890. When doing this, you should specify the startDate as the created_at attribute of the session and the endDate as the startDate plus three hours. Examples: 1. Specific time window: {"startDate": "2024-01-15T10:00:00Z", "endDate": "2024-01-15T11:00:00Z"} 2. From specific time to now: {"startDate": "2024-01-15T10:00:00Z"} 3. With query filter: {"startDate": "2024-01-15T10:00:00Z", "query": "level=error", "limit": 50}
Read-only Idempotent Open-world
No tools match your search.
Server URL
https://mcp.launchdarkly.com/mcp/observability
Raw Configuration
If you have a client that's not listed above, access the raw MCP configuration below. Check out the troubleshooting documentation for more help.
{ "command": "npx", "args": [ "mcp-remote@0.1.25", "https://mcp.launchdarkly.com/mcp/observability" ] }