Skip to main content
Glama
WannaBeGeekster

internet-bs-mcp

README.md
# internet-bs-mcp

A [Model Context Protocol](https://modelcontextprotocol.io) server for the
**[Internet.bs](https://internet.bs) (InternetBS)** domain registrar API. Check
availability, register, renew, and manage domains and DNS from Claude or any MCP client.

> No affiliation with Internet.bs. Community-built. Use at your own risk.

## Features

| Tool | What it does | Cost |
|---|---|---|
| `domain_check` | Check availability + pricing | free |
| `domain_info` | Full details for a domain you own | free |
| `domain_list` | List domains in your account | free |
| `account_balance` | Prepaid balance (also verifies credentials) | free |
| `dns_record_list` | List DNS records | free |
| `domain_set_nameservers` | Set custom nameservers | free |
| `dns_record_add` / `dns_record_remove` | Manage DNS records | free |
| `domain_register` | Register a domain | **spends money** |
| `domain_renew` | Renew a domain | **spends money** |

### Safety by design
- **Credentials are sent in the request body, never in a URL** (keeps them out of logs).
- **Paid tools are gated.** `domain_register` and `domain_renew` do nothing and spend
  nothing unless you pass `confirm: true` — otherwise they return a dry-run preview.
- **Test mode.** Point at the InternetBS sandbox to build and verify without spending money.

## Install & configure

Requires Node.js 18+.

Set environment variables:

```bash
INTERNETBS_API_KEY=your_api_key
INTERNETBS_PASSWORD=your_api_password
# Optional: use the sandbox (https://testapi.internet.bs) instead of production
INTERNETBS_TEST_MODE=true
```

> Enable API access and (recommended) IP allowlisting in your Internet.bs account first.
> For the public sandbox, use `INTERNETBS_API_KEY=testapi` and `INTERNETBS_PASSWORD=testpass`.

### Add to Claude Code

```bash
claude mcp add internetbs \
  -e INTERNETBS_API_KEY=your_key \
  -e INTERNETBS_PASSWORD=your_password \
  -- npx -y internet-bs-mcp
```

### Add to Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "internetbs": {
      "command": "npx",
      "args": ["-y", "internet-bs-mcp"],
      "env": {
        "INTERNETBS_API_KEY": "your_key",
        "INTERNETBS_PASSWORD": "your_password"
      }
    }
  }
}
```

## Registering a domain

`domain_register` requires a full `contact` when `confirm: true` — it's applied to the
registrant, admin, technical, and billing roles that InternetBS requires:

```json
{
  "domain": "example.com",
  "period": "1Y",
  "confirm": true,
  "contact": {
    "firstName": "Jane", "lastName": "Doe",
    "email": "jane@example.com", "phoneNumber": "+1.7065550100",
    "street": "123 Main St", "city": "Augusta",
    "postalCode": "30901", "countryCode": "US"
  }
}
```

## Develop

```bash
npm install
npm run build
node test/probe.mjs   # boots the server against the sandbox and exercises tools
```

## License

MIT