# MCP server > Connect an MCP client to mcp.vigilbase.com to grade headers and email security, fetch badges and search these docs, with no sign-in or key. Source: https://docs.vigilbase.com/tools/developers/mcp-server 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](https://docs.vigilbase.com/tools/developers/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](https://docs.vigilbase.com/one/mcp). | 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 ` or `X-Api-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 :::steps 1. **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. Use `https://mcp.vigilbase.com/tools` instead if the client should only ever have the public tools. 2. **Optionally, add a key.** To raise the rate limit, set a custom header `Authorization: Bearer ` with a key from [API keys](https://docs.vigilbase.com/tools/developers/api-keys). Leave it out to use the free tier. 3. **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](https://docs.vigilbase.com/tools/developers/badges) 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](https://docs.vigilbase.com/tools/developers/agent-api#run-a-check). `get_security_badge` returns `grade: null` when the badge shows `?`. `search_docs` and `get_docs_page` return the [Docs API](https://docs.vigilbase.com/tools/developers/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](https://docs.vigilbase.com/tools/developers/agent-api#errors) 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](https://docs.vigilbase.com/tools/developers/agent-api#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](https://modelcontextprotocol.io/specification/2026-07-28) over [stateless Streamable HTTP](https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/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`. ```bash 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](https://docs.vigilbase.com/tools/developers/agent-skills-and-discovery) as the `mcp-server` skill, in `llms.txt`, in the API catalog and in the AI catalog.