Auvik

io.github.wyre-technology由 GitHub 账号 wyre-technology 发布v1.4.2更新于 Oct 24, 2026

MCP server for the Auvik network monitoring API — devices, alerts, statistics, billing.

概览

AI 生成的概览

面向 Auvik 网络监控 API 的 MCP 服务器,让助手查看租户、设备、网络、告警、统计和计费数据。

可以做什么
列出并查看租户、设备、网络、接口和设备配置,包括保修与生命周期信息以及实体备注和审计日志。按时间、状态和严重程度筛选查看告警历史,获取单条告警,并关闭或确认告警。获取设备、接口、服务和 SNMP 轮询器的性能统计。读取客户端和设备计费用量。在类型化工具未覆盖时,向任意 Auvik 端点发送原始 GET 或 POST 请求。
适用场景
适合需要让助手回答 Auvik 中受管网络的问题时使用,例如设备清单、告警排查、性能指标或用量计费,无需切换到 Auvik 门户。
运行要求
以本地 stdio 进程运行,或以提供的容器镜像通过 HTTP 运行。需要 Auvik 用户名(AUVIK_USERNAME)和在 Auvik 门户生成的 API 密钥(AUVIK_API_KEY),以及区域主机(AUVIK_REGION,省略时自动探测)。HTTP 模式需要 CONDUIT_S2S_SECRET;网关模式要求请求头 x-auvik-username 和 x-auvik-api-key 携带凭据。
安装前请注意
需要 Auvik API 密钥和用户名,可访问该租户的网络数据。关闭告警工具会改变 Auvik 中的告警状态。原始请求工具可向任意端点发送 POST 调用,因此可能产生类型化工具之外的写入。HTTP 模式下应保护 CONDUIT_S2S_SECRET,且不要在当地开发之外使用 MCP_ALLOW_INSECURE_DEV。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Auvik,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Auvik MCP Server

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.

Features

  • 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

Tools Available

Status and Navigation

  • auvik_status - Check server status and configuration
  • auvik_navigate - Get navigation links to Auvik UI and documentation

Tenants

  • auvik_tenants_list - List all accessible tenants
  • auvik_tenants_get - Get basic tenant information
  • auvik_tenants_detail - Get detailed tenant information

Devices

  • auvik_devices_list - List network devices
  • auvik_devices_get - Get basic device information
  • auvik_devices_get_details - Get detailed device information
  • auvik_devices_get_warranty - Get device warranty information
  • auvik_devices_get_lifecycle - Get device lifecycle information

Networks

  • auvik_networks_list - List discovered networks
  • auvik_networks_get - Get network information

Interfaces

  • auvik_interfaces_list - List network interfaces

Configurations

  • auvik_configurations_list - List device configurations
  • auvik_configurations_get - Get specific configuration

Entities

  • auvik_entities_list_notes - List entity notes
  • auvik_entities_list_audits - List entity audit logs

Alerts

  • auvik_alerts_list - List alert history. Scope to recent alerts with filter_detectedTimeAfter/filter_detectedTimeBefore (ISO 8601); filter by filter_status/filter_severity; paginate by cursor with pageSize + pageAfter (follow the returned nextPageAfter). sort is a best-effort passthrough.
  • auvik_alerts_get - Get specific alert
  • auvik_alerts_dismiss - Dismiss/acknowledge alert

Statistics

  • auvik_statistics_device - Get device performance metrics
  • auvik_statistics_interface - Get interface performance metrics
  • auvik_statistics_service - Get service performance metrics
  • auvik_statistics_snmp_poller - Get SNMP poller metrics

Billing

  • auvik_billing_client_usage - Get client billing usage
  • auvik_billing_device_usage - Get device billing usage

Raw

  • auvik_raw_request - Make a raw request to any Auvik endpoint (method GET/POST, path, optional query/body). Returns the unmodified JSON:API response. For endpoints or params the typed tools don't expose.

Installation

Environment Variables

Single-tenant mode (stdio/direct):
bash
AUVIK_USERNAME=your_auvik_usernameAUVIK_API_KEY=your_auvik_api_keyAUVIK_REGION=us1  # Optional: us1, us2, us3, us4, us5, us6, lnx, eu1, eu2, au1, ca1

The stdio transport reads those variables and is not affected by HTTP service-to-service auth.

HTTP transport:

CONDUIT_S2S_SECRET is required. If it is empty, the HTTP server logs an error and exits non-zero. It never prints the secret. Set MCP_ALLOW_INSECURE_DEV=1 only for local development to start without the secret; the process logs a loud warning, does not check X-Gateway-S2S, and binds 127.0.0.1 only. A non-loopback MCP_HTTP_HOST (including 0.0.0.0) is ignored in that mode and the override is logged.

MCP_HTTP_HOST defaults to 127.0.0.1 when unset. Set 0.0.0.0 only when CONDUIT_S2S_SECRET is set. The container image does that and sets AUTH_MODE=gateway.

Gateway mode (AUTH_MODE=gateway):

Every /mcp request must include:

  • x-auvik-username
  • x-auvik-api-key
  • x-auvik-region (optional)

A request missing the username or API key gets 401 and does not fall back to AUVIK_USERNAME / AUVIK_API_KEY in the process environment. When CONDUIT_S2S_SECRET is set, the request must also include a valid X-Gateway-S2S header.

Single-tenant HTTP (AUTH_MODE=env):

/mcp still requires a valid X-Gateway-S2S header. Vendor credentials come from the AUVIK_* environment variables when the request does not carry x-auvik-username and x-auvik-api-key.

Docker

bash
# Pull from GitHub Container Registrydocker pull ghcr.io/wyre-ai/auvik-mcp:latest
# Run with the gateway S2S secret. The image sets AUTH_MODE=gateway and# MCP_HTTP_HOST=0.0.0.0; publish the port on loopback unless a proxy sits in front.docker run -d \  -p 127.0.0.1:8080:8080 \  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \  ghcr.io/wyre-ai/auvik-mcp:latest

Docker Compose

The checked-in Compose service is gateway mode. It does not set AUVIK_USERNAME or AUVIK_API_KEY and does not use env_file, so a project .env cannot inject static vendor credentials into the container. Compose still interpolates CONDUIT_S2S_SECRET and AUVIK_REGION from that file.

yaml
version: '3.8'services:  auvik-mcp:    image: ghcr.io/wyre-ai/auvik-mcp:latest    ports:      - "127.0.0.1:8080:8080"    environment:      - AUTH_MODE=gateway      - AUVIK_REGION=${AUVIK_REGION:-us1}      - CONDUIT_S2S_SECRET=${CONDUIT_S2S_SECRET:?set CONDUIT_S2S_SECRET}      - MCP_HTTP_HOST=0.0.0.0
Single-tenant HTTP (AUTH_MODE=env) in Docker

Use this only for one tenant whose credentials live in the process environment. It is separate from the gateway Compose service above.

yaml
services:  auvik-mcp:    image: ghcr.io/wyre-ai/auvik-mcp:latest    ports:      - "127.0.0.1:8080:8080"    environment:      - AUTH_MODE=env      - AUVIK_USERNAME=${AUVIK_USERNAME:?set AUVIK_USERNAME}      - AUVIK_API_KEY=${AUVIK_API_KEY:?set AUVIK_API_KEY}      - AUVIK_REGION=${AUVIK_REGION:-us1}      - CONDUIT_S2S_SECRET=${CONDUIT_S2S_SECRET:?set CONDUIT_S2S_SECRET}      - MCP_HTTP_HOST=0.0.0.0

Local Development

bash
git clone https://github.com/WYRE-AI/auvik-mcp.gitcd auvik-mcpnpm installnpm run build
# Run with stdio transportnpm start
# Run with HTTP transport (refuses to start until CONDUIT_S2S_SECRET is set)CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" npm run start:http
# Local HTTP only, without a service-to-service secret (always binds 127.0.0.1)MCP_ALLOW_INSECURE_DEV=1 npm run start:http

Usage

With MCP Gateway

The server is designed to work with WYRE's MCP Gateway. The gateway handles authentication and routing:

typescript
// Gateway automatically injects credentials and the X-Gateway-S2S proofconst response = await fetch('http://gateway:8080/mcp', {  method: 'POST',  headers: {    'x-gateway-s2s': '<proof signed with CONDUIT_S2S_SECRET>',    '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: {}    }  })});

Direct Usage (stdio)

bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"auvik_status","arguments":{}}}' | npm start

API Regions

Auvik operates in multiple regions. Set the appropriate region:

  • us1 - US East (default)
  • us2 - US West
  • us3 - US Central
  • us4 - US South
  • us5 - United States (newer cluster)
  • us6 - US East (Ohio)
  • lnx - US East (Ohio)
  • eu1 - Europe West
  • eu2 - Europe Central
  • au1 - Australia
  • ca1 - Canada

Error Handling

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

Health Check

The server exposes a health endpoint at /health that always returns 200 OK. This endpoint does not require authentication, does not read vendor credentials, and is suitable for container health checks.

Development

bash
# Install dependenciesnpm install
# Run in development mode with file watchingnpm run dev
# Run testsnpm test
# Type checkingnpm run typecheck
# Lintnpm run lint
# Buildnpm run build

Contributing

See CONTRIBUTING.md for contribution guidelines.

License

Licensed under the Apache License 2.0. See LICENSE for details.

Support

来源:README.md,提交 c16176b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.4.2最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。