Skip to main content
Glama
raviraj-ntp

Dynatrace MCP

by raviraj-ntp

Dynatrace MCP

Local MCP server for any Dynatrace SaaS/Grail tenant — Kubernetes pod status, bounded log search, Davis problem triage, metrics, and security summaries. Nothing is hardcoded to a cluster, namespace, or workload; pass filters (or discover them with list_clusters / list_namespaces).

  • Runs on your machine (stdio)

  • npm: @raviraj87/dynatrace-mcp

  • Replaces the hosted Dynatrace MCP gateway for agent workflows. Does not clone Davis Copilot NL→DQL or docs RAG.


Quick start

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "dynatrace": {
      "command": "npx",
      "args": ["-y", "@raviraj87/dynatrace-mcp@latest"],
      "env": {
        "DYNATRACE_URL": "https://abc12345.apps.dynatrace.com",
        "DYNATRACE_API_TOKEN": "dt0s16.your-platform-token"
      }
    }
  }
}

Local checkout:

{
  "mcpServers": {
    "dynatrace-local": {
      "command": "node",
      "args": ["/path/to/dynatrace-mcp/dist/index.js"],
      "env": {
        "DYNATRACE_URL": "https://abc12345.apps.dynatrace.com",
        "DYNATRACE_API_TOKEN": "dt0s16.your-platform-token"
      }
    }
  }
}

Restart Cursor. Ask: "Use dynatrace_health".

Platform token scopes should include Grail reads (storage:logs:read, storage:events:read, storage:metrics:read, storage:entities:read, storage:buckets:read, storage:security.events:read) plus problem/entity access as needed.

DT_ENVIRONMENT / DT_PLATFORM_TOKEN are accepted as aliases.


Related MCP server: K8s Lens MCP

Environment variables

Variable

Required

Description

DYNATRACE_URL

Yes*

https://{env}.apps.dynatrace.com

DYNATRACE_API_TOKEN

Yes*

Token only (dt0s16....). Do not prefix Api-Token — the server adds that. A pasted Api-Token … / Bearer … value is stripped.

DYNATRACE_STAGE_URL / DYNATRACE_STAGE_TOKEN

No

Named stage connection

DYNATRACE_PROD_URL / DYNATRACE_PROD_TOKEN

No

Named prod connection

DYNATRACE_CONNECTIONS

No

JSON map of extra { "name": { "url", "token" } }

DYNATRACE_DEFAULT_CONNECTION

No

Default connection name

DYNATRACE_GRAIL_QUERY_BUDGET_GB

No

Session Grail scan cap (default 1000)

NODE_EXTRA_CA_CERTS

No

Corporate CA PEM

DYNATRACE_NO_SSL_VERIFY

No

Skip TLS verify (insecure)

*Or DT_ENVIRONMENT + DT_PLATFORM_TOKEN.

Every tool accepts optional connection (default, stage, prod, …).


Time bounds

All query tools take from / to (e.g. now-30m, ISO-8601) or calendar startDate / endDate (YYYY-MM-DD, UTC day). around + window pin a pivot. Raw logs default to the last 30 minutes and cap at 7 days unless allowLongRange is true. Never unbounded.


Tools

Core

Tool

Purpose

dynatrace_health

Connectivity + tiny Grail query

dynatrace_list_connections

Named connections

dynatrace_execute_dql

Raw DQL

dynatrace_verify_dql

Parse DQL without executing

dynatrace_reset_grail_budget

Clear session scan budget

dynatrace_query_problems

Davis problems (search optional)

dynatrace_get_problem

One problem (P-123)

dynatrace_list_exceptions

ERROR/exception logs

dynatrace_k8s_events

Cluster/pod events

dynatrace_k8s_issue_events

OOM / CrashLoop / Evicted / Warning

dynatrace_get_entity_id / dynatrace_get_entity_name

Entity lookup

Kubernetes Explorer

Tool

Purpose

dynatrace_list_clusters / dynatrace_list_namespaces

Inventory

dynatrace_list_nodes

Nodes by container CPU/mem

dynatrace_list_pods

Pod table from kube CPU/mem metrics (quiet pods included). includeLogs optional

dynatrace_get_pod

One pod: metrics status, entity, ready/restarts if present

dynatrace_pod_issues

CrashLoop / Warning events for one pod

dynatrace_pod_utilization

CPU / memory usage (quota tables)

dynatrace_pod_quota

Kubernetes Explorer CPU + Memory quota (requests, limits, %)

dynatrace_pod_events

Events for a pod/workload

dynatrace_workload_status

Desired vs ready

dynatrace_service_health

Failure rate / latency

dynatrace_failed_spans

Error spans by service

dynatrace_slow_spans

Highest-duration spans

dynatrace_get_trace

Spans (+ optional logs) by trace_id

Logs (summary → exact → surround)

Tool

Purpose

dynatrace_log_summary

Counts by level × pod × container

dynatrace_search_logs

Exact matching lines (limit 50/200)

dynatrace_logs_surrounding

±30s around a hit timestamp

dynatrace_pod_logs

Last N lines for one pod

dynatrace_logs_tail

Poll new lines (since / nextSince)

dynatrace_logs_wait

Integration-test wait for a pattern (max 120s)

Log filters: cluster, namespace, workload, pod(s), container, node, loglevel, contains / containsAll / containsAny / notContains / regex, trace/span id, excludePatterns, sample, date bounds. Content is truncated and likely secrets are redacted.

Triage

Tool

Purpose

dynatrace_triage_problem

P-id or pasted alert → problem + pods + logs + quota + OOM/CrashLoop

dynatrace_triage_scope

Namespace/workload snapshot without a P-id

Prompt dynatrace_triage_alert

Full SRE workflow

Security & metrics

Tool

Purpose

dynatrace_security_events_summary

Aggregated security.events

dynatrace_vulnerabilities

Vulnerability summary

dynatrace_compliance_findings

Compliance summary

dynatrace_metrics_query

DQL timeseries or classic /api/v2/metrics/query


Typical triage

  1. dynatrace_list_clusters / dynatrace_list_namespaces if the target is unknown

  2. dynatrace_triage_problem (P-id) or dynatrace_triage_scope (cluster/namespace/workload)

  3. dynatrace_log_summary then dynatrace_search_logs loglevel=ERROR

  4. dynatrace_logs_surrounding on a match timestamp

  5. dynatrace_k8s_issue_events / dynatrace_pod_quota / dynatrace_get_pod

  6. dynatrace_failed_spans / dynatrace_slow_spans / dynatrace_get_trace if app latency or errors

Integration test tail

dynatrace_logs_wait  pods=["my-app-7f8c9d4b6-abc12"] namespace=default contains="started" timeoutSeconds=60
dynatrace_logs_tail  pods=["my-app-7f8c9d4b6-abc12"] namespace=default since=<nextSince>

Verify

export DYNATRACE_URL=https://abc12345.apps.dynatrace.com
export DYNATRACE_API_TOKEN=your-token
npm run build
npm run test:readonly

License

MIT — Copyright © 2026 Ravi Raj

Available Tools

38 tools
dynatrace_compliance_findingsCompliance Findings SummaryB

Summarized compliance findings from Grail (aggregated, max 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
extraFilterNo
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses that results are aggregated and capped at 100, which is a genuine output-size trait. However, it omits auth/connection requirements, read-only nature, and what the aggregation dimensions are.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource and the key constraint (max 100) appear immediately. It is arguably too terse rather than padded, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no annotations and no output schema, the description is thin. It never explains the aggregation semantics, how the time-window parameters interact, or what a finding contains, leaving an agent under-informed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 89%, well above the 80% threshold, so the schema already documents the time-range, connection, and filter parameters. The description adds no syntax or format detail beyond that, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (compliance findings) and an action (summarized/aggregated), so an agent understands it returns an aggregated compliance view. It does not differentiate itself from conceptually adjacent siblings like dynatrace_vulnerabilities or dynatrace_security_events_summary, which is the main gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no mention of alternatives. The agent gets no signal on when compliance findings should be preferred over the security or vulnerability siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_execute_dqlExecute DQLB

Run a DQL query against Grail. Use templated tools when possible. Requires valid DQL, not natural language.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
dqlYes
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap
maxResultRecordsNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about read-only semantics, Grail cost/budget implications (despite a dynatrace_reset_grail_budget sibling implying budget limits), result caps, or latency for long ranges. For a raw query tool with zero annotation coverage this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the purpose front-loaded and each sentence carrying distinct information (what it does, preferred alternative, input constraint). No padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A ten-parameter raw query tool with no annotations and no output schema: the description should at minimum hint at return shape, result caps, or cost behavior. It gives only the DQL-validity precondition, leaving the agent to infer how results come back and how the time/connection parameters interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so most parameters (from/to/around/window/startDate/endDate/connection/allowLongRange) are already documented in the schema. The description only restates that 'dql' must be valid DQL and adds no detail on the time-window or connection parameters. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Run a DQL query against Grail.' An agent can immediately tell this is the generic/raw query executor rather than a templated domain tool. It stops short of naming a specific sibling as the alternative, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use templated tools when possible' gives explicit when-not guidance and points the agent away from raw DQL toward the domain-specific siblings. 'Requires valid DQL, not natural language' is a concrete precondition. It never names which templated tool to prefer, so routing is left partly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_failed_spansFailed SpansA

Error spans grouped by service/span/pod. Use after service_health shows failures or for latency vs error triage.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoService name substring
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses only the output grouping but says nothing about read-only safety, permissions, rate limits, cost, pagination, or how time-range caps are enforced, leaving major behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The core purpose and usage condition are front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter query tool with no output schema and no annotations, the description covers purpose and one usage condition but does not explain return fields beyond grouping, how time parameters interact, or what the connection parameter affects. It is minimally adequate but leaves clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 91%, so the schema already documents almost every parameter thoroughly. The description adds no parameter-level meaning, which is acceptable at this coverage level but provides no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource ('error spans') and its grouping ('by service/span/pod'), which is specific and distinguishes it from a general trace tool. However, it lacks an explicit verb and does not directly contrast with the close sibling dynatrace_slow_spans, leaving some differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names one alternative (service_health) and two clear conditions: after service_health shows failures, or for latency vs error triage. It omits when-not-to-use guidance and does not mention the slow-spans tool as a mutually exclusive alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_get_entity_idGet Entity IDB

Look up Dynatrace entity IDs by type (dt.entity.host, dt.entity.service, ...) and name substring.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
entityTypeYes
entityNameFilterYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. "Look up" implies a read, but nothing states whether it returns one match or many, what happens on a substring that matches several entities, any rate limits, or the auth/connection requirements. For a lookup with zero annotation coverage, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the verb and both search axes front-loaded. No filler, nothing that could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate but incomplete for a lookup tool: it conveys the input contract well, but with no output schema and no annotations it does not say whether the result is a single ID or a list of matches, nor the ID format, leaving the return behavior to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (connection alone), so the description must compensate for entityType and entityNameFilter. It does: it gives concrete entity-type values (dt.entity.host, dt.entity.service) and clarifies that the name filter is a substring match, which is real added meaning beyond the bare minLength schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Look up") and resource ("Dynatrace entity IDs") plus the two axes it searches on (type and name substring). It is clear what it does, but it never distinguishes itself from the sibling dynatrace_get_entity_name, which is the reverse lookup and the obvious source of confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives. The most important routing decision here -- get_entity_id vs get_entity_name -- is left entirely to the agent to infer from tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_get_entity_nameGet Entity NameB

Resolve a Dynatrace entity ID to its display name.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYes
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
entityTypeYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether an unknown ID returns null/error, whether lookup requires a specific connection or permissions, or rate-limit behavior. Read-only nature is only implied by 'Resolve'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single eight-word sentence, fully front-loaded with the operation and its input/output. Nothing wasted, nothing missing that belongs at this level.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-required-param resolution tool with no annotations, no output schema, and 33% schema coverage, the description is too thin. An agent needs to know the entityType vocabulary and failure behavior; neither is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%: the 'connection' param has a schema description, but entityId and entityType are bare strings with no description. The description doesn't explain accepted entityType values (e.g. HOST, SERVICE, APPLICATION) or ID formats, so it fails to compensate for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Resolve') and both the input (entity ID) and output (display name), making the transformation explicit. It clearly differs from the inverse sibling dynatrace_get_entity_id and from listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage is clear from the purpose, but no explicit when-to-use/when-not guidance or pointers to alternatives like get_entity_id are given. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_get_podGet PodB

Detail for one pod: kube-metrics status (CPU/mem), entity lifetime, ready/restarts if ingested.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podYesExact pod name (from list_pods or the user)
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. It usefully discloses the return payload and a conditional data-availability caveat ('if ingested'), but says nothing about read-only safety, permissions, or range limits. It is a reasonable partial disclosure for a read tool whose name already implies non-mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the resource and then lists the payload. Nothing is wasted, though the terse colon-list style leaves room for the routing/usage context that is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no annotations and no output schema, the description covers the core output but omits sibling differentiation, usage conditions, and any behavioral/safety notes. The rich schema compensates for parameter documentation, but the definition is not fully complete for the surrounding toolset.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters (pod, from/to, around/window, cluster, namespace, dates, connection, allowLongRange) are already documented in the schema. The description adds no syntax, format, or defaulting detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('Detail for one pod') and enumerates the returned content (kube-metrics CPU/mem, entity lifetime, ready/restarts), so the agent knows exactly what this tool produces. It does not, however, distinguish itself from the many pod siblings such as pod_utilization, pod_issues, pod_quota, or pod_events, leaving the boundary implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no alternatives named. With six-plus pod-related siblings in the toolset, an agent has no routing signal telling it when dynatrace_get_pod is preferable to dynatrace_pod_utilization or dynatrace_pod_issues. Only the implied 'one pod detail' framing hints at usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_get_problemGet Davis ProblemB

Get a Davis problem by display id (P-123) or event id.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
problemIdYes
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden but delivers almost nothing: no statement about what is returned, error behavior for an unknown ID, or any permission/rate-limit context. Only the accepted identifier format is disclosed, which is minimal for a 9-parameter read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb, resource, and identifier syntax; zero filler and no redundancy. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no annotations and no output schema, the description is thin: it omits return-shape expectations, error conditions, and how the optional time-window/connection parameters interact. It is minimally adequate for a fetch-by-id call but leaves real gaps an agent must guess at.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (89%), which sets a baseline of 3, and the description adds genuine meaning beyond the schema by explaining that problemId accepts either a display id (P-123) or an event id — the schema itself gives problemId no description at all. The optional time-window and connection parameters remain documented only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (Davis problem) and clarifies the accepted identifier forms (display id P-123 or event id). However, it does nothing to distinguish itself from close siblings like dynatrace_query_problems or dynatrace_triage_problem, leaving the agent to infer which tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. With siblings such as dynatrace_query_problems (lookup/search) and dynatrace_triage_problem in the same namespace, the definition gives the agent nothing to route between single-fetch and query/triage flows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_get_traceGet TraceC

Fetch spans for a trace_id (from a log line) plus optional linked logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
traceIdYes
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
includeLogsNo
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden, and it discloses very little. It does not say what permissions or connection are required, what happens when the trace is not found, how limit/pagination behaves (max 100), or that allowLongRange overrides a default range cap that is never stated. Only the return shape (spans plus optionally linked logs) is hinted at.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence with no filler, and the core identifier is stated first. It is arguably over-terse for an 11-parameter tool, but the dimension rewards structure and economy, both of which are good here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no annotations, no output schema, and several mutually interacting time-range parameters, the description should explain the windowing model and the default range cap implied by allowLongRange. None of that is present, so an agent is left to guess how to bound the query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Eleven parameters with 73% schema coverage and overlapping time-window options (from/to, startDate/endDate, around/window, allowLongRange). The description only implicitly touches traceId and includeLogs ('optional linked logs'); it adds no meaning for the ambiguous windowing or range-cap parameters, so it does not compensate for the moderate coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: fetch spans for a given trace_id, with the useful qualifier that the id typically comes from a log line, plus optional linked logs. It distinguishes itself from the span-search siblings (slow_spans, failed_spans) by being id-scoped, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The parenthetical '(from a log line)' implies the prerequisite context for calling it, which is genuine implied usage guidance. However there is no when-not guidance, no mention of how it relates to dynatrace_slow_spans/dynatrace_failed_spans/dynatrace_logs_surrounding, and no note on which time-window mode to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_healthDynatrace HealthB

Check Dynatrace connectivity and Grail access for a named connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the two things probed (connectivity and Grail access). However, it says nothing about whether this is a read-only/idempotent probe, what happens on failure, whether it needs credentials, or what a result looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action, zero filler, and it fits the tool's scope exactly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-param diagnostic tool this is close, but with no output schema the description should indicate what it reports (status, reachability, error detail) and when it should be invoked relative to the other dynatrace tools. Key usage context is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'connection' parameter is fully documented in the schema, including aliases and env-key resolution. The description adds only the phrase 'named connection', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check) plus the resources verified (Dynatrace connectivity and Grail access) and the scoping argument (a named connection). It distinguishes this from query-oriented siblings, though it doesn't explicitly name the overlapping dynatrace_list_connections tool it is adjacent to.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance: nothing says whether this is a pre-flight check to run before other operations, a debugging step after a failure, or how it relates to dynatrace_list_connections. The agent must infer its purpose in the workflow entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_k8s_eventsKubernetes EventsC

Kubernetes cluster/pod/workload events in a time range.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
findAllNo
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing: not whether this is a read-only query, what the default time-range cap is (despite an allowLongRange flag), how results are ordered or paginated, or what limits apply. For a 14-parameter tool with zero annotation coverage this is a complete gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short fragment, but the brevity is under-specification rather than conciseness. For a tool with 14 parameters and no annotations, one noun phrase leaves the agent with almost nothing to front-load its decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 14 parameters, no annotations, no output schema, and a dense field of overlapping event-related siblings, the description is far too thin to let an agent call this correctly or pick it over alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86%, so the schema already documents nearly all 14 parameters, including the cluster/namespace discovery hints and pod pattern syntax. The description adds nothing beyond 'in a time range', which the from/to/startDate/endDate parameters already convey, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The fragment names the resource (Kubernetes events) and a scope (cluster/pod/workload) in a time range, which is more than a pure restatement of the name. However, it is a verbless noun phrase that never says what the tool actually does with those events, and it does not distinguish itself from close siblings like dynatrace_pod_events or dynatrace_k8s_issue_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no reference to the many overlapping siblings (pod_events, k8s_issue_events, execute_dql) that could also return event data. Usage is only weakly implied by the cluster/pod/workload scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_k8s_issue_eventsKubernetes Issue EventsC

OOMKilled, CrashLoop/BackOff, Evicted, Failed, Unhealthy, probe failures, Warning events. Scope with cluster/namespace/workload/pod.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only lists event categories. It does not disclose that this is a read-only query, how the default time cap interacts with allowLongRange, what limit defaults to, or how results are shaped or ordered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact fragments with no filler, and the content enumeration is front-loaded. It is efficient, though the extreme terseness trades away useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, zero-annotation, no-output-schema tool, the description supplies useful domain content (which events count as issues) but omits usage routing against close siblings and any behavioral framing. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 92%, so nearly every parameter is already documented in the schema, including discovery hints for cluster and namespace. The description adds only a shallow note that cluster/namespace/workload/pod are the scoping dimensions, which the schema largely conveys on its own.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description enumerates the event kinds returned (OOMKilled, CrashLoop/BackOff, Evicted, probe failures, Warning events), so an agent can infer this retrieves Kubernetes issue events, but no explicit verb or resource statement is given. It also fails to distinguish itself from the sibling dynatrace_k8s_events, leaving the boundary between the two ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Scope with cluster/namespace/workload/pod" only restates that scoping parameters exist; it says nothing about when to reach for this tool versus dynatrace_k8s_events, dynatrace_pod_events, or dynatrace_pod_issues. No preconditions or exclusions are offered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_clustersList Kubernetes ClustersA

List Kubernetes clusters known to this Dynatrace tenant (k8s.cluster.name). Call this before filtering pods.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden and it does not meet it. It never discloses that the listing is time-scoped, despite six window parameters (from/to/around/window/startDate/endDate) and allowLongRange, nor does it mention auth/connection selection behavior, result shape, or ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the resource and the sequencing instruction front-loaded; every clause carries information and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing with a fully documented schema and no output schema, the description covers purpose and sequencing adequately. The gap is that it omits any explanation of the time-range parameters' role in a 'list clusters' call, which an agent may find counterintuitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the schema, establishing the baseline of 3. The description adds only the k8s.cluster.name field reference and no additional parameter semantics such as default window behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('List Kubernetes clusters') and pins the domain attribute it enumerates (k8s.cluster.name), so it reads clearly against sibling list tools like list_pods/list_nodes. It does not explicitly contrast itself with those siblings, but the cluster-level scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call this before filtering pods' gives an explicit sequencing rule and makes the parent-child relationship with the pod tools clear. There is no statement of when not to use it or of alternative paths, but the guidance is concrete rather than implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_connectionsList Dynatrace ConnectionsB

List configured named connections (default, stage, prod, ...).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says only that the tool lists connections; it does not describe the return format, whether the operation is read-only, whether authentication is required, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It gives the core action and illustrative examples in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema and no annotations, the description is minimally adequate. It states what is listed, but does not explain the return structure or any behavioral traits, leaving some gaps that the missing structured fields would otherwise cover.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline score is 4. The description adds no parameter information because there are no parameters to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('configured named connections'), with examples (default, stage, prod) that clarify what a connection is. It does not explicitly distinguish this tool from any sibling, but the resource is unique among the listed Dynatrace tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisite or exclusion. The intended use (list available connections) is only implied by the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_exceptionsList ExceptionsC

Recent ERROR/exception log lines. Use log filters and date bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
hostNohost.name
nodeNok8s.node.name
podsNoOne or more pod names (same matching rules as pod)
sortNo
limitNo
regexNo
aroundNoPivot timestamp for a window
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoservice.name / dt.entity.service
traceIdNo
containsNo
entityIdNoDynatrace entity id if known
loglevelNoERROR,WARN or array
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
containerNok8s.container.name
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
allowLongRangeNoAllow ranges longer than the default cap
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no default time window behind "recent", no default limit or sort order, no note on the range cap that allowLongRange overrides, and no pagination behavior. For a read tool this is a significant disclosure gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the return content, no filler. The problem is the opposite of verbosity: for a 35-parameter tool the text is under-specified rather than efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 35 parameters, 0 required fields, no output schema, and no annotations, this definition needed to explain defaults, time bounds, and filtering semantics. Two sentences stating the resource and a vague filter hint leave an agent without enough context to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 57% across 35 parameters, and the description adds nothing beyond "log filters and date bounds". The many undocumented parameters (sort, limit, regex, around/offset/window, sample, status, traceId, excludeLevels, excludePatterns, maxContentChars) get no explanation in either place, so the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the resource and scope: recent ERROR/exception log lines, which is clear enough that an agent knows what it gets back. However, it offers no differentiation from overlapping log siblings such as dynatrace_search_logs, dynatrace_pod_logs, or dynatrace_log_summary, so an agent must decide alone which log tool to reach for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use log filters and date bounds" is a parameter hint, not usage guidance: it never states when this tool is preferable to search_logs with a loglevel filter, nor any prerequisite or exclusion. There is no when/when-not framing and no alternative named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_namespacesList Kubernetes NamespacesC

List namespaces in this tenant, optionally filtered by cluster.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It never states that this is a read-only listing, says nothing about pagination or result caps despite an allowLongRange flag implying a default range cap, and does not explain the default time window applied when no range parameters are supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the primary action and the one optional refinement are both stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter tool with no annotations and no output schema, the description is thin: it leaves the agent without any explanation of the six overlapping time-window parameters, the default range and the long-range cap, or the shape of the returned namespace list. The schema covers parameter syntax, but the behavioral picture is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 9 parameters (including the from/to/around/window/startDate/endDate time family and the cluster discovery hint) are already documented in the schema. The description only restates the cluster filter, adding no syntax, defaults, or interplay between the time-window parameters beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (namespaces) with the tenant as scope, which cleanly separates it from dynatrace_list_clusters, dynatrace_list_nodes and dynatrace_list_pods. It does not explicitly name those siblings or explain how the k8s entity tools relate, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"optionally filtered by cluster" hints at one usage mode but gives no when-to-use framing, no prerequisites, and no guidance on when to reach for this versus dynatrace_list_clusters (which the cluster param points to) or the pod/node listers. Nothing tells the agent when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_nodesList Kubernetes NodesB

Nodes ranked by container CPU/memory on that node. Pass cluster from dynatrace_list_clusters.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses one genuine trait (results are ranked by container CPU/memory), but never states that this is a read-only listing, how time windows/limits behave by default, or what happens when cluster is omitted. That is thin for a 10-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the most important fact (what the list contains and how it is ordered) is front-loaded. It is efficient, though arguably over-terse for a tool with ten parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, the description omits too much: default time-range behavior, the limit cap, the connection parameter, and any read-only assurance. An agent has to open the schema and infer the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 90%, so the schema already documents the time-window, limit, connection, and cluster parameters. The description's cluster guidance ('from dynatrace_list_clusters') merely restates what the schema's cluster property already says ('Discover with dynatrace_list_clusters; do not assume a cluster'). Baseline 3 applies since the description adds nothing beyond the structured field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource (Kubernetes nodes) and adds a distinctive detail: results are ranked by container CPU/memory on that node. Combined with the title, an agent can tell this apart from list_pods/list_namespaces/list_clusters. It stops short of explicitly naming which sibling it replaces or when it is preferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Pass cluster from dynatrace_list_clusters' establishes a concrete prerequisite/dependency chain, which is useful. However it gives no when-to-use vs when-not guidance relative to siblings like dynatrace_list_pods or dynatrace_pod_utilization, leaving usage largely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_list_podsList PodsA

Pod table from kube CPU/memory metrics for any cluster/namespace/workload. Quiet pods (no logs) are included. Pass filters from list_clusters / list_namespaces or the user; do not assume names. Unfiltered lists are capped. includeLogs is an optional extra Grail scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
includeLogsNoAlso list pods that emitted logs (expensive Grail scan)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden, and it discloses several non-obvious traits: quiet pods (no logs) are still returned, unfiltered lists are capped, and includeLogs triggers an expensive extra Grail scan. It omits output shape and what the cap actually is, but the behavioral disclosures are substantive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with what the tool returns, then filtering guidance, then the caveats. Dense and efficient with no filler, though the opening 'Pod table from kube CPU/memory metrics' is slightly awkward phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, no-annotation, no-output-schema listing tool, the description covers the essential call semantics (filter sourcing, capping, the optional log scan) and says what the result is at a high level. The main gap is that with no output schema it doesn't hint at the returned pod fields, which would be the last piece an agent needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 93%, so the baseline is 3, and the description adds meaning on top: includeLogs as an optional expensive scan, the unfiltered-list cap tied to limit/allowLongRange, and the origin of cluster/namespace filter values. That is genuine value beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Pod table from kube CPU/memory metrics') plus the scope dimensions it covers (cluster/namespace/workload). An agent can tell it apart from dynatrace_get_pod (single entity) and dynatrace_list_nodes, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives real context: pass filters sourced from list_clusters / list_namespaces rather than assumed names, and warns that unfiltered lists are capped. It stops short of stated exclusions against the pod_utilization / pod_issues / pod_logs siblings, so it is clear context without explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_logs_surroundingSurrounding LogsB

Lines around a pivot timestamp for the same pod/container (grep -C in time). before/after default 30s, max 5m.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
hostNohost.name
nodeNok8s.node.name
podsNoOne or more pod names (same matching rules as pod)
sortNo
afterNoe.g. 30s
limitNo
pivotYesISO timestamp of a matching log line
regexNo
aroundNoPivot timestamp for a window
beforeNoe.g. 30s
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoservice.name / dt.entity.service
traceIdNo
containsNo
entityIdNoDynatrace entity id if known
loglevelNoERROR,WARN or array
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
containerNok8s.container.name
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
allowLongRangeNoAllow ranges longer than the default cap
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses defaults (before/after = 30s) and a hard cap (max 5m), plus the pod/container scoping constraint. It says nothing about pagination, the limit=200 cap, or range-cap behavior implied by allowLongRange, leaving meaningful behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses, front-loaded with the core behavior, and every word earns its place. It is arguably too terse for a 38-parameter tool, which keeps it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity tool with 38 parameters, no annotations, no output schema, and only 61% schema coverage, the description is thin. It never explains how pivot/window/around/from/to interact, how limit/offset/sample paginate, or what a surrounding-lines response looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Coverage is 61%, so the schema documents much of the surface already. The description adds real value only for before/after (defaults and 5m max), which the schema does not state; the other 36 parameters (pods, cluster, namespace, window, around, allowLongRange) get no added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Lines around a pivot timestamp') scoped to 'the same pod/container', and the 'grep -C in time' analogy pins down the semantics precisely. It does not name any sibling tool, but the pivot-window concept is distinct from search_logs/pod_logs/logs_tail so an agent can discriminate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The pivot-timestamp framing implies you need an existing anchor log line, which is implicit when-to-use guidance. However there is no explicit statement of when to prefer this over dynatrace_search_logs, dynatrace_pod_logs, or dynatrace_logs_tail, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_logs_tailTail LogsB

Polling live tail for one or more pods. Pass since from the previous nextSince. First call defaults to now-30s. Not a websocket; poll from the agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
podsYes
sortNo
limitNo
regexNo
sinceNoISO timestamp cursor from previous nextSince
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
clusterNo
traceIdNo
containsNo
loglevelNoERROR,WARN or array
containerNo
namespaceNo
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral load; it does disclose the crucial trait that this is polled rather than streamed and the default 30s window on first call. It stops short of other traits an agent needs for a 23-param tool: no permission/auth notes, no rate-limit or cost warnings, and it references 'nextSince' without saying it comes back in the response (no output schema exists).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler: purpose first, then the cursor contract, then the polling model. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 23-parameter tool with 17% schema coverage, no annotations, and no output schema needs far more than three sentences. The parameter surface is unexplained and the return contract (notably nextSince) is referenced but never defined, so an agent lacks the information to use the tool correctly beyond the simplest call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% across 23 parameters, so the description has to compensate and largely does not. It clarifies only the `since` cursor semantics and implies `pods`; the other ~21 filters (regex, contains/containsAll/containsAny/notContains, loglevel, sample, excludePatterns, offset, connection, etc.) are neither documented in the schema nor explained here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Polling live tail for one or more pods', which clearly conveys the operation. However it gives no differentiation from the many sibling log tools (dynatrace_pod_logs, dynatrace_search_logs, dynatrace_logs_surrounding, dynatrace_logs_wait), leaving the agent to guess which log tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives genuinely useful continuity guidance ('Pass since from the previous nextSince', 'First call defaults to now-30s') and states the polling model ('Not a websocket; poll from the agent'). But it never says when to choose this over search_logs, pod_logs, or logs_wait, so alternative-selection is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_log_summaryLog SummaryA

Count logs by level, namespace, pod, and container. Call this before fetching raw lines. Requires date/time bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
hostNohost.name
nodeNok8s.node.name
podsNoOne or more pod names (same matching rules as pod)
sortNo
limitNo
regexNo
aroundNoPivot timestamp for a window
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoservice.name / dt.entity.service
traceIdNo
containsNo
entityIdNoDynatrace entity id if known
loglevelNoERROR,WARN or array
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
containerNok8s.container.name
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
allowLongRangeNoAllow ranges longer than the default cap
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. "Count logs" implies a read-only aggregation, and the date-bounds requirement is real operational context, but it says nothing about return format, pagination, or the sampling/limit behavior implied by the 35-parameter schema. It adds some value without covering the behavior an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, purpose front-loaded, with each sentence carrying distinct information (what it does, when to call it, a precondition). It is tight and waste-free, though slightly terse for a tool of this complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 35-parameter tool with no annotations and no output schema, three sentences are inadequate. Key behaviors (grouping output shape, sampling, range caps implied by allowLongRange, exclusion filters) are left unexplained, and the "requires date/time bounds" claim sits oddly against a schema with zero required parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 57%, so the schema documents roughly half the parameters. The description adds the group-by semantics (counting by level, namespace, pod, container) that map to loglevel/namespace/pod/container, which is useful, but it gives no syntax or meaning for the other ~30 parameters such as sample, window, allowLongRange, or exclusion filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (count) and resource (logs) plus the aggregation dimensions (level, namespace, pod, container), which clearly separates it from raw-line siblings like dynatrace_search_logs or dynatrace_pod_logs. It stops short of naming any sibling explicitly, so it is clear but not maximally differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call this before fetching raw lines" gives concrete workflow positioning relative to line-fetching alternatives, and "Requires date/time bounds" states a precondition. There is no explicit when-not-to-use guidance, but the sequencing guidance is genuinely actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_logs_waitWait For Log PatternB

Poll until contains/regex appears on the given pods or timeout (default 30s, max 120s). For integration tests.

ParametersJSON Schema
NameRequiredDescriptionDefault
podsYes
sortNo
limitNo
regexNo
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
clusterNo
traceIdNo
containsNo
loglevelNoERROR,WARN or array
containerNo
namespaceNo
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
timeoutSecondsNo
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the polling loop and the timeout bounds (default 30s, max 120s), but omits what happens on timeout (error vs empty result), whether it blocks, and any auth/connection prerequisites for a 23-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight clauses, front-loaded with the core poll-until semantics followed by the test-oriented scope. Nothing is wasted, though it is arguably too terse for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 23-parameter polling tool with no annotations, no output schema, and 13% schema coverage needs a much fuller description. The current text leaves return behavior, timeout outcome, and most filtering parameters undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 13% across 23 parameters, so the description is the main compensating channel, yet it only clarifies that contains/regex are the wait triggers and mentions timeout. The other ~20 params (pods, containsAll/Any, notContains, excludeLevels, excludePatterns, sample, limit, offset, cluster, namespace, etc.) get no explanation beyond their bare names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (poll/wait) and resource (log pattern on given pods), and the title/purpose clearly differentiate it from search/list siblings like dynatrace_search_logs or dynatrace_logs_tail. It does not explicitly name a sibling alternative, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'For integration tests' gives an implied when-to-use context that distinguishes this polling tool from the static log-search siblings, but it never states when NOT to use it or which sibling to prefer for one-shot reads. Usage is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_metrics_queryQuery MetricsC

Run a DQL timeseries or Environment API v2 metric selector within date bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoDQL by fields, e.g. k8s.pod.name, k8s.namespace.name
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
filterNoOptional DQL | filter ...
metricYesMetric id, e.g. dt.kubernetes.container.cpu_usage
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
useClassicApiNoIf true, GET /api/v2/metrics/query
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, but it discloses almost nothing beyond the one-line purpose. It does not mention the default range cap that allowLongRange overrides, the switch to the classic GET endpoint that useClassicApi triggers, or any auth/connection requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler, which is efficient. It is arguably terse given 12 parameters, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, no-annotation, no-output-schema tool, the description is too thin: it omits the DQL-vs-classic-API selection logic, connection resolution, and range-cap behavior that an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 12 parameters is already documented in the schema, which sets the baseline at 3. The description adds only the generic 'within date bounds' framing and no extra meaning for by/filter/window/connection/useClassicApi semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Run') and a concrete resource ('DQL timeseries or Environment API v2 metric selector') with a scoping clause ('within date bounds'). It is clear what the tool does, but it never distinguishes itself from the sibling dynatrace_execute_dql or indicates the metric-specific vs generic-DQL boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as dynatrace_execute_dql or dynatrace_verify_dql. Usage is only implied by the metric-selector phrasing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_pod_eventsPod EventsC

Kubernetes events for one pod or workload (Explorer Events tab).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose permissions, default time range, pagination, output format, or whether the operation is read-only. The brief reference to '(Explorer Events tab)' offers no actionable behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It is efficient, though arguably too brief for a 13-parameter tool, which keeps it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters, no required fields, no output schema, and no annotations, the description does not explain time-range defaults, cluster discovery prerequisites, or how this tool relates to other event tools. An agent would need to inspect the schema and infer routing, which is a significant gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so the schema already documents nearly all 13 parameters well. The description adds no parameter-level meaning beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('Kubernetes events') and scope ('for one pod or workload'), so an agent knows what the tool returns. However, it does not distinguish this tool from siblings like dynatrace_k8s_events or dynatrace_k8s_issue_events, leaving the agent to guess which event tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no when-not-to-use conditions, and no named alternatives among the many sibling event tools. The only implied usage is that a pod or workload must be specified, but that is not stated as a routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_pod_issuesPod IssuesC

CrashLoop / OOM / not-Ready signals: restarts plus Warning events for a pod.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podYesExact pod name (from list_pods or the user)
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the output mixes restart metrics with Warning events, which is useful, but says nothing about read-only semantics, default time window behavior, the range cap implied by 'allowLongRange', or result volume. For a read tool with zero annotation coverage this is thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact clause that front-loads the signal categories an agent triages on. It is efficient with no filler, though it omits a real verb and reads as a fragment rather than a complete directive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no annotations, and no output schema, the description does partially compensate by naming the return contents (restarts plus Warning events). However it omits time-window semantics, the default cap behind allowLongRange, and any differentiation from the pod/k8s event siblings, leaving meaningful gaps for an 11-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters (pod, from/to, around/window, cluster, namespace, connection, allowLongRange, etc.) are already documented in the schema. The description adds no parameter-level detail beyond 'for a pod', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (a pod) and the exact signals returned: CrashLoop/OOM/not-Ready indicators, restart counts, and Warning events. That is far more informative than the bare title 'Pod Issues'. It stops short of distinguishing this from siblings like dynatrace_pod_events, dynatrace_k8s_issue_events, or dynatrace_get_pod, which an agent would need in order to choose correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no stated prerequisites (e.g. that pod name must come from dynatrace_list_pods), and no named alternative. In a toolkit containing dynatrace_pod_events, dynatrace_k8s_issue_events, and dynatrace_get_pod, the lack of routing information is a real gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_pod_logsPod LogsB

Last N log lines for a pod (still time-bounded). Prefer log_summary / search_logs for filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podYes
fromNoStart: now-30m or ISO-8601
hostNohost.name
nodeNok8s.node.name
podsNoOne or more pod names (same matching rules as pod)
sortNo
limitNo
regexNo
aroundNoPivot timestamp for a window
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoservice.name / dt.entity.service
traceIdNo
containsNo
entityIdNoDynatrace entity id if known
loglevelNoERROR,WARN or array
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
containerNok8s.container.name
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
allowLongRangeNoAllow ranges longer than the default cap
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full behavioral burden. 'Still time-bounded' hints at a cap but never states the default window, what allowLongRange does, the default limit/sort, or the return format for a 35-parameter tool — a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight, front-loaded sentences with no waste. However, the extreme brevity relative to a 35-parameter surface edges toward under-specification rather than efficient conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, 54% param coverage, and 35 parameters, this description is far too thin. It gives no help navigating the large parameter set or understanding default/pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

At 54% schema description coverage, the description adds essentially zero parameter meaning beyond the schema. For a 35-param tool where nearly half the parameters are undocumented, the two-sentence description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Last N log lines for a pod'. This distinguishes it from log-aggregation siblings, but the parenthetical '(still time-bounded)' is cryptic and the massive 35-param surface suggests it does far more than the stated 'last N lines'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names preferred alternatives ('Prefer log_summary / search_logs for filters'), giving a when-not condition. The sibling names are abbreviated rather than exact IDs, but the routing intent is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_pod_quotaPod CPU/Memory QuotaB

Kubernetes Explorer quota tables for any namespace: CPU (mcore usage, throttled, requests, limits, %, unused) and Memory (usage, requests, limits, %, unused). Discover cluster/namespace first; do not assume names.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
sortNoWhich table is listed first (default cpu)
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It implies a read-only table query by naming 'quota tables', and the allowLongRange parameter hints at a range cap, but it never states permissions, whether a cap is being hit, or what the defaults are. Useful but incomplete for a 14-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the data provided and ending with the prerequisite. No filler, though the parenthetical column list is dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-param tool with no output schema and no annotations, the description partially compensates by listing the returned columns. It still omits default time-range behavior, how the sort parameter shapes the two tables, and any output shape detail beyond the column names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 93%, so the schema already documents nearly all parameters (including cluster/namespace discovery hints). The description adds value only by naming the output columns, not by clarifying parameter behavior, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Kubernetes quota tables) and enumerates the columns returned for CPU and Memory, so the agent knows exactly what data this produces. It does not, however, distinguish itself from the sibling dynatrace_pod_utilization, which plausibly overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one concrete prerequisite ('Discover cluster/namespace first; do not assume names'), which is genuinely useful routing guidance. It never says when to prefer this over dynatrace_pod_utilization or the other pod_* siblings, so the alternative-selection guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_pod_utilizationPod UtilizationC

Kubernetes Explorer CPU and Memory quota: usage, throttled, requests, limits, % of request/limit, unused. Filter by cluster/namespace/workload/pod. Same report as dynatrace_pod_quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose default time ranges, pagination/limit behavior, auth or connection requirements, or whether results are cost-limited, leaving the behavioral profile of a 13-parameter query largely unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, metrics front-loaded, no filler. Structure is efficient and scannable, though the final 'Same report as...' clause is redundant rather than informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, no-annotation, no-output-schema tool the description is thin: it names the metrics returned but omits default time behavior, connection handling, and result-shape expectations. Adequate to identify the tool, not to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 92%, so the schema already documents nearly every parameter including time, pod matching, cluster, workload, and namespace. The description's filter list adds little beyond what the schema states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and metrics set: CPU and Memory quota usage, throttled, requests, limits, % of request/limit, unused. Distinguishes scope (Kubernetes Explorer pod quota metrics), though the closing note 'Same report as dynatrace_pod_quota' blurs rather than sharpens sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives filter dimensions (cluster/namespace/workload/pod) but no when-to-use guidance, no prerequisites, and no condition for choosing it over dynatrace_pod_quota despite explicitly stating the two return the same report.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_query_problemsQuery Davis ProblemsA

List Davis problems. status: ACTIVE, CLOSED, or ALL. Optional search on description/id/category. Date bounds apply (default last 2h, max 30d).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
searchNoSubstring match on description, display_id, or category
statusNo
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses the date-bound defaults (last 2h) and the 30d cap, and enumerates the status values, but omits return format, pagination, and the read-only nature implied by 'List'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no wasted words. The core verb and resource lead, followed by filters and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no annotations and no output schema, the description covers status, search, and date bounds but leaves several parameters (around, window, startDate/endDate, connection, allowLongRange) unexplained. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high at 82%, so the baseline is 3. The description adds the default/max range behavior not captured in the schema, but omits the around/window pivot params, connection, and allowLongRange beyond the vague 'max 30d' hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List Davis problems'), which is clearly distinct from the singular dynatrace_get_problem sibling. It does not, however, explicitly contrast itself with triage_problem or triage_scope, leaving some sibling differentiation to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the listing use case and surfaces the status filter, but offers no explicit when-to-use or when-not-to-use guidance relative to siblings like dynatrace_get_problem or dynatrace_triage_problem. Usage context must be inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_reset_grail_budgetReset Grail BudgetA

Clear session Grail scanned-bytes budget so queries can continue.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the key behavioral facts: the target is the session-scoped Grail scanned-bytes budget and the effect is that queries can continue. It says nothing about required privileges, whether the reset is auditable/reversible, or how governance/consumption accounting is affected, which are significant omissions for a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero waste; the action is front-loaded and the rationale follows immediately. Nothing is padded or repeated from the name/title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool the description is functionally sufficient to invoke it, but as a mutation with no annotations it omits auth requirements and the consequences of clearing the budget. An agent knows what happens but not under what authority or with what side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify and the baseline is 4. The session scoping is stated, which is the only parameter-like dimension that exists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Clear session Grail scanned-bytes budget') and even explains the outcome ('so queries can continue'). That is far more specific than the title alone, though it does not explicitly contrast itself with query siblings like dynatrace_execute_dql or dynatrace_verify_dql.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'so queries can continue' implies the trigger condition (queries blocked by an exhausted scanned-bytes budget), which is useful implied guidance. However, it never states when NOT to use it or which alternative to consider, leaving the agent to infer the operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_search_logsSearch LogsB

Exact matching log lines only (not a dump). Filter by cluster/namespace/pod/container, loglevel, contains/regex, trace id, and date bounds. Default limit 50, max 200.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
hostNohost.name
nodeNok8s.node.name
podsNoOne or more pod names (same matching rules as pod)
sortNo
limitNo
regexNo
aroundNoPivot timestamp for a window
offsetNo
sampleNoKeep 1 in N lines
spanIdNo
statusNo
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoservice.name / dt.entity.service
traceIdNo
containsNo
entityIdNoDynatrace entity id if known
loglevelNoERROR,WARN or array
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
containerNok8s.container.name
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
containsAllNo
containsAnyNo
notContainsNo
excludeLevelsNo
allowLongRangeNoAllow ranges longer than the default cap
caseInsensitiveNo
excludePatternsNo
maxContentCharsNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden. It does disclose two useful behaviors: results are exact matching lines rather than a full dump, and the result set is capped (default limit 50, max 200). It says nothing about auth/connection selection, pagination behavior, or what happens with long ranges, so the disclosure is partial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the key scoping phrase and then the filter dimensions and limits. No filler, though it stops short of being maximally informative for a tool of this size.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 35-parameter tool with no annotations and no output schema, three sentences are inadequate. Pagination, sorting, sampling, long-range caps, connection selection, and the distinction from the many log siblings are all left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 57% across 35 parameters, so the schema documents only part of the surface. The description names the main filter families and adds the default limit value (50), which the schema lacks, but it says nothing about the contains/containsAll/containsAny/notContains distinction, sample, sort, offset, allowLongRange, caseInsensitive, or maxContentChars.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action on a specific resource – filtering log lines by cluster/namespace/pod/container, loglevel, contains/regex, trace id and date bounds. The parenthetical '(not a dump)' hints it is distinct from dump-style log tools, but it never names which sibling to use for full-stream or summarization needs, so sibling differentiation is weak.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance, and the large family of log siblings (dynatrace_log_summary, dynatrace_pod_logs, dynatrace_logs_tail, dynatrace_logs_surrounding, dynatrace_logs_wait) is never referenced. Usage is only weakly implied by the filter list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_security_events_summarySecurity Events SummaryB

Summarize security.events by provider, type, and risk level. Always aggregated.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
extraFilterNoAdditional DQL | filter ...
allowLongRangeNoAllow ranges longer than the default cap
entityIdsOrNamesNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose one meaningful trait beyond the schema: results are always aggregated, so the agent should not expect raw event rows or pagination. It says nothing about auth/connection requirements, cardinality limits, or the default range cap that allowLongRange hints at.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero filler, with the resource and aggregation constraint front-loaded. It is arguably terse for a 10-parameter tool, but nothing in the text is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description's implication that results are counts broken down by provider/type/risk level is the main hint about the return shape, which is useful but thin. For a 10-parameter tool with no annotations and an undocumented entityIdsOrNames parameter, more behavioral and usage context would be warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 90%, so the schema already documents nearly every parameter (time window forms, connection, extraFilter, allowLongRange); the baseline is 3. The description adds nothing about parameter syntax or interaction, and entityIdsOrNames has no description in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (summarize), a specific resource (security.events), and the grouping dimensions (provider, type, risk level), so the agent knows this is an aggregation over security events rather than a raw-event query. It is distinguishable from dynatrace_execute_dql or dynatrace_vulnerabilities, though it never names a sibling explicitly to reinforce that contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Always aggregated" implicitly tells the agent this tool cannot return individual events, which implies that raw-event or custom-DQL needs should go to dynatrace_execute_dql. However, there is no explicit when-to-use statement, no mention of when it should be preferred over dynatrace_vulnerabilities or dynatrace_compliance_findings, and no exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_service_healthService HealthC

Request count, failure count, and response time for a service/workload.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoService name substring or entity id
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It states which metrics are returned but says nothing about read-only safety, required permissions, default time-range behavior, aggregation, limits, or how the multiple time parameters interact, leaving the agent with minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, waste-free sentence with no filler or redundancy. It is appropriately concise, though the fragment style lacks a clear verb and could have been slightly more front-loaded as an action statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters, no required fields, no output schema, and no annotations, the description is too thin. It does name the returned metrics, but it does not explain return format, aggregation, time-window semantics, or how service, workload, and namespace parameters relate, leaving significant gaps for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters are already documented in the schema, establishing a baseline of 3. The description adds no parameter meaning beyond what the schema provides, such as how from/to, startDate/endDate, and around/window should be chosen or combined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the data returned (request count, failure count, response time) and the resource (a service/workload), so an agent knows what the tool provides. However, it is a noun phrase rather than a verb+resource statement and does not distinguish this from siblings like dynatrace_health, dynatrace_workload_status, or dynatrace_metrics_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance, no prerequisites, and no alternatives. With 11 optional parameters and several sibling tools covering related health/status/metrics queries, an agent receives no help deciding when this tool is preferred over dynatrace_metrics_query or dynatrace_workload_status.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_slow_spansSlow SpansB

Highest-duration spans in the window (latency triage). Follow a row with dynatrace_get_trace.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
limitNo
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoService name substring
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses a latency ranking and the workload window ('in the window') but not whether the query is bounded by the default range cap (only the allowLongRange param hints at this), whether results are trial/billing-limited (Grail budget sibling exists), or what the return shape looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler: purpose first, follow-up action second. Under- rather than over-specified for an 11-param tool, but no wasted clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, no-annotation, no-output-schema tool, the description is thin. It does not explain the range cap/default, the relationship to dynatrace_failed_spans (choosing which span-ranking tool), or the result fields an agent needs to pivot to dynatrace_get_trace.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 91%, so time-range semantics for window/around/from/to, service, namespace, and limit are largely documented in the schema. The description adds 'in the window' scoping context but nothing about the placeholder 'row' identifiers or which params affect ranking.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (spans) and a clear ranking/mode ('highest-duration', latency triage). The parenthetical '(latency triage)' hints at intent, distinguishing it somewhat from dynatrace_failed_spans, but the distinction between slow vs failed is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a follow-up action ('Follow a row with dynatrace_get_trace') but no when-to-use/how-not guidance or explicit comparison to the adjacent sibling dynatrace_failed_spans (error triage vs latency triage). The triage hint is present but the alternative tool is not named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_triage_problemTriage ProblemA

Investigate a Davis problem: problem record, kube pods/quota, ERROR logs, OOM/CrashLoop events. Pass P-123 or paste alert text. Optional cluster/namespace/workload override extracted hints.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
alertTextNoPagerDuty/chat paste; P-id is extracted
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
problemIdNoP-123456 or event id
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Investigate' and the list of read-type sources (records, logs, events) imply a non-destructive read, and it discloses the aggregation scope, but it never explicitly confirms read-only behavior, auth/permission needs, or cost/rate characteristics for a 13-parameter fan-out query.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, zero filler, with the core action and its data scope front-loaded ahead of the input instructions. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, zero-required, no-output-schema tool, the description covers the investigation scope and accepted inputs but leaves gaps: it does not explain how the time-range params interact with around/window, nor what the aggregated result contains. Adequate but with clear omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds a little meaning by clarifying that alertText yields an extracted P-id and that cluster/namespace/workload act as overrides of extracted hints, but the time-range vs around/window distinction and connection semantics are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Investigate') plus a named resource ('Davis problem') and an explicit enumeration of what it aggregates: problem record, kube pods/quota, ERROR logs, OOM/CrashLoop events. An agent can tell this is a compound triage tool rather than a single-record fetch, but no sibling (e.g. dynatrace_get_problem or dynatrace_triage_scope) is named to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives input modes ('Pass P-123 or paste alert text') and notes the optional overrides, which implies usage. However it never states when to prefer this over the many sibling investigation tools (dynatrace_get_problem, dynatrace_pod_issues, dynatrace_triage_scope) or when not to use it, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_triage_scopeTriage Cluster/Namespace/WorkloadA

SRE snapshot without a problem id: active Davis problems, OOM/CrashLoop events, ERROR log counts, CPU/memory quota hotspots, replica mismatch, restarts, service golden signals, failed spans. Pass the user's cluster/namespace/workload (discover first). Default window 30m.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
podNoPod name: exact replica, prefix ending with '-', or glob (my-app-*).
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
serviceNoOptional service name for traces/golden signals
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden: it is transparent about scope (aggregate over many signals) and the default window of 30m, which hints at cost/breadth but never states it. It omits the safety profile (read-only?), any permissions/auth requirements, rate limits, or whether this is an expensive fan-out query. Useful but incomplete behavioral context for a heavy multi-signal aggregate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the tool's identity ('SRE snapshot without a problem id'), followed by a tight signal list and then the invocation precondition and default. No filler; every clause carries information for selection or invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-param, no-annotation, no-output-schema aggregate tool, the description covers what is collected, the default window, and that discovery must precede invocation. It does not clarify that cluster/namespace are effectively required despite 0 required params in schema, nor hint at the response shape, but it is largely complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (13 params, all documented), so the baseline is 3. The description reinforces that cluster/namespace/workload are the inputs to pass and points to discovery tooling, and notes the 30m default window, but adds no syntax beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The definition gives a specific verb+resource ('SRE snapshot') and enumerates exactly what it aggregates: Davis problems, OOM/CrashLoop events, ERROR counts, quota hotspots, replica mismatch, restarts, golden signals, failed spans. The phrase 'without a problem id' cleanly distinguishes it from the sibling dynatrace_triage_problem, so an agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It frames the use case ('without a problem id') and tells the caller to pass cluster/namespace/workload and to discover first, which is the key precondition. It stops short of naming explicit alternatives/exclusions (e.g., 'if you have a problem id use dynatrace_triage_problem', or when a single focused tool like dynatrace_k8s_events is preferable), so it is clear context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_verify_dqlVerify DQLB

Parse/verify a DQL statement without executing it against Grail storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
dqlYes
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the single most important behavioral trait: no execution against Grail, so no query cost or data mutation. However, it says nothing about what verification actually reports (syntax vs. semantic errors), whether auth/connection is required, or whether it consumes the Grail budget.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the action and immediately states the key constraint. No filler, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema tool, the description is minimally adequate: it establishes scope and the non-executing behavior. It omits what a failed verification returns and whether the optional connection affects parsing, leaving an agent with reasonable but incomplete expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: 'connection' is documented in the schema, but the required 'dql' parameter has no description. The tool description adds no format, length, or syntax guidance for the statement beyond the bare phrase 'a DQL statement', so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (parse/verify) and resource (DQL statement), and the qualifier 'without executing it against Grail storage' implicitly separates it from dynatrace_execute_dql. It never names the sibling explicitly, so an agent must infer the pairing from the phrase rather than being told.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a pre-flight validation step before dynatrace_execute_dql, but the description never says 'use this before executing' or names any alternative. No exclusions or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_vulnerabilitiesVulnerabilities SummaryC

Summarized vulnerability findings from Grail security.events (max 100 groups).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
endDateNoCalendar end YYYY-MM-DD (UTC day)
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
extraFilterNo
allowLongRangeNoAllow ranges longer than the default cap
entityIdsOrNamesNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the data source (Grail security.events) and a group cap (max 100), which is useful, but says nothing about permissions, pagination/truncation behavior once the cap is hit, or whether long-range queries are prohibited without allowLongRange.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the source and cap front-loaded and zero filler. It is appropriately terse for its content, though it leans toward under-specification rather than genuine conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with no annotations and no output schema, the description is far too thin. It omits output shape, defaults for the many time-range parameters, truncation semantics at 100 groups, and any guidance on the overlapping security/compliance siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the schema already documents most parameters including time windows, connection, and allowLongRange. The description adds no parameter meaning beyond the schema, which is the expected baseline at high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: summarizing vulnerability findings sourced from Grail security.events, plus a scope bound (max 100 groups). This lets an agent know it is a read-only summary tool, but it does not distinguish itself from close siblings like dynatrace_compliance_findings or dynatrace_security_events_summary, which also summarize security data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no exclusions, and no named alternatives despite a crowded sibling set of security and compliance tools. An agent must infer from the name alone that this is for vulnerability triage rather than compliance or generic security events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dynatrace_workload_statusWorkload StatusC

Desired vs ready replicas for a Kubernetes workload (covers No pod ready).

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd: now or ISO-8601
fromNoStart: now-30m or ISO-8601
aroundNoPivot timestamp for a window
windowNoHalf-window around pivot, e.g. 2m
clusterNoDynatrace k8s.cluster.name. Discover with dynatrace_list_clusters; do not assume a cluster.
endDateNoCalendar end YYYY-MM-DD (UTC day)
workloadNoWorkload or deployment name (k8s.workload.name / k8s.deployment.name).
namespaceNoKubernetes namespace (k8s.namespace.name). Discover with dynatrace_list_namespaces.
startDateNoCalendar start YYYY-MM-DD (UTC day)
connectionNoNamed connection from env (default, optional stage/prod aliases, or a DYNATRACE_CONNECTIONS key)
allowLongRangeNoAllow ranges longer than the default cap

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full behavioral burden, yet it discloses nothing about read-only nature, permissions, side effects, or how the query behaves. It reveals the returned metric (desired vs ready replicas) but no operational traits such as whether missing workloads return empty or error.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. The parenthetical '(covers No pod ready)' is terse to the point of being cryptic, which slightly undercuts clarity rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter, no-required-params tool with no output schema and no annotations, the description only states what is measured. Rich schema coverage handles the parameters, but there is no help on which identifiers to supply together or how the result should be interpreted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters (time windows, cluster, workload, namespace, connection, allowLongRange) are already documented in the schema. The description adds no parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (Kubernetes workload) and the exact signal it reports (desired vs ready replicas), which is distinct from siblings like dynatrace_pod_issues or dynatrace_pod_utilization. It stops short of naming or contrasting any sibling, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the many pod/k8s siblings. The parenthetical '(covers No pod ready)' faintly implies a scenario, but the agent must infer when to reach for this over dynatrace_pod_issues or dynatrace_k8s_events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 38 tool updatesv1.0.0
    • First observeddynatrace_compliance_findings
    • First observeddynatrace_execute_dql
    • First observeddynatrace_failed_spans
    • First observeddynatrace_get_entity_id
    • First observeddynatrace_get_entity_name
    • First observeddynatrace_get_pod
    • First observeddynatrace_get_problem
    • First observeddynatrace_get_trace
    • First observeddynatrace_health
    • First observeddynatrace_k8s_events
    • First observeddynatrace_k8s_issue_events
    • First observeddynatrace_list_clusters
    • First observeddynatrace_list_connections
    • First observeddynatrace_list_exceptions
    • First observeddynatrace_list_namespaces
    • First observeddynatrace_list_nodes
    • First observeddynatrace_list_pods
    • First observeddynatrace_log_summary
    • First observeddynatrace_logs_surrounding
    • First observeddynatrace_logs_tail
    • First observeddynatrace_logs_wait
    • First observeddynatrace_metrics_query
    • First observeddynatrace_pod_events
    • First observeddynatrace_pod_issues
    • First observeddynatrace_pod_logs
    • First observeddynatrace_pod_quota
    • First observeddynatrace_pod_utilization
    • First observeddynatrace_query_problems
    • First observeddynatrace_reset_grail_budget
    • First observeddynatrace_search_logs
    • First observeddynatrace_security_events_summary
    • First observeddynatrace_service_health
    • First observeddynatrace_slow_spans
    • First observeddynatrace_triage_problem
    • First observeddynatrace_triage_scope
    • First observeddynatrace_verify_dql
    • First observeddynatrace_vulnerabilities
    • First observeddynatrace_workload_status

TDQS

C2.9/5.0

Scored across 38 tools

Disambiguation3/5

Several tools overlap significantly: dynatrace_pod_utilization and dynatrace_pod_quota are explicitly the same report, while dynatrace_k8s_events, dynatrace_pod_events, and dynatrace_k8s_issue_events all surface Kubernetes events with subtly different scopes. Log tools also overlap (list_exceptions vs search_logs, pod_logs vs search_logs), though descriptions provide guidance. Boundaries are mostly documented, but an agent can still misselect among event and log tools.

Naming Consistency4/5

All tools use the dynatrace_ prefix and snake_case, which is highly predictable. However, many names are noun phrases (pod_issues, workload_status, compliance_findings) rather than the verb_noun pattern, so the convention is consistent in style but not uniformly action-oriented. Minor deviations only.

Tool Count2/5

38 tools is well above the 15-tool threshold for a well-scoped server and falls into the 'too many' range. While the domain is broad, the count increases surface area and contributes to overlap, with several specialized tools that could be consolidated.

Completeness4/5

The server covers a wide incident-triage surface: DQL, problems, logs, K8s resources, traces, spans, security, and compliance. Gaps remain around metrics discovery (no list_metrics), entity relationships, SLOs, and broader platform resources, but generic execute_dql mitigates many of these. For the apparent observability/troubleshooting purpose, coverage is strong with minor workaroundable gaps.

Related MCP Connectors

Related MCP Servers