- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- !No description
git clone https://github.com/dynatrace-oss/dynatrace-managed-mcp{
"mcpServers": {
"dynatrace-managed-mcp": {
"command": "node",
"args": ["/path/to/dynatrace-managed-mcp/dist/index.js"]
}
}
}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

### Remote mode

#### 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.
[](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
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!