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
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues