Connect your AI
Add the pbcp MCP server to your AI tool of choice. You'll need an API token — create one in the panel settings (API Tokens tab). When you create a token, pbcp shows ready-to-paste setup blocks with the real token embedded.
Claude Code (CLI)
Run this in your terminal:
claude mcp add --transport http \
pbcp https://ainativehosting.store/mcp \
--scope user \
--header "Authorization: Bearer YOUR_TOKEN"Or add the same server by JSON:
claude mcp add-json --scope user pbcp '{
"type": "url",
"url": "https://ainativehosting.store/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}'Claude Code also accepts the same JSON inside its config if you prefer to manage it by hand.
{
"mcpServers": {
"pbcp": {
"type": "url",
"url": "https://ainativehosting.store/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Restart Claude Code. You should see pbcp tools when you type /mcp.
Claude Desktop / Claude.ai
In Claude, open Settings → Connectors, add a custom MCP server, then use:
URL: https://ainativehosting.store/mcp
Header name: Authorization
Header value: Bearer YOUR_TOKENThe token-created dialog in pbcp gives you this block already filled in. Paste it there instead of editing local files by hand.
OpenAI Codex
Add pbcp to your ~/.codex/config.json:
{
"mcpServers": {
"pbcp": {
"type": "url",
"url": "https://ainativehosting.store/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}Direct HTTP
Useful for debugging a custom client. Most people should connect through an MCP-aware AI client instead.
POST https://ainativehosting.store/mcp
Authorization: Bearer YOUR_TOKEN
Content-Type: application/jsonChatGPT (Web & Desktop)
Launch a website
Going from a bare domain name to a live WordPress site, step by step. You can do every step by talking to your AI once the MCP server is connected.
1. Start with site onboarding
The preferred starting point is sites.onboard. It creates or reuses the hosted
domain record first, then returns the correct DNS-first next step instead of guessing.
# What to tell your AI:
"Onboard example.com for hosting"
# or, if you do not have a custom domain yet:
"Create a managed subdomain for slug happyviber"
If you need full manual control, domains.create still exists. But for normal
conversational use, sites.onboard is the better entry point.
2. Decide your DNS strategy
For custom domains, decide whether pbcp should manage DNS through Cloudflare or whether you will keep DNS somewhere else and update records manually. For managed subdomains, pbcp can skip this choice because it already controls the parent zone.
# What to tell your AI:
"I want pbcp to host DNS for example.com"
# or
"I want to keep DNS at my registrar, tell me which records to create"This is the first branching point. The right next step depends on that answer.
3. If using pbcp Cloudflare DNS, create the zone and set nameservers
In the new onboarding flow, sites.onboard can create the Cloudflare zone
and the initial web records for you. If you want to do it manually, the lower-level
dns.zones.create tool still works for a domain you already own in pbcp.
# What to tell your AI:
"Onboard example.com and use pbcp Cloudflare DNS"
# The response includes the assigned nameservers, e.g.:
# name_servers: ["aria.ns.cloudflare.com", "todd.ns.cloudflare.com"]If the domain is already on Cloudflare, onboarding will reuse the existing zone. For managed subdomains, no registrar change is needed because pbcp writes DNS directly into the configured parent Cloudflare zone.
4. Point your registrar to Cloudflare's nameservers
At your domain registrar (Namecheap, GoDaddy, Porkbun, etc.), replace the default nameservers with the two Cloudflare gave you.
5. Create or confirm DNS records
If pbcp is hosting DNS through onboarding, the initial web records are already created. If you are using the lower-level tools, ask your AI to create the records in Cloudflare. If you are keeping DNS elsewhere, ask your AI which records you need and create them at your current DNS provider. In both cases, the usual baseline is:
# What to tell your AI:
"Create an A record for example.com pointing to 203.0.113.10"
"Create a CNAME record for www.example.com pointing to example.com"
Your AI will use dns.records.create when pbcp manages the zone,
or it can simply tell you the record set to create elsewhere.
6. Verify public DNS before SSL
Do not request Let's Encrypt yet. First confirm that public DNS is correct. pbcp exposes two tools for this:
dns.lookup_publicshows the public NS, CNAME, A/AAAA, and MX observations.ssl.readinesstells you whether the requested hostnames currently resolve to this server well enough for pbcp's webroot Let's Encrypt flow.
# What to tell your AI:
"Check whether example.com is ready for SSL"
"Inspect the public DNS for example.com"7. Request the SSL certificate
Once ssl.readiness says the hostnames resolve to this server,
request a free Let's Encrypt certificate:
# What to tell your AI:
"Request SSL for example.com, include www"
The ssl.request tool runs Certbot in the background. If you
skip the readiness check and DNS is still wrong, the certificate request will fail.
8. Create a database
WordPress needs a MySQL database. Ask your AI to create one:
# What to tell your AI:
"Create a MySQL database called wp_example for my site"
The databases.create tool will set up the database and user.
9. Install WordPress
Everything is in place. Tell your AI to install WordPress:
# What to tell your AI:
"Install WordPress on example.com with admin email me@example.com"
The wordpress.install tool downloads WordPress, wires up
the database, and creates the admin account. When it's done,
you can ask for a one-time login link with wordpress.login_url.
Session flow
If you're building a custom MCP client or debugging, here's what happens under the hood.
Authorization: Bearer <token>.
Scoped tokens only see tools their scopes allow.
Transport
Debugging examples
These are for debugging or building your own client. Day-to-day use should go through Claude, Codex, or another MCP-aware AI client.
Tool reference
Every tool the server currently exposes, pulled live from the API.