Dynatrace for AI skill

Official Dynatrace skills for agents: DQL, traces, logs, Kubernetes, cloud and security work inside Claude Code and Cursor.

  • 175 ★ on the repository
  • Last commit
  • Apache-2.0
Skill

Extended access

Why this level

  • The skills are read-only, but the plugin connects an MCP server with a platform token to your tenant's data.
All reasons and checks

dynatrace/dynatrace-for-ai

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/dynatrace-for-ai

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The skills are read-only, but the plugin connects an MCP server with a platform token to your tenant's data.

This is third-party code. Review the repository files before installing.

What it does

Dynatrace's official pack of 38 skills and six ready prompts. The skills teach an agent the DQL query language, the platform's data model and everyday observability work: services, traces, logs, hosts, Kubernetes, AWS, Azure, GCP, problems and alerting. Separate skills cover security (indicator-of-compromise hunting, `security.events` analysis), OneAgent and mobile SDK setup, dashboards and notebooks, and migration to Smartscape. The skills carry knowledge only. An agent sends live queries through the `dtctl` CLI or the Dynatrace MCP server, and the Claude Code plugin wires that server in on its own. Instructions load in stages: names and descriptions first, then the needed `SKILL.md`, then reference files.

Who it is for. SRE engineers and developers whose production runs on Dynatrace and who spend incident time hand-writing DQL.

Good fit when

  • A production service throws errors and the agent has to walk from a Davis problem to logs and traces.
  • A DQL query fails on syntax or scans far too much data.
  • After a release you want to know whether response time regressed.
  • Dynatrace instrumentation is being added to a mobile or GenAI project.
  • A morning service summary is built with the ready `dt-daily-standup` prompt.

Not a fit when

  • Your team does not use Dynatrace, so the skills have no tenant to read.
  • Direct API access is enough and the agent needs no DQL knowledge: the MCP server or `dtctl` alone will do.
  • You want to edit the skills: the repository publishes them from an internal source and rejects PRs to them.

Example request

Find what broke in the `checkout` service over the last hour: start from Davis problems, then logs and traces, and write the queries in DQL.

Limitations

The skills hold knowledge and query nothing themselves: live data needs the Dynatrace MCP server or the `dtctl` CLI. The Claude Code plugin expects `DT_ENVIRONMENT` and `DT_PLATFORM_TOKEN`, and the platform token needs MCP gateway scopes. The company maintains `skills/` and publishes it periodically, so PRs are not accepted. The Cursor plugin installs through the GUI only, and the Antigravity plugin stays disabled until you enter the values by hand. An active Dynatrace tenant is required.

How to disable. Delete the skill folders from the agent's skills directory or run `claude plugin uninstall dynatrace`. Remove `DT_ENVIRONMENT` and `DT_PLATFORM_TOKEN` from the environment and revoke the token in Dynatrace.

FAQ

How do I install the Dynatrace skills in Claude Code?

Run `npx skills add dynatrace/dynatrace-for-ai` or install the plugin with `claude plugin install dynatrace@claude-plugins-official`. The plugin also adds the MCP server, so set `DT_ENVIRONMENT` and `DT_PLATFORM_TOKEN` before starting Claude Code.

Do the skills query the tenant themselves?

No, they are a knowledge pack. Connect the Dynatrace MCP server or the `dtctl` CLI for queries, and the agent takes DQL syntax and investigation order from the skills.

Which agents are supported?

Skills in the Agent Skills format work in Claude Code, GitHub Copilot, Cursor, OpenCode, Gemini CLI and other compatible tools. Cursor has a marketplace plugin, and Antigravity installs through `agy plugin install`.

How does the pack differ from dtctl?

`dtctl` is a console client that runs commands. These skills teach the agent to think in Dynatrace terms, and the repository itself suggests installing them next to `dtctl`.

What is in the `prompts` folder?

Six templates: a daily service summary, a service health check, incident response, error investigation, performance regression and Davis problem triage. You copy a template into the chat after loading the relevant skills.

Discussion

No questions or reviews yet.

Skills

Official Dynatrace CLI with kubectl-style syntax and a bundled skill: workflows, dashboards, DQL queries and SLOs

CLIExtended access201Repository stars
Editors’ pick

Official Datadog skills: monitors, logs, APM, cloud integrations, RUM and LLM observability from inside the agent

SkillBroad access183Repository stars

A large base of DevOps, security, infrastructure and compliance skills for AI agents

SkillMinimal access1.2KRepository stars
Official

Datadog's official managed MCP server: logs, metrics, traces and incidents right in your agent

MCP serverExtended access47Repository stars
Official

The official Grafana skill set: PromQL, Loki, Tempo, Alloy, k6, dashboards and alerting for Claude Code, Cursor and Codex

SkillExtended access304Repository stars
Editors’ pick

Cloudflare's official agent skills: Workers, Durable Objects, wrangler, Pages, storage and an MCP server

PluginExtended access3.3KRepository stars

README in short

The repository gathers what Dynatrace prepares for AI agents, starting with skills. Install paths cover `npx skills`, plugins for Claude Code, Cursor and Antigravity, and manual folder copying. For live queries the README points to `dtctl` and the MCP server.

README badge

Original SKILL.md

---
name: dt-dql-essentials
description: "Core DQL syntax, pitfalls, query patterns, and query optimization. Load to write, build, fix, or OPTIMIZE a DQL query — prevents syntax errors and makes queries faster, more efficient, and cheaper (less data scanned = lower query consumption/cost per run). Covers fetch commands, data models, field namespaces, time alignment, entity/smartscape patterns, metric discovery, and performance/cost optimization (filter early, bucket filters, short time ranges, field selection, sampling, cardinality). Trigger: \"write/build/fix a DQL query\", \"DQL syntax\", \"query logs/spans/metrics\", \"create a timeseries\", \"optimize my DQL\", \"make my query faster/cheaper\", \"reduce DQL cost/consumption/scanned data\", \"keep DQL cost under control\". Do NOT use to explain an existing query or answer product questions. For MONITORING a tenant's ACTUAL query consumption/billing (how much queries cost, who scanned most, cost trends) use dt-platform-costs — this tunes the query text, not billing data."
license: Apache-2.0
---

# DQL Essentials Skill

DQL is a pipeline-based query language. Queries chain commands with `|` to filter, transform, and aggregate data. DQL has unique syntax that differs from SQL — load this skill before writing any DQL query.

______________________________________________________________________

## When to Load References

Before working on specific tasks, load the relevant reference:

| Task                                                                          | Required Reading                                                                             |
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| Discovering data | [references/discovery.md](references/discovery.md) |   
| Field names, namespaces, data models, stability levels, query patterns        | [references/semantic-dictionary.md](references/semantic-dictionary.md)                       |
| Query optimization — make a query faster / more efficient / cheaper, reduce consumption & scanned data (filter early, bucket filters, time ranges, field selection, sampling, cardinality) | [references/optimization.md](references/optimization.md)                                     |
| Smartscape topology navigation for discovering relationships between entities | [references/smartscape-topology-navigation.md](references/smartscape-topology-navigation.md) |
| `summarize` and `makeTimeseries` patterns (bucketing, calendar months)        | [references/summarization.md](references/summarization.md)                                   |
| Array and timeseries manipulation (`arrayFilter`, `collectArray`, iterative)  | [references/iterative-expressions.md](references/iterative-expressions.md)                   |
| Conditional logic (`if/else` chains), `coalesce`, string/date helpers         | [references/useful-expressions.md](references/useful-expressions.md)                         |
| `in` operator (subquery), full `@` time alignment unit table                  | [references/operators.md](references/operators.md)                                           |
| `matchesValue`, `matchesPhrase`, `matchesPattern`, `in()` — string pattern matching, regex, array matching, wildcards, case sensitivity | [references/string-matching.md](references/string-matching.md)                               |

______________________________________________________________________

## DQL Reference Index

Use this index to route from a function group (e.g. time functions, conversions) to its detailed spec, or from a function name to its spec file.

| Description | Items |
|-------------|-------|
| [Data Types](references/dql/dql-data-types.md) | `array`, `binary`, `boolean`, `double`, `duration`, `long`, `record`, `string`, `timeframe`, `timestamp`, `uid` |
| [Parameter Value Types](references/dql/dql-parameter-value-types.md) | `bucket`, `dataObject`, `dplPattern`, `entityAttribute`, `entitySelector`, `entityType`, `enum`, `executionBlock`, `expressionTimeseriesAggregation`, `expressionWithConstantValue`, `expressionWithFieldAccess`, `fieldPattern`, `filePattern`, `identifierForAnyField`, `identifierForEdgeType`, `identifierForFieldOnRootLevel`, `identifierForNodeType`, `joinCondition`, `jsonPath`, `metricKey`, `metricTimeseriesAggregation`, `namelessDplPattern`, `nonEmptyExecutionBlock`, `prefix`, `primitiveValue`, `simpleIdentifier`, `tabularFileExisting`, `tabularFileNew`, `url` |
| [Commands](references/dql/dql-commands.md) | `append`, `data`, `dedup`, `describe`, `expand`, `fetch`, `fields`, `fieldsAdd`, `fieldsFlatten`, `fieldsKeep`, `fieldsRemove`, `fieldsRename`, `fieldsSnapshot`, `fieldsSummary`, `filter`, `filterOut`, `join`, `joinNested`, `limit`, `load`, `lookup`, `makeTimeseries`, `metrics`, `parse`, `search`, `smartscapeEdges`, `smartscapeNodes`, `sort`, `summarize`, `timeseries`, `traverse` |
| [Functions — Aggregation](references/dql/dql-functions-aggregation.md) | `avg`, `collectArray`, `collectDistinct`, `correlation`, `count`, `countDistinct`, `countDistinctApprox`, `countDistinctExact`, `countIf`, `max`, `median`, `min`, `percentRank`, `percentile`, `percentileFromSamples`, `percentiles`, `stddev`, `sum`, `takeAny`, `takeFirst`, `takeLast`, `takeMax`, `takeMin`, `variance` |
| [Functions — Array](references/dql/dql-functions-array.md) | `arrayAvg`, `arrayConcat`, `arrayCumulativeSum`, `arrayDelta`, `arrayDiff`, `arrayDistinct`, `arrayFirst`, `arrayFlatten`, `arrayIndexOf`, `arrayLast`, `arrayLastIndexOf`, `arrayMax`, `arrayMedian`, `arrayMin`, `arrayMovingAvg`, `arrayMovingMax`, `arrayMovingMin`, `arrayMovingSum`, `arrayPercentile`, `arrayRemoveNulls`, `arrayReverse`, `arraySize`, `arraySlice`, `arraySort`, `arraySum`, `arrayToString`, `vectorCosineDistance`, `vectorInnerProductDistance`, `vectorL1Distance`, `vectorL2Distance` |
| [Functions — Bitwise](references/dql/dql-functions-bitwise.md) | `bitwiseAnd`, `bitwiseCountOnes`, `bitwiseNot`, `bitwiseOr`, `bitwiseShiftLeft`, `bitwiseShiftRight`, `bitwiseXor` |
| [Functions — Boolean](references/dql/dql-functions-boolean.md) | `exists`, `in`, `isFalseOrNull`, `isNotNull`, `isNull`, `isTrueOrNull`, `isUid128`, `isUid64`, `isUuid` |
| [Functions — Cast](references/dql/dql-functions-cast.md) | `asArray`, `asBinary`, `asBoolean`, `asDouble`, `asDuration`, `asIp`, `asLong`, `asNumber`, `asRecord`, `asSmartscapeId`, `asString`, `asTimeframe`, `asTimestamp`, `asUid` |
| [Functions — Constant](references/dql/dql-functions-constant.md) | `e`, `pi` |
| [Functions — Conversion](references/dql/dql-functions-conversion.md) | `toArray`, `toBoolean`, `toDouble`, `toDuration`, `toIp`, `toLong`, `toSmartscapeId`, `toString`, `toTimeframe`, `toTimestamp`, `toUid`, `toVariant` |
| [Functions — Create](references/dql/dql-functions-create.md) | `array`, `duration`, `ip`, `record`, `smartscapeId`, `timeframe`, `timestamp`, `timestampFromUnixMillis`, `timestampFromUnixNanos`, `timestampFromUnixSeconds`, `uid128`, `uid64`, `uuid` |
| [Functions — Cryptographic](references/dql/dql-functions-cryptographic.md) | `hashCrc32`, `hashMd5`, `hashSha1`, `hashSha256`, `hashSha512`, `hashXxHash32`, `hashXxHash64` |
| [Functions — Entities](references/dql/dql-functions-entities.md) | `classicEntitySelector`, `entityAttr`, `entityName` |
| [Functions — Time series aggregation for expressions](references/dql/dql-functions-expression-timeseries.md) | `avg`, `count`, `countDistinct`, `countDistinctApprox`, `countDistinctExact`, `countIf`, `end`, `max`, `median`, `min`, `percentRank`, `percentile`, `percentileFromSamples`, `start`, `sum` |

Report a problem

Foxx AIDynatrace for AI
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.