MCP server for the Auvik network monitoring API. This server provides tools to interact with Auvik's network monitoring platform, allowing you to manage devices, networks, alerts, and more.
- Multi-tenant support - Works in both single-tenant and gateway modes
- Comprehensive API coverage - 25+ tools covering all major Auvik API endpoints
- Transport flexibility - Supports both HTTP and stdio transports
- Type-safe - Built with TypeScript and Zod validation
- Docker ready - Available as a containerized solution
auvik_status- Check server status and configurationauvik_navigate- Get navigation links to Auvik UI and documentation
auvik_tenants_list- List all accessible tenantsauvik_tenants_get- Get basic tenant informationauvik_tenants_detail- Get detailed tenant information
auvik_devices_list- List network devicesauvik_devices_get- Get basic device informationauvik_devices_get_details- Get detailed device informationauvik_devices_get_warranty- Get device warranty informationauvik_devices_get_lifecycle- Get device lifecycle information
auvik_networks_list- List discovered networksauvik_networks_get- Get network information
auvik_interfaces_list- List network interfaces
auvik_configurations_list- List device configurationsauvik_configurations_get- Get specific configuration
auvik_entities_list_notes- List entity notesauvik_entities_list_audits- List entity audit logs
auvik_alerts_list- List alert history. Scope to recent alerts withfilter_detectedTimeAfter/filter_detectedTimeBefore(ISO 8601); filter byfilter_status/filter_severity; paginate by cursor withpageSize+pageAfter(follow the returnednextPageAfter).sortis a best-effort passthrough.auvik_alerts_get- Get specific alertauvik_alerts_dismiss- Dismiss/acknowledge alert
auvik_statistics_device- Get device performance metricsauvik_statistics_interface- Get interface performance metricsauvik_statistics_service- Get service performance metricsauvik_statistics_snmp_poller- Get SNMP poller metrics
auvik_billing_client_usage- Get client billing usageauvik_billing_device_usage- Get device billing usage
auvik_raw_request- Make a raw request to any Auvik endpoint (methodGET/POST,path, optionalquery/body). Returns the unmodified JSON:API response. For endpoints or params the typed tools don't expose.
AUVIK_USERNAME=your_auvik_username
AUVIK_API_KEY=your_auvik_api_key
AUVIK_REGION=us1 # Optional: us1, us2, us3, us4, us5, us6, lnx, eu1, eu2, au1, ca1Credentials are provided via request headers:
x-auvik-usernamex-auvik-api-keyx-auvik-region(optional)
# Pull from GitHub Container Registry
docker pull ghcr.io/wyre-ai/auvik-mcp:latest
# Run with environment variables
docker run -d \
-p 8080:8080 \
-e AUVIK_USERNAME=your_username \
-e AUVIK_API_KEY=your_api_key \
-e AUVIK_REGION=us1 \
ghcr.io/wyre-ai/auvik-mcp:latestversion: '3.8'
services:
auvik-mcp:
image: ghcr.io/wyre-ai/auvik-mcp:latest
ports:
- "8080:8080"
environment:
- AUVIK_USERNAME=your_username
- AUVIK_API_KEY=your_api_key
- AUVIK_REGION=us1git clone https://github.com/WYRE-AI/auvik-mcp.git
cd auvik-mcp
npm install
npm run build
# Run with stdio transport
npm start
# Run with HTTP transport
npm run start:httpThe server is designed to work with WYRE's MCP Gateway. The gateway handles authentication and routing:
// Gateway automatically injects credentials via headers
const response = await fetch('http://gateway:8080/mcp', {
method: 'POST',
headers: {
'x-auvik-username': 'your_username',
'x-auvik-api-key': 'your_api_key',
'x-auvik-region': 'us1',
'content-type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'tools/call',
params: {
name: 'auvik_devices_list',
arguments: {}
}
})
});echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"auvik_status","arguments":{}}}' | npm startAuvik operates in multiple regions. Set the appropriate region:
us1- US East (default)us2- US Westus3- US Centralus4- US Southus5- United States (newer cluster)us6- US East (Ohio)lnx- US East (Ohio)eu1- Europe Westeu2- Europe Centralau1- Australiaca1- Canada
The server implements comprehensive error handling:
- Invalid credentials return 401 errors
- Missing resources return descriptive "not found" messages with
isError: true - API rate limits and service errors are properly mapped
- All responses include structured error information
The server exposes a health endpoint at /health that always returns 200 OK. This endpoint does not require authentication and is suitable for container health checks.
# Install dependencies
npm install
# Run in development mode with file watching
npm run dev
# Run tests
npm test
# Type checking
npm run typecheck
# Lint
npm run lint
# Build
npm run buildSee CONTRIBUTING.md for contribution guidelines.
Licensed under the Apache License 2.0. See LICENSE for details.