# be1st.ai MCP server

Website audits straight from your AI assistant: technologies, SEO, security, performance, AI readiness and visibility in AI answers.

## Connecting

**URL:** `https://mcp.be1st.ai/mcp`

Authorization goes through OAuth, so there is no token to copy: on the first call your assistant redirects you to the be1st.ai sign-in.

### Claude Code

```bash
claude mcp add --transport http be1st https://mcp.be1st.ai/mcp
```

### Claude on the web and in the app

Settings → Connectors → Add custom connector, paste `https://mcp.be1st.ai/mcp` and confirm the sign-in.

### Codex

```bash
codex mcp add be1st --url https://mcp.be1st.ai/mcp
codex mcp login be1st
```

- The first command adds the server, the second opens the browser to sign in.
- Without the CLI: add `[mcp_servers.be1st]` with `url = "https://mcp.be1st.ai/mcp"` to `~/.codex/config.toml`.

### Cursor

File `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "be1st": {
      "url": "https://mcp.be1st.ai/mcp"
    }
  }
}
```

- Put the block into `.cursor/mcp.json` in the project or `~/.cursor/mcp.json` for every project.
- Cursor picks it up on its own and asks you to sign in on the first call.

### OpenCode

File `opencode.json`:

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "be1st": {
      "type": "remote",
      "url": "https://mcp.be1st.ai/mcp",
      "enabled": true
    }
  }
}
```

- Put the block into `opencode.json` in the project (or the global config).
- OpenCode detects OAuth on its own and signs you in on the first call.

### ChatGPT

- Settings → Connectors → Advanced → enable Developer mode.
- Create → name "be1st", MCP server URL `https://mcp.be1st.ai/mcp`, authentication OAuth.
- Sign in with your be1st.ai account and enable the connector in a chat via "+".

### OpenClaw

File `~/.openclaw/openclaw.json`:

```json
{
  "mcp": {
    "servers": {
      "be1st": {
        "url": "https://mcp.be1st.ai/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer b1_..."
        }
      }
    }
  }
}
```

- OpenClaw runs without a browser, so OAuth is not an option: use an API key.
- Create a key in the section below and replace `b1_...` with it.
- Merge the block into `mcp.servers` in `~/.openclaw/openclaw.json` and restart OpenClaw.

### Hermes Agent

File `~/.hermes/config.yaml`:

```yaml
mcp_servers:
  be1st:
    url: https://mcp.be1st.ai/mcp
    headers:
      Authorization: Bearer b1_...
    timeout: 180
```

- Hermes runs as a service without a browser: sign-in goes through an API key.
- Create a key in the section below and replace `b1_...` with it.
- Put the block under `mcp_servers:` in `~/.hermes/config.yaml` and restart Hermes.

### Any other client

The server speaks standard MCP (Streamable HTTP) with OAuth 2.1. Point your client at the URL above; a client that cannot do OAuth sends an API key in the header.

### Client without OAuth (API key)

Generate a `b1_...` key in the dashboard under MCP (`/en/dashboard/mcp`) and send it in the header of every request:

```http
Authorization: Bearer b1_...
```

The key is shown only once and is tied to your account: calls made with it show up in the MCP statistics in the dashboard.

## What it costs

MCP uses the same prices as the web app. Reading data is free, only a started audit spends credits. MCP is not tied to any plan: you have it from signup, with 20 free credits.

`get_limits` returns the current price list.

## Tools (23)

### Running audits

| Tool | Credits | Description |
|---|---|---|
| `run_audit` | 2-9 | Runs an audit for one or more domains. Asynchronous, typically 1-3 minutes. |
| `get_audit_status` | - | Status of specific audits. Poll this after starting one. |
| `list_audits` | - | The user's most recent audits. |
| `get_limits` | - | Credit balance, the price of each tool and per-batch caps. Call this before a larger batch of audits. |

### Results

| Tool | Credits | Description |
|---|---|---|
| `get_audit_summary` | - | Compact overview: one line per domain with scores, tech stack and the three biggest problems. |
| `get_site_issues` | - | One site's open issues from the latest run of each technical tool (SEO, security, performance, AI readiness) as a task list: problem, solution, priority. Adds outdated and vulnerable technology versions with a target version and the vulnerability list. Also says which tool has not run yet. |
| `get_audit_report` | - | The complete report as Markdown, the same document a user gets. |
| `get_screenshots` | - | Screenshots in WebP. Accepts domains or audit UUIDs. |
| `get_content` | - | Output of the AI SEO Content tool for one or more domains. |
| `get_visibility_gap` | - | Topics where the domain does not show up in AI answers. |
| `get_competitor_content` | - | A competitor's content map from its sitemap: sections, publishing pace, new URLs. |

### Sites, tags and collections

| Tool | Credits | Description |
|---|---|---|
| `search_sites` | - | Finds sites by part of a domain, topic, tags or collection. Paginated, an account may hold thousands of domains. |
| `get_site` | - | One site's full detail in a single call, including which language versions of the site were audited and which were not. |
| `list_tags` | - | All of the user's tags. |
| `tag_sites` | - | Bulk tag change on the listed sites. |
| `manage_tags` | - | Manage a tag across every site. |
| `list_collections` | - | The user's collections: id, name, type, member count. |
| `collect_sites` | - | Add or remove domains in a collection. |
| `manage_collections` | - | Manage a collection as a whole. |
| `get_collection_feed` | - | What is new on a collection's sites: URLs that appeared in their sitemaps. |

### Monitoring

| Tool | Credits | Description |
|---|---|---|
| `schedule_audits` | 2-9 | A recurring or one-off audit for several domains at once, optionally pinned to one language version of the site (language=en). Each run spends credits like a manual audit. |
| `list_schedules` | - | Scheduled audits: domain, language version, state, frequency and next run. |
| `update_schedules` | - | Bulk change of schedules: pause, resume, cancel, change frequency. |
