Developers → MCP

MCP server for your AI

NameOcean runs a remote MCP server at one URL. Connect your AI client once and it can manage your DNS, SSL, app servers, email and webhooks with 64 tools. You sign in in the browser: no key to paste, nothing to install.

https://nameocean.net/mcp

Connect your client

Claude Code

Claude Code
$ claude mcp add --transport http nameocean https://nameocean.net/mcp

Then run /mcp in Claude Code and choose nameocean to sign in.

Claude Desktop and claude.ai

Settings → Connectors → Add custom connector. Name it NameOcean and use the URL https://nameocean.net/mcp. Claude opens the NameOcean sign-in page the first time.

Cursor

~/.cursor/mcp.json
{
  "mcpServers": {
    "nameocean": {"url": "https://nameocean.net/mcp"}
  }
}

VS Code

.vscode/mcp.json
{
  "servers": {
    "nameocean": {"type": "http", "url": "https://nameocean.net/mcp"}
  }
}

OpenCode

~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nameocean": {"type": "remote", "url": "https://nameocean.net/mcp", "enabled": true}
  }
}

With the CLI

nameocean mcp install finds Claude Code, Cursor and OpenCode on your computer and adds the server to each. Install the CLI.

Clients without browser sign-in

Send an API key in a header: Authorization: Bearer no_live_…. The tools then have exactly the key's scopes, so a key with only dns:read can look but not change.

What to ask

  • "Point blog.example.com to 203.0.113.10 and turn on SSL."
  • "Set up email for example.com: a mailbox for hello@, forward sales@ to my Gmail, and check the DNS."
  • "Deploy this project to my server and show me the logs if it does not come up."
  • "Move every record of example.com to the new server IP. Show me the plan first."
  • "Send a webhook to https://example.com/hooks when a domain is about to expire."

What your AI can and cannot do

  • It cannot register or renew a domain or add credit. It checks availability and price, and sends you to nameocean.net/domains to buy.
  • Creating an app server is billed monthly, so it takes two calls: the first returns the price for the AI to show you, the second runs only with your yes. A scoped API key also needs billing:write for it.
  • Mailbox passwords and env variable values never reach the model; you read them in the dashboard.
  • Tools that delete, stop or overwrite are marked as destructive, so clients that confirm such tools ask you first.
  • Everything it changes is in Dashboard → Activity, with the app that did it. Disconnect an app any time in Dashboard → Connected apps.
  • App connections and API keys need two-step login on your account.

Tools

The descriptions are what your AI reads, so they are in English. read only reads · write changes something · destructive deletes, stops or overwrites

Account and domains

get_account
read
Your email, account credit (USD) and how many domains and DNS zones you have.
check_domain
read
Is a domain available to register, and its register/renew price in USD. Registering is done by the user in the dashboard.
list_activity
read
The account's activity log, newest first: changes made through the API, the CLI and MCP (by which key or app), refused calls, and API key and app changes. Use it to show the user what was done.
list_domains
read
Domains registered in your account with expiry, auto-renew and nameservers.
get_domain
read
One domain: nameservers, lock, auto-renew and SSL status.
update_domain
write
Turn auto-renew or the transfer lock on or off.
set_nameservers
destructive
Change a domain's nameservers. Pass 2-4 hostnames, or ["nameocean"] to go back to NameOcean DNS. Moving away from NameOcean DNS stops DNS records, server bindings and email from working.

DNS

list_dns_zones
read
DNS zones hosted on NameOcean DNS.
create_dns_zone
write
Host a domain's DNS on NameOcean (free).
list_dns_records
read
All records of a DNS zone with their type and id.
add_dns_record
write
Add a DNS record. Fields by type: A {hostname, ip}, CNAME {hostname, target}, MX {hostname, priority, target}, TXT {hostname, text}, SRV {hostname, priority, weight, port, target}, PTR {hostname, target}, REDIRECT {hostname, target URL, save_path}. Changes reach the nameservers within seconds.
update_dns_record
write
Change fields of an existing record (find its type and id with list_dns_records).
delete_dns_record
destructive
Delete a DNS record by type and id.
export_dns_zone
read
The zone as a DNS-as-code file (JSON, records in {name, type, value, ttl} form), without ids. Start from this to change many records at once with plan_dns_zone / apply_dns_zone.
plan_dns_zone
read
Compare a full list of records with the zone and show what apply_dns_zone would create, change and delete. Changes nothing. Show the plan to the user before applying it.
apply_dns_zone
destructive
Make the zone match a full list of records, in one transaction (nothing changes when one record is refused). Run plan_dns_zone first, get the user's OK for its deletes, and pass its serial so a zone changed in between is refused.

SSL

get_ssl
read
SSL certificate status of a zone and its download link.
issue_ssl
write
Issue a free wildcard Let's Encrypt certificate for a zone on NameOcean DNS.

App servers

list_servers
read
Your app servers with SSH command, git remote, open ports and bound domains.
get_server
read
One app server in detail.
open_port
write
Open a port on a server. 80 (behind HTTPS on 443) and SSH are open already; NameOcean assigns the external port.
close_port
destructive
Close an open port by its id (see get_server).
bind_domain
write
Serve a domain or subdomain from a server over HTTPS. The domain must use NameOcean DNS; DNS records and the certificate are set up automatically.
unbind_domain
destructive
Stop serving a domain from a server, by binding id (see get_server).
list_server_plans
read
App server plans you can create: CPU, memory, disk and monthly price (USD).
create_server
write
Create an app server; it is billed monthly. First call without confirm to get the price, show it to the user, and call again with confirm: true only after they agree.
start_server
write
Start a stopped server.
stop_server
destructive
Stop a server (its sites go down; billing continues). Ask the user first.
restart_server
destructive
Reboot a server (a short outage). Ask the user first.
list_backups
read
A server's backups (free, nightly and manual; the last 7 days, at most 7).
backup_server
write
Start a backup of a server now.
restore_backup
destructive
Replace EVERYTHING on a server with one of its backups. Can't be undone: get the user's explicit OK for this backup first.
list_apps
read
Supervisor programs on an app server and whether they run.
restart_apps
write
Restart every app (supervisor) on a server and reload nginx, e.g. after changing config.
read_logs
read
The last lines of an app's output (a supervisor program), or nginx / nginx-access.
list_env
read
Names of a server's env variables (values are secrets and are not shown here).
set_env
write
Set or remove env variables every app on the server gets, then restart the apps.
add_ssh_key
write
Let a public SSH key log in to a server as root (needed for git push from a new machine).
list_deploys
read
The commit a server runs now and its recent deploys.
finish_deploy
write
After `git push` to the server's git remote: check the commit arrived, restart the apps, reload nginx and record the deploy. Returns each app's state and the output.
get_deploy_guide
read
How to deploy code to a server: git remote, SSH, layout, ports and supervisor examples.

Email

list_email_domains
read
Domains with paid NameOcean email hosting: plan, storage, mailbox count, expiry.
get_email_domain
read
A mail domain's mailboxes, aliases, mailing lists and the IMAP/SMTP settings for mail apps.
check_email_dns
read
Look up a mail domain's NS, MX, SPF, DKIM and DMARC now and say which differ from what NameOcean mail needs (with the expected values).
create_mailbox
write
Create a mailbox (username@domain) on a mail domain. A password is generated; it is not returned here, the user reads it in the dashboard. quota_gb comes out of the plan's storage (default 1).
update_mailbox
write
Change a mailbox's display name or quota (GB).
reset_mailbox_password
write
Give a mailbox a new generated password. The old one stops working at once (mail apps must be updated); the new one is shown to the user in the dashboard, not returned here. Ask the user first.
delete_mailbox
destructive
Delete a mailbox with ALL its mail and aliases. Can't be undone: confirm with the user first.
add_email_alias
write
Deliver another address of the domain to a mailbox (e.g. sales@ to info@).
remove_email_alias
destructive
Delete an alias of a mail domain.
list_email_forwarding
read
Free email forwarding: every domain registered in the account, whether forwarding is on, and if it is off, why it can't be turned on.
get_email_forwarding
read
A domain's forwarding aliases (and whether their targets confirmed) and mail webhooks.
enable_email_forwarding
write
Turn free email forwarding on for a domain registered at NameOcean: writes its MX record. If the zone has other MX records (another mail provider) this fails unless replace_mx is true, which removes them - ask the user before that.
disable_email_forwarding
destructive
Turn forwarding off for a domain (removes the MX record; aliases are kept).
add_email_forward
write
Forward localpart@domain to another address. A new target address gets a confirmation mail; forwarding starts once its owner confirms.
remove_email_forward
destructive
Stop forwarding localpart@domain.
list_forwarded_mail
read
Mail a forwarding domain received in the last 30 days: from, subject, status (forwarded, spam, quota, bounced...). Never the body.
send_email
write
Send an email from one of the user's mailboxes or aliases (a domain with NameOcean email hosting whose SPF and DKIM are set up). Before calling, show the user the from address, the recipients, the subject and the body, and send only after they say yes. Returns one id per recipient; delivery results come later in list_sent_email.
list_sent_email
read
Mail sent with the API in the last 30 days and what happened to each recipient (queued, delivered, delayed, failed, suppressed), with the SMTP error. Never the body.

Webhooks

list_webhooks
read
Webhook endpoints that receive this account's events (domain, DNS, SSL), with the event types they want.
create_webhook
write
Send account events to an https URL. events: types such as dns.record.created, groups such as dns.*, or ["*"]; the event list is at https://nameocean.net/developers/webhooks/. Returns the signing secret.
delete_webhook
destructive
Stop sending events to a webhook endpoint and delete it.
send_test_event
write
Post a webhook.test event to an endpoint now and show what it answered.
list_webhook_deliveries
read
Recent deliveries to a webhook endpoint: event, status, attempts, the receiver's answer.

Protocol

Streamable HTTP, stateless, protocol versions 2025-11-25, 2025-06-18 and 2025-03-26. Sign-in is OAuth 2.1 with PKCE and dynamic client registration; the server's metadata is at /.well-known/oauth-protected-resource. The tools call the same code as the REST API, so ownership checks, scopes and rate limits are the same.