Skip to main content
Glama
asafkiv

AppDynamics MCP Server

by asafkiv

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
APPD_URLNoController base URL (e.g., https://mycompany.saas.appdynamics.com)
APPD_CLIENT_NAMENoOAuth client name or API key
APPD_ACCOUNT_NAMENoAccount name (optional, for OAuth2 format clientName@accountName)
APPD_CLIENT_SECRETNoOAuth client secret (not required for API key mode)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
appd_get_applicationsA

List all business applications monitored by AppDynamics.

Optionally filter by name using a case-insensitive partial match. Returns application ID, name, and description for each app.

Use this tool first to discover application IDs needed by other tools.

Args:

  • nameFilter (string, optional): Filter by application name

Returns: Array of applications with id, name, and description.

appd_get_health_rulesA

List health rules configured for an application, or get details of a specific health rule.

Health rules define the thresholds and conditions that trigger violations. Understanding what health rules exist and their configuration is essential context for interpreting violations.

Without healthRuleId: returns a summary list of all health rules (id, name, type, enabled, affected entity type). With healthRuleId: returns the full configuration of that specific health rule including evaluation criteria.

Args:

  • application (string|number): App name or ID

  • healthRuleId (number, optional): Specific health rule ID for details

Returns: Array of health rules or single detailed health rule object.

appd_create_health_ruleA

Create a new health rule for an application.

Supports APM and SIM (Server & Infrastructure Monitoring) entity types. At least one critical condition is required.

Args:

  • application (string|number): App name or ID

  • name (string): Health rule name

  • enabled (boolean, default true)

  • affectedEntityType: BUSINESS_TRANSACTION_PERFORMANCE | APPLICATION_PERFORMANCE | TIER_NODE_HEALTH | TIER_NODE_TRANSACTION_PERFORMANCE | BACKEND_CALL_PERFORMANCE | SERVICE_ENDPOINT_PERFORMANCE | CUSTOM

  • affectedTier (string, optional): Scope to a specific tier (TIER_NODE_HEALTH / TIER_NODE_TRANSACTION_PERFORMANCE only)

  • affectedNode (string, optional): Scope to a specific node (takes precedence over affectedTier)

  • customEntityType (string, optional): Entity type for CUSTOM rules — use "SERVER" for SIM nodes

  • customEntityName (string, optional): Entity name for CUSTOM rules — use the server/node hostname

  • criticalConditions (array): at least one condition with metricPath, threshold, operator

  • warningConditions (array, optional): same structure

  • conditionAggregationType (ALL|ANY, default ALL)

  • useDataFromLastNMinutes (default 30)

  • waitTimeAfterViolation (default 30)

APM custom metrics (machine agent on APM app): use affectedEntityType=TIER_NODE_HEALTH with affectedTier or affectedNode. metricPath must be RELATIVE to the entity (e.g. "Custom Metrics|MyMetric").

SIM / URL Monitor metrics: use affectedEntityType=CUSTOM, customEntityType="SERVER", customEntityName=. metricPath must be the FULL absolute path starting with "Application Infrastructure Performance|...". Operators supported: GREATER_THAN, LESS_THAN, GREATER_THAN_EQUALS, LESS_THAN_EQUALS, EQUALS, NOT_EQUALS. Example: { metricPath: "Application Infrastructure Performance|Root|Individual Nodes|myhost|Custom Metrics|URL Monitor|SvcA|Status", threshold: 4, operator: "NOT_EQUALS" }

Returns: Created health rule object with assigned ID.

appd_update_health_ruleA

Update an existing health rule by ID.

Fetches the current rule, merges the provided fields, then PUTs the updated rule back. Only fields you supply are changed; unspecified fields retain their current values.

Args:

  • application (string|number): App name or ID

  • healthRuleId (number): ID of the health rule to update

  • name, enabled, affectedEntityType, criticalConditions, warningConditions, conditionAggregationType, useDataFromLastNMinutes, waitTimeAfterViolation — all optional

Returns: Updated health rule object.

appd_delete_health_ruleA

Permanently delete a health rule by ID.

This action cannot be undone. Use appd_get_health_rules to confirm the ID before deleting.

Args:

  • application (string|number): App name or ID

  • healthRuleId (number): ID of the health rule to delete

Returns: Confirmation message.

appd_enable_health_ruleA

Enable or disable a health rule without changing any other settings.

Fetches the current rule, sets the enabled flag, and PUTs it back.

Args:

  • application (string|number): App name or ID

  • healthRuleId (number): ID of the health rule

  • enabled (boolean): true to enable, false to disable

Returns: Updated health rule object.

appd_get_health_violationsA

Retrieve health rule violations for a specific application or all applications.

If application is not provided, returns violations across all monitored applications. Supports application lookup by name or numeric ID.

Args:

  • application (string|number, optional): App name or ID. Omit for all apps.

  • durationInMins (number, optional): Lookback window in minutes (default: 1440 = 24h)

Returns: Array of health rule violations with severity, status, affected entity, and timestamps.

appd_get_anomaliesA

Retrieve anomaly detection events for a specific application or all applications. By default, returns only currently open anomalies.

Set includeAll to true to see all events including closed ones.

Args:

  • application (string|number, optional): App name or ID. Omit for all apps.

  • durationInMins (number, optional): Lookback in minutes (default: 1440 = 24h)

  • severities (string, optional): Comma-separated severity levels (default: 'INFO,WARN,ERROR')

  • includeAll (boolean, optional): If true, includes all events including closed anomalies

Returns: Array of anomaly events. When querying all apps, results are grouped by application.

appd_get_business_transactionsA

List all business transactions (BTs) for a given application.

BTs are the key unit of monitoring in AppDynamics — each represents a distinct user request or workflow. Use this to discover BT IDs neeed by appd_get_bt_performance.

Args:

  • application (string|number): App name or IF

  • tierFilter (string, optional): Filter by tier name

Returns: Array of BTs with id, name, tierName, entryPointType.

appd_get_bt_performanceA

Get performance metrics for a specific business transaction (BT).

Retrieves average response time, calls per minute, errors per minute, slow calls, very slow calls, and stall count for the specified BT.

Use appd_get_business_transactions first to find the BT ID.

Args:

  • application (string|number): App name or ID

  • btId (number): Business transaction ID

  • durationInMins (number, optional): Lookback in minutes (default: 60)

Returns: BT details plus metric data for each performance metric.

appd_get_service_endpointsA

List service endpoints (SEPs) for an application.

Service endpoints represent individual API endpoints or servlet mappings within your application tiers. They provide more granular performance data than business transactions — you can see which specific URL paths or service methods are slow.

Args:

  • application (string|number): App name or ID

  • tierFilter (string, optional): Filter by tier name

Returns: Array of service endpoints with id, name, tier info, and type.

appd_get_service_endpoint_performanceA

Get performance metrics for a specific service endpoint.

Retrieves average response time, calls per minute, and errors per minute for the specified service endpoint.

Use appd_get_service_endpoints first to find the SEP ID.

Args:

  • application (string|number): App name or ID

  • sepId (number): Service endpoint ID

  • durationInMins (number, optional): Lookback in minutes (default: 60)

Returns: Performance metrics for the service endpoint.

appd_get_tiers_and_nodesA

Retrieve the tiers and nodes (infrastructure topology) for an application.

Shows each tier with its type, agent type, and associated nodes. Nodes include machine details, agent versions, and IP addresses.

Args:

  • application (string|number): App name or ID

Returns: Array of tiers, each with a nested array of nodes.

appd_get_backendsA

List all backend (remote service) dependencies detected for an application.

Backends are external services your application calls — databases (JDBC), HTTP APIs, caches (Redis, Memcached), message queues (JMS, Kafka), etc.

This is one of AppDynamics' most powerful features for dependency mapping and troubleshooting. Slow backends are a common root cause of application performance issues.

Args:

  • application (string|number): App name or ID

  • typeFilter (string, optional): Filter by exit point type (e.g., "HTTP", "JDBC", "CACHE")

Returns: Array of backends with id, name, exitPointType, and connection properties.

appd_get_snapshotsA

Retrieve transaction snapshots (slow, error, stall) for an application.

Snapshots are deep diagnostic captures of individual requests. They show call graphs, SQL queries, HTTP calls, and more for requests that were slow, errored, or stalled.

Args:

  • application (string|number): App name or ID

  • durationInMins (number, optional): Lookback in minutes (default: 30)

  • guids (string, optional): Specific snapshot GUIDs

  • dataCollectorName/Type/Value (string, optional): Data collector filters

  • maxResults (number, optional): Max snapshots to return (default: 20, max: 100)

Returns: Array of snapshot objects with timing, error details, and diagnostic info.

appd_get_errorsA

Retrieve error and exception events for an application.

Returns ERROR, APPLICATION_ERROR, and APPLICATION_CRASH events from the AppDynamics events API. These represent exceptions, application errors, and crashes detected by the agent.

Args:

  • application (string|number): App name or ID

  • durationInMins (number, optional): Lookback in minutes (default: 60)

Returns: Array of error events with severity, summary, timestamp, and affected entity details.

appd_diagnose_issueA

Perform a two-phase automated root cause analysis for an application.

Phase 1 (topology): Fetches health violations, anomalies, error events, transaction snapshots, business transactions, tiers, nodes, and backends in parallel — correlating them into ranked root cause candidates.

Phase 2 (metrics with baseline): For each affected tier, backend, and node, fetches metrics for BOTH the current window AND a prior equivalent baseline window. Anomaly flags (isSlow, isCpuSaturated, hasGcPressure) are computed as percentage degradation vs baseline — no hardcoded absolute thresholds. Example: a backend normally at 50ms now at 600ms is flagged (+1100%); one normally at 2000ms now at 2100ms is not (+5%).

Use this when you need to quickly understand why an application is behaving badly without manually calling many separate tools.

Args:

  • application (string|number): App name or numeric ID

  • durationInMins (number, optional): Lookback window in minutes (default: 60)

  • focus (string, optional): Narrow diagnosis to 'performance', 'errors', 'availability', or 'all' (default)

Returns: A structured diagnostic report with summary, causalityChain (ordered root→effect), tierMetrics, backendAnalysis, infrastructureInsights (all with baseline comparison), ranked root cause candidates, timeline, error breakdown, sample snapshots (with sqlQueries/httpCalls/errorStackTrace), and metric-aware investigation steps.

appd_get_metric_dataA

Query any metric from the AppDynamics metric tree.

This is a generic tool that can retrieve any metric — infrastructure (CPU, memory, disk), application performance, custom metrics, etc.

Use appd_browse_metric_tree to discover available metric paths first.

Custom metrics: Machine agent custom metrics are stored per-node, not aggregated at tier level. To query them, use rollup=false and a node-level path: 'Application Infrastructure Performance|{Tier}|Individual Nodes|{Node}|Custom Metrics|{MetricName}' Wildcard example: 'Application Infrastructure Performance||Individual Nodes||Custom Metrics|MyMetric' with rollup=false

Args:

  • application (string|number): App name or ID

  • metricPath (string): Full metric path (pipe-separated)

  • durationInMins (number, optional): Lookback in minutes (default: 60)

  • rollup (boolean, optional): Aggregate across entities (default: true). Set false for custom/per-node metrics.

Returns: Array of metric data objects with timestamps, min, max, avg, count, sum values.

appd_browse_metric_treeA

Browse the AppDynamics metric tree to discover available metric paths.

Call without metricPath to see top-level folders, then drill into specific folders by providing their path.

Common top-level folders:

  • Overall Application Performance

  • Application Infrastructure Performance

  • Business Transaction Performance

  • Backends

  • Errors

  • Service Endpoints

Custom metrics (submitted by machine agents) live under: 'Application Infrastructure Performance|{Tier}|Individual Nodes|{Node}|Custom Metrics' Use rollup=false when browsing node-level paths to ensure per-node data is returned.

Args:

  • application (string|number): App name or ID

  • metricPath (string, optional): Parent path to browse (omit for top-level)

  • rollup (boolean, optional): Aggregate across entities (default: true). Set false for node-level browsing.

Returns: Array of child metric nodes with name, type (folder or leaf), and full path.

appd_get_dashboardsA

List all custom dashboards in AppDynamics.

Returns dashboard summaries including id, name, creator, and timestamps. Use nameFilter to search for specific dashboards.

Args:

  • nameFilter (string, optional): Filter by dashboard name

Returns: Array of dashboard summaries.

appd_get_dashboardA

Get the full definition of a specific dashboard, including all widgets and their configurations.

This reveals what metrics and entities the dashboard monitors — useful for understanding what a team cares about, or for cloning/modifying dashboards.

Args:

  • dashboardId (number): Dashboard ID (from appd_get_dashboards)

Returns: Complete dashboard object with widgets, layout, and data source configuration.

appd_create_dashboardA

Create a new custom dashboard in AppDynamics.

You can create a blank dashboard and add widgets later using appd_add_widget_to_dashboard, or provide widgets upfront.

Widget types (use exact names):

  • "TIMESERIES_GRAPH": Time-series line/area chart (needs applicationId + metricPath)

  • "METRIC_VALUE": Single metric number display (needs applicationId + metricPath)

  • "HEALTH_LIST": Health rule status list (needs applicationId, entityType like 'POLICY')

  • "TEXT": Static text label or title (needs text)

  • "PIE": Pie chart (needs applicationId + metricPath)

  • "GAUGE": Gauge display (needs applicationId + metricPath)

Grid layout: width max is 12 (full row). Height is in grid units (2-4 typical). Use appd_browse_metric_tree to discover metric paths for widgets.

Args:

  • name (string): Dashboard name

  • description (string, optional): Description

  • height/width (number, optional): Canvas size (default: 768x1024)

  • widgets (array, optional): Widgets to place on the dashboard

  • template (boolean, optional): Create as template

Returns: The created dashboard object with its new ID.

appd_update_dashboardA

Update an existing dashboard's properties and/or widgets.

IMPORTANT: If you provide widgets, this REPLACES all existing widgets. To add a single widget without losing existing ones, use appd_add_widget_to_dashboard instead.

Args:

  • dashboardId (number): Dashboard ID

  • name (string, optional): New name

  • description (string, optional): New description

  • height/width (number, optional): New canvas size

  • widgets (array, optional): Complete widget set (replaces existing)

Returns: The updated dashboard object.

appd_add_widget_to_dashboardA

Add a single widget to an existing dashboard without replacing existing widgets.

This fetches the current dashboard, appends the new widget, and saves it.

Widget types (use exact names):

  • "TIMESERIES_GRAPH": Time-series chart (needs applicationId + metricPath)

  • "METRIC_VALUE": Single metric number (needs applicationId + metricPath)

  • "HEALTH_LIST": Health status list (needs applicationId + entityType)

  • "TEXT": Static text label (needs text)

Args:

  • dashboardId (number): Dashboard ID

  • widget: Widget object with type, title, height, width, x, y, and type-specific fields

Returns: The updated dashboard with the new widget added.

appd_clone_dashboardA

Clone an existing dashboard with a new name.

Creates an exact copy of the source dashboard (including all widgets) with the specified new name.

Args:

  • dashboardId (number): Source dashboard ID to clone

  • newName (string): Name for the cloned dashboard

Returns: The newly created dashboard with its new ID.

appd_delete_dashboardA

Delete a custom dashboard. This action is PERMANENT and cannot be undone.

Consider using appd_export_dashboard first to create a backup.

Args:

  • dashboardId (number): Dashboard ID to delete

Returns: Confirmation of deletion.

appd_auto_build_dashboardA

Automatically build a complete monitoring dashboard for an application.

Discovers the application's tiers, business transactions, and health rules, then creates a fully populated multi-section dashboard in AppDynamics.

Focus modes:

  • "comprehensive" (default): Overview + business transactions + infrastructure + health

  • "performance": Overview + business transactions

  • "infrastructure": Overview + tier-level graphs

  • "health": Overview + health status

Args:

  • applicationName (string): Application name or numeric ID

  • dashboardName (string, optional): Dashboard name. Defaults to "{AppName} - Auto Dashboard"

  • focus (string, optional): comprehensive | performance | infrastructure | health

  • timeRangeMinutes (number, optional): Time window in minutes. Default: 60

Returns: The created dashboard name and ID.

appd_export_dashboardA

Export a dashboard as a portable JSON definition.

The exported JSON can be used to recreate the dashboard in another controller or back it up.

Args:

  • dashboardId (number): Dashboard ID to export

Returns: Complete dashboard JSON definition suitable for import.

appd_import_dashboardA

Create a new dashboard from a JSON definition string.

Accepts the JSON output of appd_export_dashboard (or any saved dashboard JSON file) and creates a new dashboard from it. The original ID is always discarded — AppDynamics assigns a fresh one.

Typical workflow:

  1. appd_export_dashboard → save JSON to a file

  2. Edit the file if needed (rename, adjust metrics, etc.)

  3. appd_import_dashboard with the file contents → new dashboard created

Args:

  • dashboardJson (string): Full dashboard JSON (paste contents of an exported file)

  • dashboardName (string, optional): Override the name from the JSON

Returns: The newly created dashboard with its new ID.

appd_save_dashboard_fileA

Build a complete AppDynamics dashboard JSON definition and save it to a local file — without creating anything in AppDynamics yet.

The saved file can be:

  • Inspected or edited before importing

  • Version-controlled alongside your code

  • Imported with appd_import_dashboard at any time

The file format is identical to appd_export_dashboard output and is directly importable.

Widget types (use exact names):

  • "TIMESERIES_GRAPH": Time-series chart (needs applicationId + metricPath)

  • "METRIC_VALUE": Single metric number (needs applicationId + metricPath)

  • "HEALTH_LIST": Health status list (needs applicationId + entityType)

  • "TEXT": Static label or section heading (needs text)

  • "PIE": Pie chart (needs applicationId + metricPath)

  • "GAUGE": Gauge (needs applicationId + metricPath)

Grid layout: width max is 12 (full row). Height is in grid units (1–4 typical). Use appd_browse_metric_tree to discover metric paths.

Args:

  • name (string): Dashboard name

  • filePath (string, optional): Where to write the file. Default: ./dashboard-{name}.json

  • description (string, optional): Dashboard description

  • height/width (number, optional): Canvas size in pixels (default: 768×1024)

  • widgets (array, optional): Widget definitions

Returns: Absolute path of the saved file and a widget summary.

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/asafkiv/appdynamics-mcp-server'

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