Back to the catalog

Domain Monitor

Query domain expiration data from domain-monitor.io via AI assistants like Claude.

Open source Open in the app JSON README (API)

About

Query domain expiration data from domain-monitor.io via AI assistants like Claude.

Details

Kind
MCP servers
Topic
No topic detected
Publisher
jasoncbraatz
Origin
official
Category
ferramentas
Transport
local
Version
0.1.1
Stars
1
Last push
2026-06-12T09:22:05Z
Repository state
ativo
Language
Python
Added
2026-08-29 04:00:14
Updated
2026-08-29 04:00:14
Origin id
io.github.jasoncbraatz/domain-monitor-mcp

README

# domain-monitor-mcp

An unofficial MCP (Model Context Protocol) server for [domain-monitor.io](https://domain-monitor.io), enabling AI assistants like Claude to query your domain expiration data directly — no browser required.

> **Note**: This is a community project, not officially supported by domain-monitor.io. It uses the internal API discovered by inspecting browser network traffic. If you're the domain-monitor.io developer and would like to collaborate on an official MCP server or public API, please open an issue — we'd love to work with you!

---

## What it does

Once installed, you can ask Claude things like:

- *"Any domains expiring in the next 30 days?"*
- *"When does braatz.io expire?"*
- *"Give me a domain health overview"*
- *"List all my domains sorted by expiry date"*
- *"Add newdomain.com to domain monitor with a 60-day alert"*

No more digging through emails that landed in spam or SMS alerts that got filtered. Just ask.

---

## Tools provided

| Tool | Description |
|------|-------------|
| `domain_monitor_get_expiring_soon` | Quick check — domains expiring within your alert window |
| `domain_monitor_list_domains` | Full paginated list with optional filter by days-until-expiry |
| `domain_monitor_check_domain` | Look up a specific domain by name |
| `domain_monitor_get_account_summary` | Account stats, subscription status, and active alerts |
| `domain_monitor_add_domain` | Add a new domain to monitoring with configurable alert period and monitoring toggles |

---

## Installation

### Prerequisites

- Python 3.10+
- A [domain-monitor.io](https://domain-monitor.io) account (free or paid)
- Claude Desktop (or any MCP-compatible client)

### 1. Clone this repo

```bash
git clone https://github.com/jasoncbraatz/domain-monitor-mcp.git
cd domain-monitor-mcp
```

### 2. Install dependencies

```bash
pip install -r requirements.txt
```

Or with uv (faster):

```bash
uv pip install -r requirements.txt
```

### 3. Configure Claude Desktop

Add the following to your Claude Desktop config file:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "domain-monitor": {
      "command": "python",
      "args": ["/absolute/path/to/domain-monitor-mcp/server.py"],
      "env": {
        "DOMAIN_MONITOR_EMAIL": "your@email.com",
        "DOMAIN_MONITOR_PASSWORD": "yourpassword"
      }
    }
  }
}
```

> Replace `/absolute/path/to/domain-monitor-mcp/server.py` with the actual path where you cloned this repo.

### 4. Restart Claude Desktop

After saving the config, fully quit and relaunch Claude Desktop. The `domain-monitor` tools will appear in Claude's tool list.

---

## Authentication

This server authenticates using your domain-monitor.io email and password via Laravel Sanctum session auth — the same mechanism the website uses under the hood. Sessions are maintained in memory and automatically refreshed if they expire.

**Your credentials are never stored to disk** — they live only in the environment variables you configure above, and only in memory while the server is running.

---

## How it works (for the curious / developers)

domain-monitor.io is a Nuxt.js SPA backed by a Laravel API. The API lives at `https://api.domain-monitor.io/`. Authentication follows the standard Laravel Sanctum CSRF + session cookie flow:

1. `GET https://api.domain-monitor.io/sanctum/csrf-cookie` → sets `XSRF-TOKEN` + `domain_monitor_session` cookies
2. `POST https://api.domain-monitor.io/login` with `{email, password}` + `X-XSRF-TOKEN` header → authenticates
3. Subsequent requests to `https://api.domain-monitor.io/api/*` use the session cookies + refreshed XSRF token

Key endpoints used:
- `GET /api/account` — account info + user ID
- `GET /api/account-dashboard` — summary with expiring domains and alerts
- `GET /api/account/{user_id}/domains` — paginated domain list with expiry data
- `POST /api/account/{user_id}/domains` — add a new domain to monitoring

The POST payload for adding a domain requires these fields:
```json
{
  "domain": "example.com",
  "alert_period": 30,
  "certificate_checks_enabled": true,
  "dns_checks_enabled": true,
  "blacklist_checks_enabled": false
}
```

The API rate limit is 200 requests per session (observed from `x-ratelimit-limit` response headers).

---

## Contributing

PRs welcome! Some ideas for future improvements:

- Support for uptime monitor queries
- Webhook/notification preference management
- Support for the domain availability checker
- Delete domain from monitoring (intentionally omitted — destructive actions should go through the web UI)

If you're the domain-monitor.io developer and want to add official API token support, this project would love to adopt it — just open an issue!

---

## Troubleshooting

See [OPS.md](OPS.md) for detailed troubleshooting, reinstallation steps, and architecture notes.

---

## Disclaimer

This project is not affiliated with, endorsed by, or officially supported by domain-monitor.io. It was built by reverse-engineering the browser network traffic. Use at your own risk. The API may change without notice.

## License

MIT - Jason C Braatz

More