# Reported issues for dynatrace-managed-mcp

Pod holds 18 of 28 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [dynatrace-managed-mcp](/mcp/dynatrace-managed-mcp).

## Most discussed

### Support multiple Dynatrace Managed environments in a single MCP Server instance

### Problem
Dynatrace Managed customers often run multiple environments within a single cluster. Today, the MCP Server supports only one environment per instance, forcing customers with multiple environments to deploy and manage multiple MCP Server instances and connect each to the NLM, which increases installation and maintenance complexity.

### User story
As a Dynatrace administrator, I want to connect multiple Managed environments to a single MCP Server instance so that I can ask the NLM obs

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/16) · 2025-12-17 · closed · 3 comments

### "Configuration not found" error links a README anchor that no longer exists

`src/utils/environment.ts:84` ends the "Configuration not found" error with:

```
See documentation: https://github.com/dynatrace-oss/dynatrace-managed-mcp#configuration
```

The documentation restructure in #214 removes the `## Configuration` heading that anchor points to; the equivalent content now lives at `docs/configuration.md`.

This is the one message a user with no valid configuration is guaranteed to see, so the link being dead is worse than average.

**Status:** fixed in #215, which re

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/222) · 2026-08-07 · closed · 1 comment

### Create documentation for changelog

Add following points:
- available headers for change type
- grammar structure of changelog sentences
- structure of table in dependencies section

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/209) · 2026-08-04 · closed · 1 comment

### Environment validation fails with 403 when token lacks `DataExport` scope (not listed in README required scopes)

### Description

The MCP server fails to register environments as valid when the API token only has the scopes listed in the README documentation. The server internally requires the V1 `DataExport` scope for the `/api/v1/config/clusterversion` endpoint, but this scope is **not listed** in the README's [Authentication section](https://github.com/dynatrace-oss/dynatrace-managed-mcp#authentication).

### Steps to Reproduce

1. Create a Dynatrace Managed API token with only the scopes documented in 

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/68) · 2026-02-05 · closed · external user · 1 comment

### Remove response formatting

AI agents throw away these formattings anyway. Currently it reduces deterministic outputs and decreases maintainability of the code. The goal is to return JSON responses in every tool call

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/249) · 2026-08-26 · open · 0 comments

### Remove dynatraceUrl config parameter

This parameter does nothing beside being logged

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/246) · 2026-08-25 · open · external user · 0 comments

### Unreachable branch in validateManagedClients

`src/authentication/managed-auth-client.ts:235` skips any environment with no token:

```ts
if (!token) {
  logger.warn(`[Alias: ${client.alias}] No token found; skipping startup validation`);
  continue;
}
```

That branch cannot be reached through either real code path:

- **stdio mode** — `getManagedEnvironmentConfigs` and `validateEnvironments` both run with `requireToken=true` (`src/index.ts:111-112`), so an empty `apiToken` is already a structural error that exits the process before `valid

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/226) · 2026-08-07 · open · 0 comments

### Fatal configuration errors at startup are invisible under the default LOG_OUTPUT

Every fatal error raised while loading configuration reaches the terminal only through `logger.error`:

`src/utils/config-loader.ts` / `src/utils/environment.ts` throw → `main().catch` (`src/index.ts:460`) → `logErrorObject` → `logger.error`

Under the default `LOG_OUTPUT=file`, `src/utils/logger.ts:91-93` builds a **File transport only** — no Console transport. So the user gets exit code `1` and a completely blank terminal.

Affected messages include `Configuration not found. Please set one of:

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/225) · 2026-08-07 · open · 0 comments

## Most recent

### Per-environment proxy is never applied to startup validation, so proxy-only deployments cannot start

The server has **two uncoordinated proxy mechanisms**, and the split is by where the setting happens to be applied rather than by design. The practical consequence is a deployment that cannot start.

## The concrete failure

`this.proxy` — built from the per-environment `httpProxyUrl` / `httpsProxyUrl` fields at `src/authentication/managed-auth-client.ts:50` — is passed to axios at exactly **one** call site: `makeRequest` (`:167-168`), which serves tool/data requests.

Four other outbound calls 

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/224) · 2026-08-07 · open · 0 comments

### DEVELOPMENT.md asserts an MCP error code that does not exist

Three problems in one section of `docs/DEVELOPMENT.md` (around line 189):

1. The heading asserts `Mcp error: -32002: connection closed: initialize response`. The vendored SDK defines `ConnectionClosed = -32000` and `RequestTimeout = -32001` — there is no `-32002`. That error is emitted by the **MCP client**, which bundles its own SDK version, so no exact code or wording can be asserted here at all.
2. The section uses indented code blocks rather than fenced ones, so it renders incorrectly.
3. T

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/221) · 2026-08-07 · open · 0 comments

### server.json misrepresents the server's configuration to the MCP registry

`server.json` declares `DT_ENVIRONMENT_CONFIGS` as `"isRequired": true` and does not list `DT_CONFIG_FILE` at all. Either satisfies the server — `src/utils/environment.ts` tries `DT_CONFIG_FILE` first and falls back to `DT_ENVIRONMENT_CONFIGS` — and the configuration file is now the documented and recommended method, so the registry metadata contradicts the documentation.

Also missing, though `src/` reads all of them:

- `DT_CONFIG_FILE`
- `DT_MCP_MAX_BODY_SIZE` (`src/index.ts:341`)
- `DT_MCP_T

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/219) · 2026-08-07 · open · 0 comments

### ${VAR} interpolation in the DT_CONFIG_FILE path is silently a no-op

`resolvePath` in `src/utils/config-loader.ts:114` uses:

```js
filePath.replace(/\$\{(w+)}/g, ...)
```

A bare `w`, not `\w+`. The pattern therefore matches only the literal three characters `${w}` and never a real variable name, so a variable written inside `DT_CONFIG_FILE` itself — for example `DT_CONFIG_FILE='${HOME}/dt-config.yaml'` — is left unexpanded and the literal path fails to resolve.

The equivalent regex for interpolation inside the config file's **content** (`config-loader.ts:93`) 

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/218) · 2026-08-07 · open · 0 comments

### Setting both httpProxyUrl and httpsProxyUrl silently disables the explicit proxy

`setAxiosProxy` (`src/authentication/managed-auth-client.ts`) logs an error and returns `undefined` when both `httpProxyUrl` and `httpsProxyUrl` are set on the same environment, so **neither** is configured.

An administrator who fills in both "to be safe" gets the opposite of what they intended, and the only signal is a log line that, under the default `LOG_OUTPUT=file`, never reaches the terminal.

Compounding it: the pre-1.0.2 documentation presented the two fields as interchangeable alternat

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/217) · 2026-08-07 · open · 0 comments

### Server reports the wrong API token scopes in tool responses and auth errors

`MANAGED_API_SCOPES` — defined twice, identically, in `src/authentication/managed-auth-client.ts:7-16` and `src/tools/environment-tools.ts:6-15` — lists eight **legacy** scope names:

`DataExport`, `ReadConfig`, `ReadSyntheticData`, `ReadLogContent`, `ReadEvents`, `ReadProblems`, `ReadSecurityProblems`, `ReadSLO`

Every endpoint this server calls is a v2 API, so the scopes a token actually needs are the dotted names (`problems.read`, `entities.read`, …) plus `DataExport` for the one v1 call, `GE

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/216) · 2026-08-07 · open · 0 comments

### Thin out the documentation

Documentation (especially readme) has giant blocks of text which are difficult to read and find relevant information

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/212) · 2026-08-05 · closed · 0 comments

### Create github PR check for changelog

When pushing to changelog pipeline should inform the user to update the changelog

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/208) · 2026-08-04 · open · 0 comments

### Github action for release

When branch has `release` prefix ensure that following list is true:
- version is updated in package.json
- version is updated in both places in package-lock.json
- version is updated in both places in server.json
- version is updated in changelog

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/207) · 2026-08-04 · open · 0 comments

### query_metrics tool missing — "Metrics Analysis" capability listed but not implemented

"Metrics Analysis - Query and analyze performance metrics using V2 Metrics API" is a core capability. However, no tool exists to actually retrieve metric data values. The two metrics-related tools that are available only return metadata:

list_available_metrics — returns metric definitions (IDs, units, aggregation types). No data values.
get_metric_details — returns metadata for a single metric. No data values.
There is no tool equivalent to GET /api/v2/metrics/query — the V2 API endpoint that a

[Read the thread](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues/86) · 2026-02-21 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues).
