Configure a least-privileged API client
Plan the minimum Controller and Analytics Events permissions required by the MCP server.
Separate Controller and Events Service credentials
- Controller tools use an AppDynamics Controller API-client OAuth bearer. The API client inherits the Controller roles attached to it, and each Controller API applies its own access checks. The generated client secret is a password used to obtain a token; it is not itself an access token.
- Analytics Events tools use a separate Events Service URL, one Global Account Name, and an Events API key. A Controller bearer or Controller Analytics role does not authorize an Events query.
Licensing, feature enablement, and data retention are separate from access control. An empty response does not prove that access is configured correctly.
Minimum domain access
Required is the normal read permission. Conditional applies only to the named feature or cross-domain follow-up. Verify means the product does not publish a distinct read-only boundary, so test an assigned and unassigned entity before relying on it.
| Domain | Required minimum | Conditional access or verification |
|---|---|---|
| APM | Applications > View on each required application. This covers application, tier, node, business-transaction, metric, flowmap, snapshot, health-rule, violation, and alerting-policy reads. | Conditional: Dashboards > View for each custom dashboard. Cross-domain application inventory also needs the selected EUM and DBMon read grants. Metric-derived flowmaps do not need View Business Flow. |
| EUM | Applications > View on each required Browser RUM or Mobile RUM application. | Conditional: Synthetic entitlement and application visibility for Synthetic reads; an Events API key for Events-backed workflows; target APM View for APM enrichment or follow-up. |
| DBMon | Databases > View on each required database. The predefined DB Monitoring User is a broader alternative. | Conditional: Applications > View on the internal Database Monitoring application for learned-baseline enrichment; target APM View when an APM lookup or enrichment runs; SIM access only for a subsequent SIM call. VIEW_DBMON_UI alone does not grant data access. |
| SIM | Without Tag-Based Access Control (TBAC), View Server Visibility (VIEW_SIM). With TBAC, use a Standard or Dynamic server role scoped to the required infrastructure. | Conditional: Applications > View on the internal Server & Infrastructure Monitoring application for health-rule-violation and dynamic-metric reads; target APM View only for an APM follow-up. Verify: TBAC with assigned and unassigned machines, and remove broad legacy VIEW_SIM grants that can bypass tag scope. |
| Cluster | Without TBAC, View Server Visibility (VIEW_SIM); there is no separate Cluster permission. With TBAC, use infrastructure-scoped Standard or Dynamic roles. | Conditional: target APM View only for an APM follow-up. Verify: every enabled Cluster tool against assigned and unassigned infrastructure. Kubernetes permissions used by the Cluster Agent are separate from Controller API-client roles. |
| Analytics Events | A separate Events API key with Query access to every selected event type and its application or source scope. The local event-type catalog needs no upstream grant. | Grant only the applicable Transactions, Logs, Browser Requests, Mobile Requests, Synthetic Requests Permissions, Connected Devices Permissions, or Custom Analytics Events > Query Custom Events scope. |
| General | Applications > View on the relevant application for anomalies, RCA, alerting policies, and application-scoped events. The local domain guide needs no upstream grant. | Conditional: entity-appropriate VIEW_TAGS, dashboard View, or SIM visibility for tag tools; SIM visibility for infrastructure-tagged metrics; DBMon data read for DBMon event details. Verify: Controller entity-search and activity-event access because no separate named read action is published. |
Create the custom role and API client
Create a custom Controller role and API client with only the permissions required for MCP workflows.
Obtain a Controller access token
Generate a temporary Controller access token or request one by using OAuth client credentials.
Obtain an Analytics Events key
Create a query-only Analytics Events API key for live Analytics Events tools.
Validate access
Verify least-privileged access across every enabled domain before you share the API client.