mcp-server

Vantaj uptime monitoring via MCP - manage monitors, heartbeats, incidents, and status pages.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
99%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,870Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (2.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://api.vantaj.co/mcp"
    }
  }
}

Remote endpoints

https://api.vantaj.co/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_projects(limit, cursor)

List all projects in the workspace. Call this first - most other tools need a project_id.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}
🟢list_monitors(project_id, limit, cursor)

List uptime monitors in a project, with current status, response time, and 24h uptime.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}
🟢get_monitor(id)

Get a single monitor by ID, including status, uptime, regions, and settings.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
🟡create_monitor(project_id, name, url, type, interval_seconds, ...)

Create a new uptime monitor. Checks start immediately. Types: http, tcp (host:port URL), smtp, ping, ssl, dns. Set inverted=true for exposure monitoring (alert when a target that should stay down becomes reachable).

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "url": {
      "type": "string",
      "description": "URL for http, host for ping/smtp, host:port for tcp"
    },
    "type": {
      "type": "string",
      "enum": [
        "http",
        "tcp",
        "smtp",
        "ping",
        "ssl",
        "dns"
      ],
      "description": "Check type"
    },
    "interval_seconds": {
      "type": "integer",
      "enum": [
        30,
        60,
        180,
        300,
        600,
        1800,
        3600,
        21600,
        86400
      ],
      "description": "Check interval (default 300)"
    },
    "regions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Probe regions (defaults to all)"
    },
    "group": {
      "type": "string",
      "description": "Optional group name"
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Request timeout in seconds (default 30)"
    },
    "expected_status_codes": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "HTTP status codes considered up (default: any 2xx)"
    },
    "inverted": {
      "type": "boolean",
      "description": "Exposure monitoring: up while unreachable, alert when reachable"
    }
  },
  "required": [
    "project_id",
    "name",
    "url",
    "type"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
🟡update_monitor(id, name, url, type, interval_seconds, ...)

Update a monitor's settings (name, url, interval, inverted, …). Cannot delete.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor ID"
    },
    "name": {
      "type": "string",
      "description": "New display name"
    },
    "url": {
      "type": "string",
      "description": "New target: URL for http, host for ping/smtp, host:port for tcp"
    },
    "type": {
      "type": "string",
      "enum": [
        "http",
        "tcp",
        "smtp",
        "ping",
        "ssl",
        "dns"
      ],
      "description": "New check type"
    },
    "interval_seconds": {
      "type": "integer",
      "enum": [
        30,
        60,
        180,
        300,
        600,
        1800,
        3600,
        21600,
        86400
      ],
      "description": "New check interval in seconds"
    },
    "regions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "New probe region list"
    },
    "group": {
      "type": "string",
      "description": "New group name"
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "New request timeout in seconds"
    },
    "expected_status_codes": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "HTTP status codes considered up"
    },
    "inverted": {
      "type": "boolean",
      "description": "Enable/disable exposure monitoring (alert when reachable)"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
⚪pause_monitor(id)

Pause a monitor - checks stop until it's resumed. Use before planned work on a single target.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
⚪resume_monitor(id)

Resume a paused monitor - checks start again immediately.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Monitor ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
🟡create_maintenance_window(project_id, title, description, starts_at, ends_at, ...)

Schedule a one-time maintenance window: the listed monitors keep running but their alerts are suppressed between starts_at and ends_at. Use before deploys or planned downtime.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "title": {
      "type": "string",
      "description": "Window title, e.g. 'Database migration'"
    },
    "description": {
      "type": "string",
      "description": "Optional details shown alongside the window"
    },
    "starts_at": {
      "type": "string",
      "description": "ISO 8601 datetime with offset, e.g. 2026-07-12T02:00:00Z"
    },
    "ends_at": {
      "type": "string",
      "description": "ISO 8601 datetime with offset - must be after starts_at"
    },
    "monitor_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Monitors whose alerts to suppress (from list_monitors)"
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone for display (default UTC)"
    }
  },
  "required": [
    "project_id",
    "title",
    "starts_at",
    "ends_at",
    "monitor_ids"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
🟢list_heartbeats(project_id, limit, cursor)

List heartbeat (cron/background job) monitors in a project, with last-ping status.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}
🟢list_incidents(project_id, limit, cursor)

List incidents (outages) in a project - open and resolved, with timestamps and duration.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}
🟢get_incident(id)

Get a single incident by ID.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Incident ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": true,
      "description": "The resource object"
    }
  },
  "required": [
    "data"
  ],
  "additionalProperties": false
}
🟢list_domains(project_id, limit, cursor)

List tracked domains with expiry dates, registrar, and days remaining.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}
🟢list_status_pages(project_id, limit, cursor)

List status pages with visibility, slug, and public URL.

Input Schema

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "string",
      "description": "Project ID (from list_projects)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Page size (default 25)"
    },
    "cursor": {
      "type": "string",
      "description": "Pagination cursor from a previous call"
    }
  },
  "required": [
    "project_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Result rows"
    },
    "pagination": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page; null when there are no more results"
        },
        "has_more": {
          "type": "boolean",
          "description": "Whether another page exists"
        }
      },
      "required": [
        "next_cursor",
        "has_more"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "data",
    "pagination"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools
verifiedversion not recorded13 tools