# @dynatrace-oss/dynatrace-mcp-server

## Unreleased

## 2.1.2

- This is the final release. This repository is now deprecated — see [README](README.md) for migration options.

## 2.1.1

- Fixed a security vulnerability where DQL template parameters in several tools were not validated or escaped before being embedded into queries, potentially allowing DQL injection. Timeframe values are now validated against a strict duration format, additional filter strings are checked for pipeline-injection characters, and string values are properly escaped in DQL string literals. Affected tools: `find_entity_by_name`, `get_kubernetes_events`, `list_exceptions`, `list_problems`, and `list_vulnerabilities`.
- Fixed a crash in `get_kubernetes_events` when only one of `clusterId` or `kubernetesEntityId` was provided.
- Updated `@dynatrace/strato-icons` (2.3.0 → 2.3.1).

## 2.1.0

- **Breaking**: `MCP_BEARER_TOKEN` is now required when running in `--http` mode. The server will refuse to start if this environment variable is not set. This follows the deprecation notice introduced in `2.0.0`. Set `MCP_BEARER_TOKEN` to a secure random value before starting the server (e.g. `export MCP_BEARER_TOKEN=$(openssl rand -base64 32)`).
- Updated `undici` (8.1.0 → 8.5.0), `@dynatrace-sdk/client-classic-environment-v2` (5.2.3 → 6.1.0), `@dynatrace-sdk/client-platform-management-service` (1.7.0 → 1.8.0), and `@dynatrace/strato-components` (3.6.0 → 3.7.0).

## 2.0.1

- Fixed: Human approval elicitation now defaults to `true`, so users only need to press Accept instead of having to toggle the value first.

## 2.0.0

- **Breaking**: Raised the minimum supported Node.js version from `22.10.0` to `24.0.0`.
- **Breaking**: Removed`create_workflow_for_notification` tool. The tool was not heavily used and `dtctl` provides more flexibility. If you relied on this tool, please create Dynatrace workflows manually via the Dynatrace UI, `dtctl`, or the Automations API.
- **Breaking**: Removed `make_workflow_public` tool. The tool was not heavily used and `dtctl` provides more flexibility. If you relied on this tool, please update workflow visibility manually via the Dynatrace UI, `dtctl`, or the Automations API.
- **Deprecation**: Using `--http` mode without a bearer token is deprecated and will be removed in a future release.
- Added `MCP_BEARER_TOKEN` environment variable to secure `--http` mode.
- Several security improvements when running in `--http` mode
- OAuth Authorization Code Flow tokens are now persisted to the OS keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service), so the browser authentication window only opens once per token lifetime instead of on every server restart.
- Updated `@dynatrace-sdk/client-classic-environment-v2` (5.1.0 → 5.2.3), `@dynatrace-sdk/client-davis-analyzers` (1.9.8 → 1.10.0), `@dynatrace-sdk/client-document` (1.29.0 → 1.31.0), `@dynatrace-sdk/client-platform-management-service` (1.6.3 → 1.7.0), `@dynatrace-sdk/client-query` (1.18.1 → 1.25.0), `@dynatrace-sdk/shared-errors` (1.0.0 → 1.0.2), `@dynatrace/openkit-js` (4.1.0 → 4.2.0), `@dynatrace/strato-icons` (2.1.0 → 2.3.0), `@modelcontextprotocol/ext-apps` (1.0.1 → 1.2.2), `commander` (14.0.0 → 14.0.3), `zod` (4.1.0 → 4.1.13), and `zod-to-json-schema` (3.25.0 → 3.25.1).

## 1.8.7

- Added a human approval gate to the `create_dynatrace_notebook` tool, consistent with other write-capable tools.
- Fixed: CLI metadata flags (`--help`, `--version`) now work correctly without `DT_ENVIRONMENT` being set (fixes [#523](https://github.com/dynatrace-oss/dynatrace-mcp/issues/523)).
- Fixed: Improved detection of internal environments by parsing hostnames instead of using string matching.
- Updated `hono` (4.12.18 → 4.12.23, includes security fixes), `@dynatrace-sdk/client-document` (1.30.0 → 1.31.0), `@dynatrace-sdk/client-query` (1.24.0 → 1.25.0), and `@dynatrace/strato-components` (3.5.0 → 3.6.0).

## 1.8.6

- Added a human approval gate to the `send_event` tool, consistent with other write-capable tools. This prevents unintended Davis Problem creation and cascading on-call notifications when sending `CUSTOM_ALERT` events.
- Updated `@dynatrace/strato-components` (3.3.0 → 3.5.0), `@dynatrace/strato-icons` (2.2.0 → 2.3.0), `mermaid` (11.13.0 → 11.15.0), `uuid` (11.1.0 → 14.0.0), and `qs` (6.14.2 → 6.15.2).

## 1.8.5

- Updated `@dynatrace-sdk/client-automation` (5.22.0 → 7.0.1), `@dynatrace-sdk/client-davis-analyzers` (1.9.8 → 1.10.0), `@dynatrace-sdk/client-query` (1.23.1 → 1.24.0), `express-rate-limit` (8.3.0 → 8.5.1), `hono` (4.12.14 → 4.12.18), `ip-address` (10.1.0 → 10.2.0), and `fast-uri` (3.1.0 → 3.1.2).

## 1.8.4

- This repository is now in Maintenance Mode. Active development has moved to the [Remote Dynatrace MCP Server](https://www.dynatrace.com/hub/detail/dynatrace-mcp-server/). See [#496](https://github.com/dynatrace-oss/dynatrace-mcp/issues/496) for details.
- Added a Cursor Marketplace plugin under `plugins/dynatrace-mcp/`, enabling the Dynatrace MCP Server to be listed and installed directly from the Cursor Marketplace.
- Updated `@dynatrace/strato-components` (3.2.1 → 3.3.0) and `@dynatrace/strato-icons` (2.1.1 → 2.2.0).

## 1.8.3

- Fixed privacy notice URL in MCPB manifest
- Removed unused `@dynatrace/strato-components-preview` dependency.

## 1.8.2

- Fixed a "Cannot find module 'open'" startup error that occurred when running extracted MCPB bundles.
- Updated `undici` (6.21.0 → 8.1.0), `@dynatrace/strato-components` (3.2.0 → 3.2.1), and `@dynatrace/strato-components-preview` (3.2.0 → 3.2.1).

## 1.8.1

- Added `--oauth-redirect-port` CLI option to set a fixed port for the OAuth redirect server, particularly useful in containerized environments where ports must be explicitly exposed.
- Fixed: OAuth flow now handles `open()` failures gracefully, preventing unhandled errors when the browser cannot be launched automatically.
- Updated `@dynatrace-sdk/client-automation` (5.20.0 → 5.22.0).

## 1.8.0

- Increased the default Grail query budget from 1,000 GB to 5,000 GB per session, enabling larger data exploration without configuration changes. The budget can still be overridden via the `DT_GRAIL_QUERY_BUDGET_GB` environment variable.
- Fixed browser opening in Codespaces and other headless environments by keeping `open` as an external dependency instead of bundling it, ensuring the OAuth flow works correctly in those environments.
- Updated `@dynatrace/strato-components` (3.1.1 → 3.2.0), `@dynatrace/strato-components-preview` (3.1.1 → 3.2.0), and `lodash-es` (4.17.23 → 4.18.1).

## 1.7.6

- Fixed: Corrected event type spelling from `OMPLIANCE_FINDING` to `COMPLIANCE_FINDING` in the `send_event` tool, ensuring this event type is now accepted correctly.
- Updated `lodash` (4.17.23 → 4.18.1), `@dynatrace/strato-components` (3.1.1 → 3.1.3), and `@dynatrace/strato-components-preview` (3.1.1 → 3.1.3).

## 1.7.5

- Fixed: Replaced deprecated `fetch metric.series` DQL command with the `metrics` command.

## 1.7.4

- Updated `@dynatrace/strato-components` (1.17.0 → 3.1.1), `@dynatrace/strato-components-preview` (2.16.0 → 3.1.1), and `@dynatrace/strato-icons` (1.12.0 → 2.1.0).
- Updated dependencies including `picomatch` (2.3.1 → 2.3.2), `yaml` (1.10.2 → 1.10.3), and `handlebars` (4.7.8 → 4.7.9).

## 1.7.3

- Fixed: Set default values (empty string) for several environment variables in Claude Desktop to avoid `${user_config.VARIABLE_NAME}` being set as a value

## 1.7.2

- Fixed: Empty string values for `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET`, and `DT_PLATFORM_TOKEN` environment variables are now treated as unset, preventing authentication failures when tools like Claude Desktop set blank fields to `""`. A warning is logged when an empty string is detected.

## 1.7.1

- Fixed MCPB bundle file not working on Claude Desktop

## 1.7.0

- Added MCP-Bundle (`.mcpb`) for the Anthropics MCP Connectors marketplace, making the server directly installable from the marketplace.
- Added `esbuild` to create a self-contained NPM package, improving install and startup time of the MCP server.

## 1.6.1

- Improved `execute_dql` MCP App UI styling using Strato design tokens, condensed table row density, and a refined toolbar layout.
- Updated dependencies including `undici` (6.23.0 → 6.24.0).

## 1.6.0

- Fixed an `"Already connected to a transport"` error in HTTP mode (`--http` flag) that caused all requests after the first concurrent connection to fail. Each incoming HTTP request now gets its own `McpServer` instance, matching the stateless server pattern recommended by the MCP SDK.
- Fixed DQL `load` statements (e.g., `load "/lookups/http_status_codes"`) failing with an insufficient permissions error by adding the `storage:files:read` scope to the `execute_dql` tool. This enables lookup data joins in DQL queries, such as enriching span data with HTTP status code descriptions.
- Updated dependencies including `hono` (4.12.5 → 4.12.7), which includes security hardening against prototype pollution in `parseBody`.

## 1.5.3

- Fixed the `mcp-server-dynatrace` bin path in `package.json` to resolve an npm publish warning.
- Updated dependencies including `@dynatrace-sdk/client-query` (1.21.2 → 1.22.1), `hono` (4.12.2 → 4.12.5), `@hono/node-server` (1.19.9 → 1.19.10), and `express-rate-limit` (8.2.1 → 8.3.0).
- Refined instructions for DQL statements (related to `smartscapeNodes` and `smartscapeEdges`) to use `toSmartscapeId()`, ensuring correct type casting when querying Smartscape topology data.

## 1.5.2

- Fixed a race condition in the OAuth Authorization Code Flow token refresh that caused browser windows to open unexpectedly during server operation. Concurrent token refresh attempts now share a single in-flight refresh request, preventing the refresh token from being consumed multiple times.
- Improved MCP App table rendering to make cells less dense.
- Updated dependencies including `@dynatrace-sdk/client-classic-environment-v2` (5.1.0 → 5.2.2), `@dynatrace/strato-components` (1.16.0 → 1.17.0), `@dynatrace/strato-components-preview` (2.14.1 → 2.16.0), `rollup` (4.57.1 → 4.59.0), and `minimatch` (3.1.2 → 3.1.5).

## 1.5.1

- Fixed MCP App theme handling, such that the MCP host theme is applied correctly.

## 1.5.0

- Introduced an interactive MCP App for `execute_dql` that renders a Chart (`TimeSeriesChart` and `AreaChart`) for timeseries and metric data, as well as tabular results (logs, entities, etc.)
- Removed redundant question echo from `chat_with_davis_copilot` responses, reducing unnecessary token consumption
- Fixed the `DT_ENVIRONMENT` setting in the Gemini extension configuration
- Updated dependencies including `@dynatrace-sdk/client-classic-environment-v2` and `hono`

## 1.4.0

- Fixed DQL statements to use `toSmartscapeId()` for Smartscape entity filters, ensuring correct type casting when querying Smartscape topology data
- Updated dependencies including `@modelcontextprotocol/sdk` (1.25.2 → 1.26.0), `@dynatrace-sdk/client-automation` (5.14.0 → 5.20.0), `@dynatrace-sdk/client-document` (1.29.0 → 1.30.0), `commander` (14.0.2 → 14.0.3), `qs` (6.14.1 → 6.14.2), and `ajv` (8.18.0) to address CVE-2025-69873 security vulnerability

## 1.3.1

- Several dependency udpates (most notably, upgrading `hono` to 4.11.7)

## 1.3.0

**Highlights**

- 📚 New Tool `send_event` allows to send arbitrary events to Dynatrace (like release events, problem events, security alerts)

### Tools

- Added `send_event` tool to send arbitrary events to Dynatrace

### Scopes

- Added `storage:events:write` scope for event operations

## 1.2.0

**Note**: This release contains updates to vulnerable 3rd-party libraries `@modelcontextprotocol/sdk` (CVE-2026-0621) as well as `qs` (CVE-2025-15284). We advise to upgrade to this release as soon as possible.

**Highlights**

- 📚 New Tool `create_notebook` allows to share findings with colleagues (using DQL statements and markdown tiles)

### Tools

- Added `timeframe` parameter to `list_vulnerabilities` tool, enabling flexible time ranges (e.g., "12h", "24h", "7d", "30d", "90d"). Default: "30d".
- Added `timeframe` parameter to `get_kubernetes_events` tool, enabling flexible time ranges (e.g., "12h", "24h", "7d", "30d"). Default: "24h".
- Added `create_notebook` tool to share findings with colleagues

### Scopes

- Added document management scopes: `document:documents:read` and `document:documents:write` to support document operations

### Misc

- Fixed retry logic that attempts up to 3 different ports (5344-5349 range) when EADDRINUSE errors occur for OAuth callback
- Upgraded `@modelcontextprotocol/sdk` to 1.25.2
- Upgraded `qs` to 6.14.1

## 1.1.0

- Removed `dt-app` dependency to reduce package size and dependency complexity, implementing a lightweight SSO URL discovery mechanism
- Added support for `DT_SSO_URL` environment variable to allow custom SSO URL configuration for managed or special Dynatrace environments
- Migrated telemetry implementation from OpenKit Actions to Business Events (BizEvents) for better data accessibility via Grail, simplifying the telemetry architecture while maintaining all tracking capabilities
- Telemetry events are now sent with structured event types: `com.dynatrace-oss.mcp.server-start`, `com.dynatrace-oss.mcp.client-initialization`, `com.dynatrace-oss.mcp.tool-usage`, and `com.dynatrace-oss.mcp.error`, making it easier to query and analyze telemetry data in Grail
- Added client initialization tracking to capture which MCP client (e.g., VS Code, Claude Desktop, Cursor) connects to the server, enabling better understanding of client usage patterns

## 1.0.1

- Upgraded `@modelcontextprotocol/sdk` from `^1.8.0` to `^1.24.3` for improved compatibility and latest features
- Fixed security vulnerabilities in transitive dependencies by overriding `jws` to version 3.2.3 and `node-forge` to version 1.3.2, addressing Improper Verification of Cryptographic Signature, Interpretation Conflict, and Uncontrolled Recursion issues

## 1.0.0

**Highlights**:

- 🧠 Davis Analyzers integration for advanced forecasting and anomaly detection
- ⚡ Rate limiting and performance improvements
- 🔧 Streamlined environment variable handling

### Tools

- Added `list_davis_analyzers` tool to list all available Davis Analyzers, including forecast, anomaly detection, and correlation analyzers, enabling you to discover powerful analysis capabilities
- Added `execute_davis_analyzer` tool to execute Davis Analyzers with custom input parameters and timeframe configuration, providing advanced forecasting and anomaly detection capabilities
- Improved `list_problems` tool to call `chat_with_davis_copilot` with context, enhancing problem analysis with AI-powered insights

### Scopes

- Added OAuth scopes `davis:analyzers:read` and `davis:analyzers:execute` to support Davis Analyzer operations

### Other Changes

- Added rate limiting to tool calls with a maximum of 5 calls per 20 seconds, ensuring stable performance and preventing API overload
- Fixed zod version mismatch that caused errors during parameterized tool calls, improving reliability and compatibility
- **Breaking**: Refactored environment variable handling to remove `dotenv` dependency from production code in favor of Node.js native `--env-file` flag, streamlining the setup process and reducing dependencies

## 0.13.0

### Tools

- Added `status` parameter to `list_problems` tool, enabling you to filter problems by status (ACTIVE, CLOSED, or ALL).
- Added `timeframe` parameter to `list_problems` tool, providing support for flexible time ranges (e.g., "12h", "24h", "7d", "30d"). Default: "24h".
- Removed `get_ownership` tool as it no longer works with OAuth Clients.

### Scopes

- Removed `settings:objects:read` and `environment-api:entities:read` scopes, as they are no longer required

## 0.12.0

- Fixed OAuth callback URL to work in GitHub Codespaces by detecting the environment and using the forwarded URL instead of localhost
- Breaking: Changed default HTTP server host binding from `0.0.0.0` to `127.0.0.1` for improved security
- Removed scope `app-engine:functions:run` as it's not needed

## 0.11.0

- Fixed usage percentage to no longer be printed when no budget is set
- Fixed an issue with `find_entity_by_name` tool filtering out valid entries
- Added proxy support for corporate environments via `HTTPS_PROXY`

## 0.10.0

### Tools

- Improved the `find_entities_by_name` tool to use the `smartscapeNode` DQL command for more efficient entity discovery, with a fallback to fetching entity types directly.
- Added default response limiting to the `execute_dql` tool to prevent excessively large payloads. The new `recordLimit` and `recordSizeLimitMB` parameters help control the size of the data returned to the language model.

### Scopes

- Added the `storage:smartscape:read` OAuth scope to support the improved `find_entities_by_name` tool.

### Other Changes

- Fixed an issue where disabling telemetry with `DT_MCP_DISABLE_TELEMETRY=true` would show a stack trace instead of a concise message.

### Proxy Support

- Added support for system proxy configuration via environment variables (`https_proxy`, `HTTPS_PROXY`, `http_proxy`, `HTTP_PROXY`, `no_proxy`, `NO_PROXY`)
- The MCP server now honors corporate proxy settings for all HTTP requests to Dynatrace environments

### Other Changes

- Removed unused `shouldBypassProxy` function from proxy configuration utilities

## 0.9.2

- Improved error handling when initializing the connection for the first time

## 0.9.1

- Replaced file-based token cache with an in-memory cache to avoid writing credentials to disk. Tokens now reset on server restart.

## 0.9.0

**Highlights**

- 🔑 **Simplified Authentication**: Added OAuth authorization code flow. Users can now simply set `DT_ENVIRONMENT` and complete an interactive browser authentication flow.

### Other Changes

- Dependency updates
- Added Snyk Dependency scans
- Fixed publishing to official MCP Registry

## 0.8.0

### Tools

- Added a `limit` argument to the `get_kubernetes_events` tool, allowing you to control the number of events returned and improving performance for large clusters

### Other Changes

- Fixed some typos
- Respond with a proper JSON RPC Error message

## 0.7.0

**Highlights**

- 🔒 Human approval for critical operations
- 🔍 Enhanced entity discovery with automatic detection
- 🛠️ Improved error handling and internal optimizations

### Tools

- Removed the `get_entity_details` tool and consolidated its functionality into the `find_entity_by_name` tool for a streamlined user experience
- Enhanced the `find_entity_by_name` tool with automatic entity name detection for improved usability
- Added human approval steps for critical operations in `send_email`, `send_slack_message`, `create_workflow_for_notification`, and `make_workflow_public` tools to ensure user consent and prevent unintended actions

### Other Changes

- Disabled Grail budget enforcement for Dynatrace-internal development and hardening stages to facilitate testing and development workflows
- Improved error handling for environments without Davis Copilot enabled, now providing direct links to enable the feature

## 0.6.1

- Fixed an issue with MCP communication failing with `SyntaxError: Unexpected token 'd'` due to `dotenv`
- Added Support for Google Gemini CLI

## 0.6.0

**Highlights**:

- 💰 Grail budget tracking and cost control
- 📧 Send findings via E-Mail via the Dynatrace E-Mail API
- 🔧 Enhanced tool annotations for better LLM integration
- 🏪 Published to official MCP Registry and GitHub MCP Registry

### Scopes

- Added OAuth scope `email:emails:send` to enable email functionality

### Tools Added/Removed

- Added `send_email` tool for sending emails via the Dynatrace Email API with support for multiple recipients (TO, CC, BCC), custom subject lines, and rich body content
- Added tool-annotations `readOnlyHint`, `idempotentHint`, and `openWorldHint` to improve tool usage by providing better hints to LLM clients about tool behavior
- Added next-steps guidance to `get_entity_details` tool to help users discover related metrics, problems, and logs for entities

### Other Changes

- Fixed an issue with the stateless HTTP server that prevented it from accepting multiple simultaneous connections
- Added Grail budget tracking with `DT_GRAIL_QUERY_BUDGET_GB` environment variable (default: 1000 GB, setting it to `-1` disables budget tracking), providing cost control and visibility with warnings and alerts in `execute_dql` tool responses
- Added budget enforcement that prevents further DQL query execution when the configured Grail budget has been exceeded, protecting against unexpected costs
- Improved Davis CoPilot integration by migrating to the official `@dynatrace-sdk/client-davis-copilot` package, enhancing reliability and maintainability while reducing manual API implementation
- Added metadata output to `execute_dql` tool which includes scanned bytes information, enabling better cost tracking for Dynatrace Grail data access
- Added telemetry via Dynatrace OpenKit to improve the product with anonymous usage statistics and error information, enhancing product development while respecting user privacy (can be disabled via `DT_MCP_DISABLE_TELEMETRY` environment variable)
- Added `server.json` configuration and published the MCP server to the official MCP Registry, making it easier for users to discover and install the server

## 0.6.0 (Release Candidate 2)

- Fixed an issue with the stateless HTTP server that prevented it from accepting multiple simultaneous connections
- Added Grail budget tracking with `DT_GRAIL_QUERY_BUDGET_GB` environment variable (default: 1000 GB, setting it to `-1` disables budget tracking), providing cost control and visibility with warnings and alerts in `execute_dql` tool responses
- Added budget enforcement that prevents further DQL query execution when the configured Grail budget has been exceeded, protecting against unexpected costs
- Added `send_email` tool for sending emails via the Dynatrace Email API with support for multiple recipients (TO, CC, BCC), custom subject lines, and rich body content
- Added OAuth scope `email:emails:send` to enable email functionality
- Improved Davis CoPilot integration by migrating to the official `@dynatrace-sdk/client-davis-copilot` package, enhancing reliability and maintainability while reducing manual API implementation

## 0.6.0 (Release Candidate 1)

- Added metadata output to `execute_dql` tool which includes scanned bytes information, enabling better cost tracking for Dynatrace Grail data access
- Added next-steps guidance to `get_entity_details` tool to help users discover related metrics, problems, and logs for entities
- Added telemetry via Dynatrace OpenKit to improve the product with anonymous usage statistics and error information, enhancing product development while respecting user privacy (can be disabled via `DT_MCP_DISABLE_TELEMETRY` environment variable)
- Added `server.json` configuration and published the MCP server to the official MCP Registry, making it easier for users to discover and install the server
- Added metadata output which includes Grail scanned bytes (for cost tracking) to `execute_dql`
- Added next-steps for `get_entity_details` to find out about metrics, problems and logs
- Added Telemetry via Dynatrace OpenKit to improve the product with anonymous usage statistics and error information (can be disabled via `DT_MCP_DISABLE_TELEMETRY` environment variable)

## 0.5.0

**Highlights**:

- 🚀 Davis CoPilot AI, supporting natural language to DQL
- 🌐 HTTP transport support
- 🔑 Platform Token authentication
- 📚 Tool consolidation into `execute_dql`

### Scopes

- Removed unnecessary scope `environment-api:security.problems:read` as it's no longer needed
- Removed unneeded scopes `environment-api:slo:read` and `environment-api:metrics:read` as functionality is handled via the `execute_dql` tool

### Tools Added/Removed

- Added tools to translate between natural language and DQL via Davis CoPilot, enabling easier query creation
- Added tool to chat with Davis CoPilot for interactive assistance and guidance
- Removed `get_logs_for_entity` tool in favor of the more flexible `execute_dql` tool
- Removed `get_vulnerability_details` tool as the same functionality can now be achieved with a simple `execute_dql` call, simplifying the tool set
- Removed `get_problem_details` tool as the same functionality can be achieved with a simple `execute_dql` call

### Other Changes

- Added cost considerations disclaimer in README about Dynatrace Grail data access to help users understand potential costs
- Added `dtClientContext` to `execute_dql` tool, enabling usage monitoring for Grail access and better cost tracking
- Added information about Semantic Dictionary for `execute_dql` tool description, improving user guidance for DQL queries
- Added Streamable HTTP transport support with `--http`/`--server`, `--port`, and `--host` arguments, enabling you to run the server over HTTP while maintaining stdio as the default for backward compatibility
- Enhanced `find_entity_by_name` tool to include all entities from the Smartscape topology, providing comprehensive entity discovery capabilities
- Optimized `get_monitored_entity_details` tool to use direct entity type lookup for better performance and faster response times
- Improved `list_vulnerabilities` tool to use DQL statements instead of classic API, aligned parameters with `list_problems` tool for consistent user experience
- Added comprehensive AI-Powered Observability Workshop Rules with hierarchical workflow architecture for advanced analysis scenarios
- Enhanced README with advanced analysis capabilities including incident response, security compliance, and DevOps automation workflows
- Added support for multi-phase incident investigation, cross-data source correlation, and precise root cause identification
- Introduced streamlined rule structure optimized for LLM context windows with all files under 6,500 tokens for better AI assistant performance
- Added integration guides for multiple AI assistants including Amazon Q, Cursor, Windsurf, Cline, and GitHub Copilot
- Enhanced example prompts with sophisticated use cases for transaction analysis, security assessment, and DevOps workflows
- Removed `metrics` from `execute_dql` example with `fetch` to improve clarity
- Clarified usage of `verify_dql` to avoid unnecessary tool calls and improve efficiency
- Improved `list_problems` tool to use DQL statements for retrieving data from Dynatrace and provide better next steps for problem resolution
- Added support for authorization via Platform Tokens using the `DT_PLATFORM_TOKEN` environment variable, providing an alternative authentication method

## 0.5.0 (Release Candidate 4)

- Added Streamable HTTP transport support with `--http`/`--server`, `--port`, and `--host` arguments (default remains stdio for backward compatibility)
- Adapted `find_entity_by_name` tool to include all entities from the Smartscape topology.
- Optimized `get_monitored_entity_details` tool to use direct entity type lookup for better performance.

## 0.5.0 (Release Candidate 3)

- Improved `list_vulnerabilities` tool to use DQL statement instead of classic API, and aligned parameters with `list_problems` tool
- Removed `get_vulnerability_details` tool as the same can now be achieved with a simple `execute_dql` call
- Removed scope `environment-api:security.problems:read` as it's no longer needed
- Added comprehensive AI-Powered Observability Workshop Rules with hierarchical workflow architecture
- Enhanced README with advanced analysis capabilities including incident response, security compliance, and DevOps automation
- Added support for multi-phase incident investigation, cross-data source correlation, and precise root cause identification
- Introduced streamlined rule structure optimized for LLM context windows (all files under 6,500 tokens)
- Added integration guides for multiple AI assistants (Amazon Q, Cursor, Windsurf, Cline, GitHub Copilot)
- Enhanced example prompts with sophisticated use cases for transaction analysis, security assessment, and DevOps workflows
- Removed unneeded scopes `environment-api:slo:read` (no tool is using this) and `environment-api:metrics:read` (anyway handled via execute DQL tool)
- Removed `metrics` from `execute_dql` example with `fetch`.
- Clarified usage of `verify_dql` to avoid unnecessary tool calls.

## 0.5.0 (Release Candidate 2)

- Improved `list_problems` tool to use a DQL statement to retrieve data from Dynatrace, and provide better next steps
- Removed `get_problem_details` tool, as the same can be achieved with a simple "execute_dql" call
- Removed scope `environment-api:problems:read` as it's no longer needed

## 0.5.0 (Release Candidate 1)

- Added support for Authorization via Platform Tokens via environment variable `DT_PLATFORM_TOKEN`
- Added tools to translate between natural language and DQL via Davis CoPilot
- Added tool to chat with Davis CoPilot

## 0.4.0

- Improve Authentication - fine-grained OAuth calls per tool
- Fixed: Missing scope `storage:security.events:read` for execute DQL

## 0.3.0

- Provide version of dynatrace-mcp-server on startup
- Define HTTP user-agent of dynatrace-mcp-server

## 0.2.0

- Added new tool `get_entity_by_name` which allows to find the entity ID of a monitored entity by its name
- Improved handling and description of `execute_dql` tool
- Improved checking for Dynatrace Environment URL

## 0.1.4

- Improved error-handling of authentication mechanism

## 0.1.3

- Improved error-handling of authentication mechanism

## 0.1.2

- Fix: Added missing `storage:events:read` scope

## 0.1.1

- Maintenance release

## 0.1.0

- Initial Release
