Skip to main content
Glama
mnmozi

Dynatrace SaaS MCP Server

by mnmozi

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DT_API_TOKENYesApi-Token (dt0c01…) for classic APIs
DT_CLASSIC_URLYesClassic host base URL (e.g., https://asn8731h.sprint.dynatracelabs.com)
DT_PLATFORM_URLYesPlatform host base URL (e.g., https://asn8731h.sprint.apps.dynatracelabs.com)
DT_ENABLE_WRITESNoSet to 'true' to allow create/update/delete operations (default: false)
DT_PLATFORM_TOKENYesBearer token (dt0s16…) for platform APIs
DT_HTTP_TIMEOUT_MSNoRequest timeout in milliseconds (default: 30000)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
execute_dqlA

Execute a Dynatrace Query Language (DQL) statement against Grail and return the result records. Use for logs, spans/traces, events, metrics, and entities. Example: 'fetch logs | filter loglevel == "ERROR" | limit 50'.

verify_dqlA

Validate a DQL statement without returning data (executes with limit 0). Returns ok=true or the validation error.

list_metricsA

List/search metric descriptors (classic Metrics v2). Use a metricSelector like 'builtin:host.*' to filter. On Gen3/Grail tenants this endpoint may be unavailable; use query_metric or execute_dql instead.

get_metric_metadataB

Get the descriptor/metadata for a single metric by key (classic Metrics v2). On Gen3/Grail tenants this endpoint may be unavailable; use query_metric or execute_dql instead.

query_metricA

Query metric data points via Grail DQL 'timeseries' (Gen3-native, platform token). Builds a timeseries query and executes it against the Grail storage API. Works on all Gen3/Grail tenants with the storage:metrics:read scope.

list_hostsA

Queries Smartscape host entities via Grail DQL (Gen3-native). Pass useClassic:true to use the classic Entities v2 API on Gen2 tenants. Optional tag/management-zone filters only work with useClassic:true (Gen2).

find_entitiesA

Queries Smartscape entities via Grail DQL (Gen3-native). Pass useClassic:true to use the classic Entities v2 API on Gen2 tenants. The entitySelector must include a type(...) clause for the Grail DQL path; without it, a guidance message is returned.

get_entityA

Queries a single Smartscape entity by id via Grail DQL (Gen3-native). Pass useClassic:true to use the classic Entities v2 API on Gen2 tenants.

list_entity_typesB

Queries Smartscape entity types via Grail DQL (Gen3-native). Returns guidance on common Grail entity tables. Pass useClassic:true to use the classic Entities v2 API on Gen2 tenants.

list_problemsB

List problems (classic Problems v2). Filter by status/severity via problemSelector and a timeframe.

get_problemA

Get full details of one problem, including root cause and affected entities.

search_logsA

Search logs in Grail via DQL. Builds a 'fetch logs' query with optional filters. For advanced needs use execute_dql.

search_spansB

Search distributed-tracing spans in Grail via DQL ('fetch spans'). Filter by service, status, or duration.

get_traceA

Fetch all spans for a single trace id (ordered by start time) for latency/root-cause analysis.

list_vulnerabilitiesC

List security vulnerabilities (Dynatrace Platform Vulnerabilities v1). Supports optional DQL-style filter expressions, sort, and time range.

get_vulnerabilityA

Get full details of a single vulnerability by its ID (Dynatrace Platform Vulnerabilities v1).

list_settings_schemasC

List Settings 2.0 schema ids (classic). These identify configurable settings types.

get_settings_schemaA

Get the full JSON schema for a Settings 2.0 schemaId. Use this to construct a valid 'value' before writing.

list_settings_objectsB

List Settings 2.0 objects, filtered by schema and/or scope.

get_settings_objectB

Get one Settings 2.0 object by objectId.

validate_settings_objectA

Validate a Settings 2.0 object payload WITHOUT persisting it (validateOnly=true). Returns constraint violations if invalid. Always safe (read-only).

create_settings_objectB

Create a Settings 2.0 object (WRITE). Validate first with validate_settings_object.

update_settings_objectB

Update an existing Settings 2.0 object by objectId (WRITE).

delete_settings_objectA

Delete a Settings 2.0 object by objectId (WRITE, destructive).

list_dashboardsA

List Dynatrace dashboards accessible to you (Document Service). Filters to type='dashboard'. Optionally pass pageSize (max 1000).

get_dashboardA

Get a dashboard by id — returns combined metadata and content. Fetches metadata from /documents/{id}/metadata and content from /documents/{id}/content, then merges them into { meta, content }.

create_dashboardA

Create a new dashboard (WRITE). Sends a multipart/form-data POST per the Document Service spec. The content object is serialized to JSON and sent as the 'content' part with Content-Type application/json. Provide the content inline via 'content' OR from a file via 'contentPath' (not both). Requires DT_ENABLE_WRITES=true.

update_dashboardA

Update an existing dashboard (WRITE). Uses PATCH /documents/{id} with multipart/form-data per the spec. Optimistic locking: you must supply the current document version. At least one of name, content, or contentPath must be provided. Requires DT_ENABLE_WRITES=true.

delete_dashboardA

Delete (trash) a dashboard by id (WRITE). Optimistic locking: you must supply the current document version. The document is moved to the trash (restorable for 30 days). Requires DT_ENABLE_WRITES=true.

list_notebooksB

List Dynatrace notebooks accessible to you (Document Service). Filters to type='notebook'. Optionally pass pageSize (max 1000).

get_notebookA

Get a notebook by id — returns combined metadata and content. Fetches metadata from /documents/{id}/metadata and content from /documents/{id}/content, then merges them into { meta, content }.

create_notebookA

Create a new notebook (WRITE). Sends a multipart/form-data POST per the Document Service spec. The content object is serialized to JSON and sent as the 'content' part with Content-Type application/json. Provide the content inline via 'content' OR from a file via 'contentPath' (not both). Requires DT_ENABLE_WRITES=true.

update_notebookA

Update an existing notebook (WRITE). Uses PATCH /documents/{id} with multipart/form-data per the spec. Optimistic locking: you must supply the current document version. At least one of name, content, or contentPath must be provided. Requires DT_ENABLE_WRITES=true.

delete_notebookA

Delete (trash) a notebook by id (WRITE). Optimistic locking: you must supply the current document version. The document is moved to the trash (restorable for 30 days). Requires DT_ENABLE_WRITES=true.

list_slosC

List Service-Level Objectives (platform SLO v1).

get_sloA

Get one SLO by id (platform SLO v1).

evaluate_sloA

Evaluate an SLO by ID and return its compliance result (platform SLO v1). Uses the async evaluation:start / evaluation:poll flow per spec.

list_objective_templatesB

List SLO objective templates (platform SLO v1).

create_sloB

Create an SLO (WRITE). Body fields per the SLO v1 spec (name, criteria, target, etc.).

update_sloC

Update an SLO by id (WRITE).

delete_sloA

Delete an SLO by id (WRITE, destructive).

list_monitorsA

List all synthetic monitors (browser and network availability). Optionally filter using a monitor-selector expression.

get_monitorA

Get the full definition of a single synthetic monitor by its entity ID.

list_synthetic_locationsB

List all synthetic locations (both public and private) available for the environment.

list_synthetic_nodesA

List all synthetic nodes (ActiveGates capable of running synthetic monitors).

create_monitorB

Create a new synthetic monitor definition (WRITE). Pass a full monitor body per the platform synthetic v1 spec (SyntheticMultiProtocolMonitorRequest or SyntheticBrowserMonitorRequest).

update_monitorA

Update (replace) a synthetic monitor definition by entity ID (WRITE). Sends a full PUT to /monitors/{monitor-id} per the platform synthetic v1 spec.

delete_monitorA

Delete a synthetic monitor definition by entity ID (WRITE, destructive).

list_request_attributesA

List all request attribute definitions (classic Config API v1).

get_request_attributeA

Get a single request attribute definition by ID (classic Config API v1).

create_request_attributeA

Create a new request attribute (WRITE, classic Config API v1). Body must include at minimum: name, dataType, dataSources.

update_request_attributeB

Update an existing request attribute by ID (WRITE, classic Config API v1).

delete_request_attributeA

Delete a request attribute by ID (WRITE, destructive, classic Config API v1).

list_request_namingsA

List all request naming rules (classic Config API v1).

get_request_namingB

Get a single request naming rule by ID (classic Config API v1).

create_request_namingB

Create a new request naming rule (WRITE, classic Config API v1). Body must include at minimum: naming, enabled, namingPattern, conditions.

update_request_namingB

Update an existing request naming rule by ID (WRITE, classic Config API v1).

delete_request_namingA

Delete a request naming rule by ID (WRITE, destructive, classic Config API v1).

list_custom_servicesA

List all custom service definitions for a given technology (classic Config API v1, read-only).

get_custom_serviceA

Get a single custom service definition by technology and ID (classic Config API v1, read-only).

list_openpipeline_configurationsA

List all OpenPipeline configurations (one per data type: logs, events, bizevents, metrics, spans, davis, sdlcEvents, securityEvents, etc.). Returns the available data-type configurations with their editable status.

get_openpipeline_configurationA

Get the full OpenPipeline configuration for a specific data type (id). Returns all endpoints, pipelines, and routing rules. Use this to inspect or fetch the config before modifying it with update_openpipeline_configuration.

list_openpipeline_technologiesA

List all available OpenPipeline technology parsers (grouped by technology category). Each technology entry includes its id, name, matcher condition, and allowed configuration types.

get_openpipeline_technology_processorsA

Get the processors available for a specific OpenPipeline technology. Use list_openpipeline_technologies first to find the technology id.

verify_openpipeline_dql_processorA

Validate a DQL processor script without mutating any configuration (safe, read-only). Returns validation errors or a success indicator. Use this to author and validate DQL processing scripts before applying them with update_openpipeline_configuration.

openpipeline_dql_autocompleteA

Get DQL autocomplete suggestions for a DQL processor script (safe, read-only). Useful when authoring pipeline DQL expressions.

verify_openpipeline_matcherA

Validate a matcher (routing condition) expression without mutating any configuration (safe, read-only). Use this to validate routing conditions before applying them with update_openpipeline_configuration.

openpipeline_matcher_autocompleteA

Get autocomplete suggestions for a matcher (routing condition) expression (safe, read-only). Useful when authoring pipeline routing conditions.

convert_lql_to_dqlA

Convert a legacy LQL (Log Query Language) matcher expression to a DQL (Dynatrace Query Language) equivalent (safe, read-only). Useful when migrating older pipeline routing conditions.

preview_openpipeline_processorA

Preview the effect of a pipeline processor on sample data without mutating any configuration (safe, read-only). Returns per-record match and transformed record results. Use this to author and validate processors before applying them with update_openpipeline_configuration. Include a 'sampleData' string field (JSON-encoded record) inside the processor definition.

preview_openpipeline_pipelineA

Preview the effect of an ORDERED SEQUENCE of processors by threading a record through each one via repeated /preview/processor API calls (safe, read-only). Each step's output record becomes the next step's input — this is pure-code orchestration, not a bulk API call. Returns a per-step trace (matched, record) and the finalRecord after all steps. Stops at the first step that returns an error.

list_openpipeline_processor_typesA

List, per data type, the processor types allowed in each pipeline stage (parsed from each configuration's pipelinesSpecification). Useful for discovering which processor types (e.g. 'fieldsAdd', 'dql', 'drop', 'geoLookup') are valid in a given stage for a given data type. Read-only.

update_openpipeline_configurationA

Replace the full OpenPipeline configuration for a specific data type (WRITE, requires DT_ENABLE_WRITES=true). Fetch the current configuration first with get_openpipeline_configuration, modify it, then PUT it back. This replaces the entire configuration object.

check_settings_schema_driftA

Compare committed settings-schema versions against the live tenant. Optionally perform a structural key-path diff for a specific schemaId.

check_api_spec_driftA

Compare committed OpenAPI specs against the live tenant's catalog. Without args: returns a catalog-level overview of added/removed specs. With a spec stem (e.g. 'platform_slo_v1', 'environment-api-v2'): deep-diffs operations.

validate_against_live_schemaA

Validate a settings value against the live schema (read-only, validateOnly). Returns violations, required-missing keys, and a corrected value filtered to known properties.

get_server_infoA

Report this MCP server's build identity: version, git commit, build time, write-mode, and target Dynatrace hosts. Use to verify which build is running.

list_workflowsB

List Dynatrace Automation (Workflows) workflows via the platform Automation v1 API. Requires automation:workflows:read scope on the platform token.

get_workflowA

Get a single Dynatrace Automation workflow by ID (platform Automation v1). Requires automation:workflows:read scope.

list_workflow_executionsA

List Dynatrace Automation workflow executions (platform Automation v1). Draft and simple workflow executions are not included. Requires automation:workflows:read scope on the platform token.

get_workflow_executionA

Get a single Dynatrace Automation workflow execution by ID (platform Automation v1). Requires automation:workflows:read scope.

create_workflowA

Create a Dynatrace Automation workflow (WRITE, platform Automation v1). Requires DT_ENABLE_WRITES=true and automation:workflows:write scope on the platform token.

update_workflowA

Update (replace) a Dynatrace Automation workflow by ID (WRITE, platform Automation v1). Requires DT_ENABLE_WRITES=true and automation:workflows:write scope on the platform token.

delete_workflowA

Delete a Dynatrace Automation workflow by ID (WRITE, destructive, platform Automation v1). Requires DT_ENABLE_WRITES=true and automation:workflows:write scope on the platform token.

run_workflowA

Trigger a run of a Dynatrace Automation workflow (WRITE, platform Automation v1). Creates a new Execution for the workflow. Requires DT_ENABLE_WRITES=true and automation:workflows:run scope on the platform token.

list_grail_bucketsA

List all Grail retention bucket definitions (Dynatrace Storage Management v1). Returns the full bucket array including bucketName, table, retentionDays, status, etc.

get_grail_bucketA

Get a single Grail retention bucket definition by name (Dynatrace Storage Management v1).

create_grail_bucketB

Create a new custom Grail retention bucket (WRITE, Dynatrace Storage Management v1). Requires DT_ENABLE_WRITES=true and the platform scope storage:bucket-definitions:write.

update_grail_bucketA

Update a Grail retention bucket by name (WRITE, Dynatrace Storage Management v1). Uses an optimistic-locking PUT; include the current 'version' in the bucket body. Requires DT_ENABLE_WRITES=true and the platform scope storage:bucket-definitions:write.

delete_grail_bucketA

Delete a Grail retention bucket by name (WRITE, destructive, Dynatrace Storage Management v1). This permanently removes all data in the bucket. The operation is asynchronous; the bucket status transitions to 'deleting' until complete. Cannot delete buckets whose name starts with 'default_' or 'dt_'. Requires DT_ENABLE_WRITES=true and the platform scope storage:bucket-definitions:write.

list_filter_segmentsA

List all Grail filter segments (platform storage filter-segments v1).

get_filter_segmentB

Get a filter segment by UID (platform storage filter-segments v1).

create_filter_segmentA

Create a new filter segment (WRITE, platform storage filter-segments v1). Requires storage:filter-segments:write scope.

update_filter_segmentA

Update (replace) a filter segment by UID (WRITE, platform storage filter-segments v1). All fields are overwritten. Requires storage:filter-segments:write scope.

delete_filter_segmentA

Delete a filter segment by UID (WRITE, destructive, platform storage filter-segments v1). Requires storage:filter-segments:delete scope.

get_record_deletion_statusA

Get the status of a previously submitted Grail record deletion process. POST /platform/storage/record/v1/delete:status with the taskId from execute_record_deletion. Returns one of: finished, submitted, processing, unknown, or failed, plus optional progress and message fields. Required scopes: storage:records:delete, storage:events:read, storage:logs:read, storage:bizevents:read, storage:spans:read, storage:buckets:read.

execute_record_deletionA

DESTRUCTIVE — permanently deletes Grail records matching the given DQL query and optional timeframe. Data that is deleted CANNOT be restored. Timeframe length is limited to 24 hours; end time must be at least 4 hours in the past. Subsequent requests are queued and executed in order. Returns a taskId to track deletion progress via get_record_deletion_status. Requires DT_ENABLE_WRITES=true. Required scopes: storage:records:delete, storage:events:read, storage:logs:read, storage:bizevents:read, storage:spans:read, storage:buckets:read. Allowed query commands: fetch, fields, fieldsAdd, fieldsRemove, filter, parse.

cancel_record_deletionA

Cancel a Grail record deletion process that is in progress or queued. Cancels subtasks that have not started yet; already-deleted data is NOT restored. Requires DT_ENABLE_WRITES=true. Required scopes: storage:records:delete, storage:events:read, storage:logs:read, storage:bizevents:read, storage:spans:read, storage:buckets:read.

list_self_notificationsA

List self-notifications (platform notification v1). Returns paginated results array.

get_self_notificationB

Get a single self-notification by ID (platform notification v1).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mnmozi/dynatrace-mcp-saas'

If you have feedback or need assistance with the MCP directory API, please join our Discord server