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
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.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/dynatrace-for-aiDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended 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.
Related
SkillsOfficial Dynatrace CLI with kubectl-style syntax and a bundled skill: workflows, dashboards, DQL queries and SLOs
Official Datadog skills: monitors, logs, APM, cloud integrations, RUM and LLM observability from inside the agent
A large base of DevOps, security, infrastructure and compliance skills for AI agents
Datadog's official managed MCP server: logs, metrics, traces and incidents right in your agent
The official Grafana skill set: PromQL, Loki, Tempo, Alloy, k6, dashboards and alerting for Claude Code, Cursor and Codex
Cloudflare's official agent skills: Workers, Durable Objects, wrangler, Pages, storage and an MCP server
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` |