Host static websites on your own domain in the EU: domains, DNS, deploys, forms, shop and mail.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Gives one building block from blocks.list: its files, the HTML snippet to put in the pages, and notes on using it. Copy the files into the site by passing deploy_files along in sites.deploy (each is { path, source_url }; Spaicely fetches them, so you do not retype the code), then put the snippet in every page that needs it, with its texts in the language of the page. Without version you get the newest; a version never changes. Needs no account.
The block's name from blocks.list, such as consent
A version; default the newest
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http spaicely https://mcp.spaicely.com/mcp
Gives one building block from blocks.list: its files, the HTML snippet to put in the pages, and notes on using it. Copy the files into the site by passing deploy_files along in sites.deploy (each is { path, source_url }; Spaicely fetches them, so you do not retype the code), then put the snippet in every page that needs it, with its texts in the language of the page. Without version you get the newest; a version never changes. Needs no account.
| Argument | Type | Description |
|---|---|---|
| name* | string | The block's name from blocks.list, such as consent |
| version | integer | A version; default the newest |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The block's name from blocks.list, such as consent"
},
"version": {
"type": "integer",
"minimum": 1,
"description": "A version; default the newest"
}
}
}Lists ready-made building blocks for a site on Spaicely: a cookie notice that holds back analytics until the visitor agrees, forms that send to Spaicely without leaving the page, videos and maps that load only after a click, a mobile menu, an FAQ with structured data, a language switch, opening hours that say whether the place is open now, a progress bar for a donation form and a cart for the shop. Prefer a block to writing the same thing yourself. blocks.get gives a block's files, the HTML snippet for the pages and notes. Needs no account.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Checks whether domain names are free to register. Pass full domains (bakkerijjansen.nl) and/or bare names (bakkerijjansen); a bare name is tried with every extension in `extensions`, or by default with the ones people ask for most: nl, com, eu, be, de, net, org, shop, online, site, store, tech, app, dev, io, ai, co.uk, uk, fr, at, ch, it, es, nu, se, co, me, info, biz, xyz, cloud. We sell 718 extensions in all (.amsterdam, .restaurant, .photography and so on); pass them in `extensions` when they fit the name. At most 50 domains per call. The first check is quick and asks DNS only: taken means the domain has nameservers (certain); likely_available means it has none, so it is probably free (reason dns_only, or no_rdap where the registry has no RDAP and verifying adds nothing). Once the person has favourites, call again with verify: true for the dns_only ones (at most 10 domains): that asks our registrar (or else the registry over RDAP) and turns them into available or taken; otherwise reason says why (rdap_rate_limited, rdap_unavailable). A premium name (premium: true) costs what its registry asks: price is our price for it in euro cents before VAT, often far above the usual price, so tell the person. unknown means no answer at all. Each free domain has a register_url: a page where the person signs in and registers it in their own name. Registration itself checks again. Each taken domain has a transfer_url: if the domain is the person's own, they move it to Spaicely there.
| Argument | Type | Description |
|---|---|---|
| names* | array | Domains or bare names, such as bakkerijjansen.nl or bakkerijjansen |
| verify | boolean | Deep check for a shortlist: also ask the registries. At most 10 domains. |
| extensions | array | Extensions to try bare names with, such as nl, com, eu. Default: the ones people ask for most. |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 7, 2026.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"names"
],
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Domains or bare names, such as bakkerijjansen.nl or bakkerijjansen"
},
"verify": {
"type": "boolean",
"description": "Deep check for a shortlist: also ask the registries. At most 10 domains."
},
"extensions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Extensions to try bare names with, such as nl, com, eu. Default: the ones people ask for most."
}
}
}