Dynatrace MCP Server

Dynatrace MCP Server

This MCP Server allows interaction with the Dynatrace observability platform, brining real-time observability data directly into your development workflow.

4.4K

16 Tools

Packaged by
Requires Secrets
Add to Docker Desktop

Version 4.43 or later needs to be installed to add the server automatically

About

Dynatrace MCP Server MCP Server

This MCP Server allows interaction with the Dynatrace observability platform, brining real-time observability data directly into your development workflow.

What is an MCP Server?

Characteristics

AttributeDetails
Docker Imagemcp/dynatrace-mcp-server
Authordynatrace-oss
Repositoryhttps://github.com/dynatrace-oss/dynatrace-mcp
Dockerfilehttps://github.com/dynatrace-oss/dynatrace-mcp/blob/main/Dockerfile
Docker Image built byDocker Inc.
Docker Scout Health ScoreDocker Scout Health Score
Verify SignatureCOSIGN_REPOSITORY=mcp/signatures cosign verify mcp/dynatrace-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
LicenceMIT License

Available Tools (16)

Tools provided by this ServerShort Description
chat_with_davis_copilotUse this tool in case no specific tool is available.
create_workflow_for_notificationCreate a notification for a team based on a problem type within Workflows in Dynatrace
execute_dqlGet Logs, Metrics, Spans or Events from Dynatrace GRAIL by executing a Dynatrace Query Language (DQL) statement.
explain_dql_in_natural_languageExplain Dynatrace Query Language (DQL) statements in natural language using Davis CoPilot AI.
find_entity_by_nameGet the entityId of a monitored entity based on the name of the entity on Dynatrace
generate_dql_from_natural_languageConvert natural language queries to Dynatrace Query Language (DQL) using Davis CoPilot AI.
get_entity_detailsGet details of a monitored entity based on the entityId on Dynatrace
get_environment_infoGet information about the connected Dynatrace Environment (Tenant)
get_kubernetes_eventsGet all events from a specific Kubernetes (K8s) cluster
get_logs_for_entityGet Logs for a monitored entity based on name of the entity on Dynatrace
get_ownershipGet detailed Ownership information for one or multiple entities on Dynatrace
list_problemsList all problems (dt.davis.problems) known on Dynatrace, sorted by their recency, for the last 12h.
list_vulnerabilitiesList all non-muted vulnerabilities from Dynatrace for the last 30 days.
make_workflow_publicModify a workflow and make it publicly available to everyone on the Dynatrace Environment
send_slack_messageSends a Slack message to a dedicated Slack Channel via Slack Connector on Dynatrace
verify_dqlVerify a Dynatrace Query Language (DQL) statement on Dynatrace GRAIL before executing it.

Tools Details

Tool: chat_with_davis_copilot

Use this tool in case no specific tool is available. Get an answer to any Dynatrace related question as well as troubleshooting, and guidance. (Note: Davis CoPilot AI is GA, but the Davis CoPilot APIs are in preview)

ParametersTypeDescription
textstringYour question or request for Davis CoPilot
contextstringoptionalOptional context to provide additional information
instructionstringoptionalOptional instruction for how to format the response

Tool: create_workflow_for_notification

Create a notification for a team based on a problem type within Workflows in Dynatrace

ParametersTypeDescription
channelstringoptional
isPrivatebooleanoptional
problemTypestringoptional
teamNamestringoptional

Tool: execute_dql

Get Logs, Metrics, Spans or Events from Dynatrace GRAIL by executing a Dynatrace Query Language (DQL) statement. It's recommended to use "verify_dql" tool before you execute a DQL statement. A valid statement looks like this: "fetch [logs, spans, events] | filter | summarize count(), by:{some-fields}. Adapt filters for certain attributes: traceId could be trace_id or trace.id.

ParametersTypeDescription
dqlStatementstring

Tool: explain_dql_in_natural_language

Explain Dynatrace Query Language (DQL) statements in natural language using Davis CoPilot AI.

ParametersTypeDescription
dqlstringThe DQL statement to explain

Tool: find_entity_by_name

Get the entityId of a monitored entity based on the name of the entity on Dynatrace

ParametersTypeDescription
entityNamestring

Tool: generate_dql_from_natural_language

Convert natural language queries to Dynatrace Query Language (DQL) using Davis CoPilot AI. You can ask for problem events, security issues, logs, metrics, spans, and custom data.

ParametersTypeDescription
textstringNatural language description of what you want to query. Be specific and include time ranges, entities, and metrics of interest.

Tool: get_entity_details

Get details of a monitored entity based on the entityId on Dynatrace

ParametersTypeDescription
entityIdstringoptional

Tool: get_environment_info

Get information about the connected Dynatrace Environment (Tenant)

Tool: get_kubernetes_events

Get all events from a specific Kubernetes (K8s) cluster

ParametersTypeDescription
clusterIdstringoptionalThe Kubernetes (K8s) Cluster Id, referred to as k8s.cluster.uid (this is NOT the Dynatrace environment)

Tool: get_logs_for_entity

Get Logs for a monitored entity based on name of the entity on Dynatrace

ParametersTypeDescription
entityNamestringoptional

Tool: get_ownership

Get detailed Ownership information for one or multiple entities on Dynatrace

ParametersTypeDescription
entityIdsstringoptionalComma separated list of entityIds

Tool: list_problems

List all problems (dt.davis.problems) known on Dynatrace, sorted by their recency, for the last 12h. An additional filter can be provided using DQL filter.

ParametersTypeDescription
additionalFilterstringoptionalAdditional filter for DQL statement for dt.davis.problems, e.g., 'entity_tags == array("dt.owner:team-foobar", "tag:tag")'
maxProblemsToDisplaynumberoptionalMaximum number of problems to display in the response.

Tool: list_vulnerabilities

List all non-muted vulnerabilities from Dynatrace for the last 30 days. An additional filter can be provided using DQL filter.

ParametersTypeDescription
additionalFilterstringoptionalAdditional filter for DQL statement for vulnerabilities, e.g., 'vulnerability.stack == "CODE_LIBRARY"' or 'vulnerability.risk.level == "CRITICAL"' or 'affected_entity.name contains "prod"' or 'vulnerability.davis_assessment.exposure_status == "PUBLIC_NETWORK"'
maxVulnerabilitiesToDisplaynumberoptionalMaximum number of vulnerabilities to display in the response.
riskScorenumberoptionalMinimum risk score of vulnerabilities to list (default: 8.0)

Tool: make_workflow_public

Modify a workflow and make it publicly available to everyone on the Dynatrace Environment

ParametersTypeDescription
workflowIdstringoptional

Tool: send_slack_message

Sends a Slack message to a dedicated Slack Channel via Slack Connector on Dynatrace

ParametersTypeDescription
channelstringoptional
messagestringoptional

Tool: verify_dql

Verify a Dynatrace Query Language (DQL) statement on Dynatrace GRAIL before executing it. This step is recommended for DQL statements that have been dynamically created by non-expert tools. For statements coming from the generate_dql_from_natural_language tool as well as from documentation, this step can be omitted.

ParametersTypeDescription
dqlStatementstring

Use this MCP Server

{
  "mcpServers": {
    "dynatrace-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DT_ENVIRONMENT",
        "-e",
        "OAUTH_CLIENT_ID",
        "-e",
        "OAUTH_CLIENT_SECRET",
        "mcp/dynatrace-mcp-server"
      ],
      "env": {
        "DT_ENVIRONMENT": "https://abc12345.apps.dynatrace.com",
        "OAUTH_CLIENT_ID": "dt0s02.SAMPLE",
        "OAUTH_CLIENT_SECRET": "dt0s02.SAMPLE.abcd1234"
      }
    }
  }
}

Why is it safer to run MCP Servers with Docker?

Manual installation

You can install the MCP server using:

Installation for

Related servers