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