@dearvetri/appdynamics-mcp-server
v1.0.0
Published
MCP Server for AppDynamics REST API integration
Downloads
30
Maintainers
Readme
AppDynamics MCP Server
A Model Context Protocol (MCP) server for integrating AppDynamics with Claude Code. This allows you to query AppDynamics data directly from Claude Code for debugging production issues, analyzing metrics, and investigating errors.
Features
- Query applications, nodes, tiers, and backends
- Fetch metrics and performance data
- Get health rule violations and alerts
- Retrieve transaction snapshots and error details
- Support for both Production and Non-Production environments
Prerequisites
- Node.js 18 or higher
- AppDynamics account with API access
- Claude Code (or any MCP-compatible client)
Installation
- Install dependencies:
cd appdynamics-mcp-server
npm install- Build the TypeScript code:
npm run build- Configuration is already set up at
~/.appdynamics-mcp/config.json
Configuration
Your configuration file is located at ~/.appdynamics-mcp/config.json and contains credentials for both production and non-production environments.
Security Note: Never commit this file to version control. The config directory is in your home folder and should have restricted permissions.
Adding to Claude Code
Add this server to your Claude Code configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"appdynamics": {
"command": "node",
"args": [
"/Users/vkrishnaraj/work/projects/appdynamicsclaude/appdynamics-mcp-server/dist/index.js"
]
}
}
}After adding the configuration, restart Claude Code.
Available Tools
1. list_applications
List all applications in the specified environment.
Parameters:
environment(required): "prod" or "nonprod"
Example:
Can you list all applications in production?2. get_application
Get details for a specific application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the application
Example:
Get details for the "lftracingservice" application in production3. get_metrics
Get metrics for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the applicationmetricPath(required): Metric path (e.g., "Overall Application Performance|*")durationInMins(optional): Duration in minutes (default: 60)
Example:
Get performance metrics for lftracingservice in production for the last 2 hours4. get_business_transactions
Get business transactions for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the application
Example:
Show me business transactions for the agentservice application in prod5. get_health_rule_violations
Get health rule violations for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the applicationdurationInMins(optional): Duration in minutes (default: 60)
Example:
Are there any health rule violations for lftracingservice in production in the last hour?6. get_snapshots
Get transaction snapshots for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the applicationdurationInMins(optional): Duration in minutes (default: 60)
Example:
Get transaction snapshots for fraudsvc in production from the last 30 minutes7. get_error_snapshots
Get error snapshots for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the applicationdurationInMins(optional): Duration in minutes (default: 60)
Example:
Show me errors in the lftracingservice application in production8. get_nodes
Get nodes for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the application
Example:
What nodes are running for production-compliance in prod?9. get_tiers
Get tiers for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the application
Example:
Show me tiers for the lftracingservice application10. get_backends
Get backends for an application.
Parameters:
environment(required): "prod" or "nonprod"applicationName(required): Name of the application
Example:
What backends does the agentservice application connect to?Usage Examples
Once configured in Claude Code, you can ask natural language questions like:
- "Show me all applications in production"
- "What errors occurred in lftracingservice in the last hour?"
- "Get health rule violations for fraudsvc in nonprod"
- "Show me slow transactions for production-compliance"
- "What's the response time for lftracingservice in the last 2 hours?"
Troubleshooting
Server not connecting
- Check that the build completed successfully:
npm run build - Verify the path in your Claude Code config matches your actual installation path
- Check that config.json exists and has the correct credentials
Authentication errors
- Verify credentials in
~/.appdynamics-mcp/config.json - Test credentials by making a direct API call:
curl -u "nettracer@nettracer:garaz19xw0qr" \
"https://nettracer.saas.appdynamics.com:443/controller/rest/applications?output=JSON"No data returned
- Verify the application name is correct (case-sensitive)
- Check the time range - increase
durationInMinsif needed - Ensure the application exists in the specified environment
Development
To make changes to the server:
- Edit files in
src/ - Rebuild:
npm run build - Restart Claude Code
For continuous development:
npm run watchSecurity
- Configuration file contains sensitive credentials
- Keep
~/.appdynamics-mcp/config.jsonsecure with appropriate file permissions - Never commit credentials to version control
- Consider using environment variables or secret management for production use
License
MIT
