Skip to main content
Glama
README.md
# @apviso/mcp

MCP server for interacting with the [APVISO](https://apviso.com) AI-powered penetration testing platform from Claude Code, Cursor, Windsurf, Codex, and other MCP-compatible tools.

## Setup

### 1. Get your API key

Go to your [APVISO dashboard](https://apviso.com) → Settings → API Keys and create a new key.

### 2. Add to Claude Code

```bash
claude mcp add --transport stdio apviso \
  --env APVISO_API_KEY=apvk_your_key_here \
  -- npx -y @apviso/mcp
```

On Windows (not WSL):

```bash
claude mcp add --transport stdio apviso ^
  --env APVISO_API_KEY=apvk_your_key_here ^
  -- cmd /c npx -y @apviso/mcp
```

### Alternative: manual config

Add to your `.mcp.json` (project-scoped) or `~/.claude.json` (user-scoped):

```json
{
  "mcpServers": {
    "apviso": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@apviso/mcp"],
      "env": {
        "APVISO_API_KEY": "apvk_your_key_here"
      }
    }
  }
}
```

For team projects, use environment variable expansion in `.mcp.json` so each developer uses their own key:

```json
{
  "mcpServers": {
    "apviso": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@apviso/mcp"],
      "env": {
        "APVISO_API_KEY": "${APVISO_API_KEY}"
      }
    }
  }
}
```

### 3. Verify

Run `/mcp` inside Claude Code to check the server status.

## Configuration

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `APVISO_API_KEY` | Yes | — | Your API key (starts with `apvk_`) |
| `APVISO_API_URL` | No | `https://apviso.com/api` | API base URL |

## Tools

### Targets

| Tool | Description |
|------|-------------|
| `list_targets` | List all registered targets |
| `get_target` | Get target details |
| `create_target` | Register a new domain |
| `verify_target` | Verify domain ownership (DNS, file, or meta tag) |
| `get_verification_instructions` | Get verification steps for a target |
| `delete_target` | Remove a target |

### Scans

| Tool | Description |
|------|-------------|
| `list_scans` | List scans with optional status filter |
| `get_scan` | Get scan details and status |
| `create_scan` | Start a new penetration test (costs credits) |

### Findings

| Tool | Description |
|------|-------------|
| `list_findings` | List vulnerabilities for a scan |
| `update_finding_status` | Mark findings as fixed, accepted risk, etc. |

### Reports

| Tool | Description |
|------|-------------|
| `get_report` | Get the full pentest report as markdown |

### Schedules

| Tool | Description |
|------|-------------|
| `list_schedules` | List recurring scan schedules |
| `get_schedule` | Get schedule details |
| `create_schedule` | Set up recurring scans (Business/Enterprise) |
| `update_schedule` | Modify a schedule |
| `delete_schedule` | Remove a schedule |

### Quota

| Tool | Description |
|------|-------------|
| `get_quota` | Check remaining credits and billing period |

## License

MIT

TDQS

A3.9/5.0

Scored across 18 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools are organized around specific resources (scans, targets, schedules, findings, quota) and actions (create, get, list, update, delete, verify), making it easy for an agent to select the right one. For example, list_findings and get_report serve complementary but non-overlapping roles for accessing scan results.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as create_scan, get_report, list_targets, update_schedule, and delete_target. This predictability enhances readability and usability for agents, with no deviations or mixed conventions observed.

Tool Count5/5

With 18 tools, the server is well-scoped for its penetration testing domain, covering the full lifecycle from target registration and verification to scanning, reporting, and remediation tracking. Each tool earns its place by addressing a specific need without redundancy, making the count appropriate for the server's purpose.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for penetration testing. It includes target management (create, get, list, delete, verify), scan operations (create, get, list, schedule management), reporting (get_report, list_findings), quota checking, and finding status updates, with no obvious gaps that would hinder agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues