# Backwatch

Your MCP server, watched. Check your live MCP server from outside, the way ChatGPT, Claude and Cursor reach it. One command, nothing to install. Every failure comes with a fix prompt for Claude Code, Codex or Cursor.

```sh
npx backwatch your-site.com
```

## Agents fail quietly

A broken sign-in never reaches your logs, so your dashboards stay green. Tests run before you ship. Hosts change after. Backwatch checks from the side your users are on.

## Four questions agents ask

Checked from outside, the way an agent meets your site. Nothing to install on your server, and no account.

- **Readability: can agents read you?** llms.txt and its size budget, Markdown negotiation, Markdown for real pages rather than a false 404, and content that loads without JavaScript.
- **Discoverability: can agents find your server?** `/.well-known` MCP discovery and server cards, API catalogues, and whether your proxy blocks dot-paths.
- **Connectability: can agents sign in and call tools?** The MCP sign-in chain every host follows: the `401` challenge, protected-resource and authorization-server metadata, PKCE and client registration. With `--register`, on your own server, it proves each host's callback can register.
- **Presence: are you listed where agents look?** Whether your MCP server is listed in the official MCP Registry.

Each pillar gets PASS (90 or more), WARN (60 to 89), FAIL (below 60) or UNKNOWN (fewer than half the checks that apply could be resolved; no score is shown). The overall score uses only pillars with a verdict.

## 1 in 9 MCP servers that use sign-in break before a login page

We checked a random 1,000 servers from the official MCP Registry on 3 November 2026. Of those that use sign-in, 11% fail before a user ever sees a login page. Most often it is the first step: a `401` that gives the host no way to find the authorization server.

## Fail the deploy that breaks sign-in

Run it in CI. The first run writes a baseline. After that, the job fails only when a check gets worse.

```yaml
- uses: backwatch/backwatch@v0
  with:
    url: your-site.com
    baseline: .backwatch.json
```

Or from any shell: `npx backwatch your-site.com --ci --baseline .backwatch.json --badge backwatch.svg`.

## Watching every day is coming

The hosted monitor will run these checks on a schedule and tell you when one breaks, and whether it was your deploy or the host. Join the waitlist on [backwatch.dev](https://backwatch.dev/#waitlist) and we'll tell you when it's ready.

Planned: a free plan, and paid plans from $149 a month.

## Planned pricing

Free to run. Paid to watch. These are the plans we intend to launch the hosted monitor with. Nothing is on sale yet.

- **Free, $0:** every check weekly, 1 server and 1 site, email alerts, 7 days of history.
- **Team, $149 a month:** every check daily, Slack alerts, 1 signed-in tool flow, 5 members (viewers free), 90 days of history.
- **Business, $399 a month:** every check hourly, PagerDuty and webhooks, 5 signed-in tool flows, 20 members (viewers free), 1 year of history.

Annual billing saves about two months. Enterprise plans with multi-region checks and SSO come later.

## What it does not do

- It sends no credentials and never calls your tools. It registers OAuth clients only when you ask, on your own server, and lists each one it created.
- With `--sign-in`, you log in yourself in your own browser. No password passes through Backwatch.
- It sends no telemetry. Every request declares the Backwatch User-Agent: see [the bot page](https://backwatch.dev/bot.md).
- It never guesses. A check it could not resolve is shown as unresolved and left out of the score.

Source: https://github.com/backwatch/backwatch (MIT).
