The Vigilbase MCP server gives AI assistants and agents the public security tools as MCP tools. It runs the same checks as the Agent API, with the same limits, and needs no account. Signed in, your scans spend your Vigilbase account's daily allowance (50 a day) instead of your network's (5 a day). The same server also covers Vigilbase One once you sign in; see Vigilbase MCP server.
| Topic | Details |
|---|---|
| Endpoint | https://mcp.vigilbase.com (public tools and Vigilbase One), or https://mcp.vigilbase.com/tools (public tools only, never asks you to sign in) |
| Transport | Streamable HTTP, stateless, JSON responses, POST only |
| Protocol | MCP 2026-07-28, 2025-11-25 and 2025-06-18 |
| Authentication | None for the public tools, or a developer API key in Authorization: Bearer <key> or X-Api-Key: <key>; OAuth sign-in for Vigilbase One tools |
| Server card | https://vigilbase.com/.well-known/mcp/server-card.json |
| Protected resource metadata | https://mcp.vigilbase.com/.well-known/oauth-protected-resource (and …/oauth-protected-resource/tools for /tools) |
Connect a client
Add a remote MCP server. In your MCP client, add a server with the URL
https://mcp.vigilbase.com, using the client's own instructions for remote (HTTP) servers. Usehttps://mcp.vigilbase.com/toolsinstead if the client should only ever have the public tools.Optionally, add a key. To raise the rate limit, set a custom header
Authorization: Bearer <api_key>with a key from API keys. Leave it out to use the free tier.Ask for a check. For example: "Grade the security headers of https://example.com".
The public tools never need a sign-in, so your client connects without opening a browser. On https://mcp.vigilbase.com the tool list also includes the Vigilbase One tools (search, execute, execute_write and execute_delete); calling one of them is what asks you to sign in. https://mcp.vigilbase.com/tools has no sign-in at all: it answers 401 only when you send a key that is not valid.
Tools
| Tool | Arguments | What it does |
|---|---|---|
list_security_tools | none | Returns the Agent API catalog, your tier, your current rate limits and scan quota, and your daily allowance |
run_security_headers | target: a URL or domain | Grades the URL's HTTP security headers; https:// is assumed when you leave out the scheme |
run_email_security | target: a domain | Grades the domain's SPF, DKIM and DMARC records |
get_security_badge | domain, optional style (default, compact or mini) | Returns the domain's security badge as SVG, its URL, the grade it shows and HTML to embed it |
search_docs | query, optional limit (1 to 20, default 10) | Searches these docs and returns matching pages, best first, with their paths and URLs |
get_docs_page | path, for example one/api | Returns one docs page as Markdown, with absolute links |
run_security_headers and run_email_security return the Agent API's response in structuredContent: grade, gradeScore out of 100 and the full scan result. See Run a check. get_security_badge returns grade: null when the badge shows ?. search_docs and get_docs_page return the Docs API's response; they ignore your key and have their own limit of 60 calls a minute per client IP.
Website Security, React2Shell and FortiBleed are not on this server, for the same reasons they are not on the Agent API.
Errors and limits
Agent API errors come back as tool results with isError: true, so your agent can read and act on them. The result carries the same problem fields as the Agent API, including code and, for 429 and 503, retryAfterSec. For example, a spent scan quota returns code: "rate_limit_exceeded".
The Agent API's rate limits and quotas apply to every tool call, counted per client IP or per key exactly as they are for direct API calls. On the root endpoint (https://mcp.vigilbase.com), a call made while you're signed in to Vigilbase counts against your account instead: 10 requests a minute and 50 scans a day per Vigilbase account, shared with your scans on vigilbase.com. The hourly per-target and per-IP scan quotas still apply. On top of them, the MCP endpoint accepts 120 requests a minute per client IP and answers 429 with Retry-After beyond that.
These problems end the whole MCP request instead of returning a tool result:
| Status | Cause |
|---|---|
401 | The key is invalid or expired, or the credential is not a developer API key. WWW-Authenticate points to the protected resource metadata. |
405 | A GET or DELETE; the server has no SSE stream or sessions |
413 | The request body is over 32 KiB |
415 | The Content-Type is not application/json |
429 | More than 120 requests a minute from one client IP |
Protocol
The server implements MCP 2026-07-28 over stateless Streamable HTTP. Each POST carries its own protocol version, client info and capabilities, and server/discover, tools/list and tools/call work without initialize or a session. Clients on 2025-06-18 or 2025-11-25 use the initialize handshake instead. The server answers it on every POST without a session ID, always with JSON, so later calls need no Mcp-Method header or _meta.
curl -sS https://mcp.vigilbase.com \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'mcp-protocol-version: 2026-07-28' \
-H 'mcp-method: tools/call' \
-H 'mcp-name: run_email_security' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientInfo":{"name":"curl","version":"1"},"io.modelcontextprotocol/clientCapabilities":{}},"name":"run_email_security","arguments":{"target":"example.com"}}}'
The protected resource metadata names the resource and its scopes (tools:read, tools:execute and badges:read) but no authorization server, because keys are created in Vigilbase One rather than issued by OAuth.
Discovery
The server is listed in the skills index as the mcp-server skill, in llms.txt, in the API catalog and in the AI catalog.