Skip to main content
ClaudeWave
dynatrace-oss avatar
dynatrace-oss

dynatrace-managed-mcp

Ver en GitHub
MCP ServersRegistry oficial25 estrellas10 forksTypeScriptApache-2.0Actualizado today
ClaudeWave Trust Score
69/100
· OK
Passed
  • Open-source license (Apache-2.0)
  • Actively maintained (<30d)
Flags
  • !No description
Last scanned: 6/11/2026
Install in Claude Code / Claude Desktop
Method: Manual
Claude Code CLI
git clone https://github.com/dynatrace-oss/dynatrace-managed-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "dynatrace-managed-mcp": {
      "command": "node",
      "args": ["/path/to/dynatrace-managed-mcp/dist/index.js"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
💡 Clone https://github.com/dynatrace-oss/dynatrace-managed-mcp and follow its README for install instructions.
Casos de uso

Resumen de MCP Servers

# Dynatrace Managed MCP Server

<h4 align="center">
  <a href="https://github.com/dynatrace-oss/dynatrace-managed-mcp/releases">
    <img src="https://img.shields.io/github/release/dynatrace-oss/dynatrace-managed-mcp" />
  </a>
  <a href="https://github.com/dynatrace-oss/dynatrace-managed-mcp/blob/main/LICENSE">
    <img src="https://img.shields.io/badge/license-mit-blue.svg" alt="Dynatrace Managed MCP Server is released under the MIT License" />
  </a>
  <a href="https://www.npmjs.com/package/@dynatrace-oss/dynatrace-managed-mcp">
    <img src="https://img.shields.io/npm/dm/@dynatrace-oss/dynatrace-managed-mcp?logo=npm&style=flat&color=red" alt="npm" />
  </a>
  <a href="https://github.com/dynatrace-oss/dynatrace-managed-mcp">
    <img src="https://img.shields.io/github/stars/dynatrace-oss/dynatrace-managed-mcp" alt="Dynatrace Managed MCP Server Stars on GitHub" />
  </a>
  <a href="https://github.com/dynatrace-oss/dynatrace-managed-mcp">
    <img src="https://img.shields.io/github/contributors/dynatrace-oss/dynatrace-managed-mcp?color=green" alt="Dynatrace Managed MCP Server Contributors on GitHub" />
  </a>
</h4>

The local _Dynatrace Managed MCP server_ allows AI Assistants to interact with one or more self-hosted [Dynatrace Managed](https://www.dynatrace.com/) deployments, bringing observability data directly into your AI-assisted workflow.

This MCP server supports **two modes**:

- **Local mode:** Runs on your machine for development and testing.
- **Remote mode:** Connects over HTTP/SSE for distributed or production-like setups.

> [!TIP]
> This MCP server is specifically designed for Dynatrace Managed (self-hosted) deployments.
> For Dynatrace SaaS environments, please use the [Dynatrace MCP](https://github.com/dynatrace-oss/dynatrace-mcp).

> [!NOTE]
> This open source product is supported by the community.
> For feature requests, questions, or assistance, please use [GitHub Issues](https://github.com/dynatrace-oss/dynatrace-managed-mcp/issues).

## Quickstart

You can add this MCP server to your AI Assistant, such as VSCode, Claude, Cursor, Kiro, Windsurf, ChatGPT, or Github Copilot.
For more details, please refer to the [configuration section below](#configuration).

## Configuration Methods

There are **three ways** to configure your Dynatrace Managed environments. Choose the method that works best for your use case:

### Method 1: Configuration File (Recommended for Local Development)

The easiest way to configure multiple environments is by using a configuration file (JSON or YAML). This method supports:

- ✅ **Clean, readable format** - No quote escaping needed
- ✅ **Comments** (YAML only) - Document your configuration
- ✅ **Environment variable interpolation** - Keep tokens secure with `${VAR_NAME}` syntax
- ✅ **Version control friendly** - Commit config files without tokens

**Example: `dt-config.yaml`**

```yaml
# Production environment
- dynatraceUrl: https://my-dashboard.company.com/
  apiEndpointUrl: https://my-api.company.com/
  environmentId: abc-123
  alias: production
  # Token is injected from an environment variable at runtime
  apiToken: ${DT_PROD_TOKEN}
  httpProxyUrl: http://proxy.company.com:8080

# Staging environment
- dynatraceUrl: https://staging-dashboard.company.com/
  apiEndpointUrl: https://staging-api.company.com/
  environmentId: xyz-789
  alias: staging
  apiToken: ${DT_STAGING_TOKEN}
```

**Example: `dt-config.json`**

```json
[
  {
    "dynatraceUrl": "https://my-dashboard.company.com/",
    "apiEndpointUrl": "https://my-api.company.com/",
    "environmentId": "abc-123",
    "alias": "production",
    "apiToken": "${DT_PROD_TOKEN}",
    "httpProxyUrl": "http://proxy.company.com:8080"
  }
]
```

**Usage in MCP configuration (e.g., `claude_desktop_config.json`):**

**Option A: Using npx (Recommended - no installation required)**

```json
{
  "mcpServers": {
    "dynatrace-managed": {
      "command": "npx",
      "args": ["-y", "@dynatrace-oss/dynatrace-managed-mcp-server@latest"],
      "env": {
        "DT_CONFIG_FILE": "./dt-config.yaml",
        "DT_PROD_TOKEN": "dt0c01.ABC123...",
        "DT_STAGING_TOKEN": "dt0c01.XYZ789...",
        "LOG_LEVEL": "info"
      }
    }
  }
}
```

**Option B: Local development (requires cloning the repository)**

```json
{
  "mcpServers": {
    "dynatrace-managed": {
      "command": "node",
      "args": ["./dist/index.js"],
      "env": {
        "DT_CONFIG_FILE": "./dt-config.yaml",
        "DT_PROD_TOKEN": "dt0c01.ABC123...",
        "DT_STAGING_TOKEN": "dt0c01.XYZ789...",
        "LOG_LEVEL": "info"
      }
    }
  }
}
```

> **Note:** Option B requires cloning this repository and running `npm install && npm run build` first.

> **Security Best Practice:** Use environment variable interpolation (`${TOKEN_NAME}`) in your config files so you can commit them to version control without exposing secrets!

See [examples/dt-config.yaml](examples/dt-config.yaml) and [examples/dt-config.json](examples/dt-config.json) for complete examples.

### Method 2: Environment Variable (Docker/Kubernetes)

For Kubernetes deployments or if you prefer environment variables, you can set `DT_ENVIRONMENT_CONFIGS` with a JSON string:

```shell
DT_ENVIRONMENT_CONFIGS='[{"apiEndpointUrl":"https://api.example.com/","environmentId":"abc-123","alias":"production","apiToken":"dt0c01.ABC123"}]'
```

This method works well for:

- ✅ Kubernetes ConfigMaps/Secrets
- ✅ Docker containers
- ✅ CI/CD pipelines
- ⚠️ Not ideal for local development (quote escaping is cumbersome)

### Method 3: .env File (Not Recommended)

While you can use a `.env` file, multiline values don't work reliably. **Use Method 1 (config file) instead** for cleaner local development.

## Configuration Priority

If multiple configuration methods are set, the MCP server uses this priority:

1. **`DT_CONFIG_FILE`** - External file (highest priority)
2. **`DT_ENVIRONMENT_CONFIGS`** - JSON string
3. **Error** - If neither is set

## Configuration Fields

You need to configure the connection to your Dynatrace Managed environment(s). Each environment requires:

**Configuration structure:**

```json
[
  {
    "dynatraceUrl": "https://my-dashboard-endpoint.com/",
    "apiEndpointUrl": "https://my-api-endpoint.com/",
    "environmentId": "my-env-id-1",
    "alias": "alias-env",
    "apiToken": "my-api-token",
    "httpProxyUrl": "",
    "httpsProxyUrl": ""
  }
]
```

**Field descriptions:**

- `dynatraceUrl`: base URL for Dynatrace Managed dashboard, to which the environment ID will be appended (e.g. `https://dmz123.dynatrace-managed.com`).
  If not specified, will default to use the same value as `DT_API_ENDPOINT_URL`.
- `apiEndpointUrl`: base URL for Dynatrace Managed API, to which the environment ID will be appended (e.g. `https://abc123.dynatrace-managed.com:9999`)
- `environmentId`: ID of the managed environment, used for constructing URL for API and dashboards (e.g., of the form `01234567-89ab-cdef-abcd-ef0123456789`)
- `alias`: a friendly/human-readable name for the environment
- `apiToken`: API token with required scopes (see [Authentication](#authentication))
- (optional) `httpProxyUrl`/`httpsProxyUrl`: URL of proxy server for requests (see [Environment Variables](#environment-variables))

## Getting Started

If you are using multiple environments, we strongly recommend that you set up rules (see [Rules](#rule-file)) to guide your LLM in better understanding each environment.

Changes to the environment configuration will need an MCP server restart/reload. Changes won't be picked up until a fresh reload.

Once configured, you can start using [example prompts](#Example-Prompts) like `Get all details of the Dynatrace entity 'my-service'` or `What problems has Dynatrace identified? Give details of the first problem.`.

These queries use V2 REST APIs and incur no additional costs beyond your standard Managed license.

Minimum supported version: Dynatrace Managed 1.328.0

## Architecture

### Local mode

![Architecture (local mode)](./assets/dynatrace-managed-mcp-arch-local.png?raw=true)

### Remote mode

![Architecture (remote mode)](./assets/dynatrace-managed-mcp-arch-remote.png?raw=true)

#### HTTP authentication (per-user tokens)

In HTTP mode the server holds **no** Dynatrace API tokens. Each request must carry the caller's
per-environment tokens in a single `X-Dynatrace-Tokens` header, formatted as an `alias=token`
map separated by semicolons:

```
X-Dynatrace-Tokens: prod=dt0c01.AAA;staging=dt0c01.BBB
```

The server uses the caller's token for the environment named by `environment_alias`, so each user
only accesses the data their token allows. A request that targets an environment with no supplied
token is rejected with a message naming the missing alias.

Because tokens are sent in a header, run the HTTP server **behind TLS** (for example, terminate TLS
at a reverse proxy in front of it). The server itself binds to `127.0.0.1` by default and does not
terminate TLS.

Environment config in HTTP mode does not include `apiToken` — only `alias` + URLs, which are
non-secret. See [`examples/dt-config-http.yaml`](./examples/dt-config-http.yaml) and
[`examples/mcp-config-http.json`](./examples/mcp-config-http.json).

> The Configuration Methods described above (server-side `apiToken` values) apply to **stdio /
> local mode**. In HTTP mode, tokens come from the `X-Dynatrace-Tokens` header instead.

#### Large numbers of environments and header size limits

The `X-Dynatrace-Tokens` header grows with the number of environments. Each entry is roughly
`alias=dt0c01.<token>;` (~110 characters). Node.js enforces a default HTTP header size limit of
**16 KB**, which accommodates approximately 140–150 environments before requests are rejected.

If you need more environments, increase the limit at server startup with the `--max-http-header-size`
flag:

```bash
node --max-http-header-size=65536 ./dist/index.js --http
```

If you are running a **reverse proxy** (such as nginx) in front of the MCP server, the 

Lo que la gente pregunta sobre dynatrace-managed-mcp

¿Qué es dynatrace-oss/dynatrace-managed-mcp?

+

dynatrace-oss/dynatrace-managed-mcp es mcp servers para el ecosistema de Claude AI con 25 estrellas en GitHub.

¿Cómo se instala dynatrace-managed-mcp?

+

Puedes instalar dynatrace-managed-mcp clonando el repositorio (https://github.com/dynatrace-oss/dynatrace-managed-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar dynatrace-oss/dynatrace-managed-mcp?

+

Nuestro agente de seguridad ha analizado dynatrace-oss/dynatrace-managed-mcp y le ha asignado un Trust Score de 69/100 (tier: OK). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene dynatrace-oss/dynatrace-managed-mcp?

+

dynatrace-oss/dynatrace-managed-mcp es mantenido por dynatrace-oss. La última actividad registrada en GitHub es de today, con 10 issues abiertos.

¿Hay alternativas a dynatrace-managed-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega dynatrace-managed-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: dynatrace-oss/dynatrace-managed-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/dynatrace-oss-dynatrace-managed-mcp)](https://claudewave.com/repo/dynatrace-oss-dynatrace-managed-mcp)
<a href="https://claudewave.com/repo/dynatrace-oss-dynatrace-managed-mcp"><img src="https://claudewave.com/api/badge/dynatrace-oss-dynatrace-managed-mcp" alt="Featured on ClaudeWave: dynatrace-oss/dynatrace-managed-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a dynatrace-managed-mcp