GlobalHostia MCP server: setup and tool reference
A remote MCP server (Streamable HTTP) with OAuth 2.1 sign-in. Public tools work without signing in; account tools ask the customer to sign in on globalhostia.com the first time they are used.
Endpoints
| What | URL |
|---|---|
| MCP server (Claude, Claude Code, other clients) | https://globalhostia.com/mcp |
| MCP server for ChatGPT (no commerce tools) | https://globalhostia.com/mcp/chatgpt |
| Public read-only shopping server (no sign-in) | https://globalhostia.com/api/mcp |
| Protected resource metadata (RFC 9728) | https://globalhostia.com/.well-known/oauth-protected-resource/mcp |
| Authorization server metadata (RFC 8414) | https://globalhostia.com/.well-known/oauth-authorization-server |
| Authorization endpoint | https://globalhostia.com/oauth/authorize |
| Token endpoint | https://globalhostia.com/oauth/token |
| Dynamic client registration (RFC 7591) | https://globalhostia.com/oauth/register |
| Token revocation (RFC 7009) | https://globalhostia.com/oauth/revoke |
Claude
Add a custom connector with https://globalhostia.com/mcp. Claude registers itself (Client ID Metadata Document or Dynamic Client Registration) and signs in on first use of an account tool.
Claude Code
claude mcp add --transport http globalhostia https://globalhostia.com/mcpThen run /mcp and choose Authenticate.
ChatGPT
Use https://globalhostia.com/mcp/chatgpt with OAuth. Tools declare securitySchemes; a signed-out call to an account tool returns _meta["mcp/www_authenticate"] so ChatGPT shows the connect button.
MCP Inspector
npx @modelcontextprotocol/inspector --cli https://globalhostia.com/mcp --transport http --method tools/listFor account tools, use the Inspector UI: it completes the OAuth flow with a localhost redirect.
Authentication
- OAuth 2.1, authorization code with PKCE (S256 only). Public clients (
token_endpoint_auth_method: none); confidential DCR clients may useclient_secret_postorclient_secret_basic. - Client registration: Dynamic Client Registration, or an https
client_idpointing to a Client ID Metadata Document (client_id_metadata_document_supported: true). - Redirect URIs:
https://claude.ai/api/mcp/auth_callback,https://claude.com/api/mcp/auth_callback,https://chatgpt.com/connector_platform_oauth_redirect,https://chatgpt.com/connector/oauth/{id}, and loopbackhttp://localhost/127.0.0.1on any port. Other https redirect URIs are accepted with a warning on the consent page (or refused when the store owner restricts them). - Resource indicators (RFC 8707): send
resource=https://globalhostia.com/mcp(or/mcp/chatgpt). Tokens are bound to that resource and refused by the other endpoint. - Tokens: opaque bearer tokens in the
Authorizationheader only. Access tokens last 60 minutes; refresh tokens 60 days and rotate on every use (a reused refresh token revokes the connection). A connection lasts at most 90 days. - Challenges: a missing token on an account tool gives
401withWWW-Authenticate: Bearer resource_metadata="…", scope="…"; a token lacking the tool's scope gives403witherror="insufficient_scope". The authorization response includesiss(RFC 9207). - Scopes:
account:read,billing:read,dns:read,support:read,dns:write,email:write,ssl:write,domains:write,support:write,cart:write.offline_accessis accepted. - Accounts with two-factor authentication cannot complete the connector sign-in yet.
Tool reference (29 tools)
Read-only tools are marked readOnlyHint; tools that overwrite or delete are marked destructiveHint and refuse until called with confirm: true after the customer confirms.
search_plans · Search hosting plans
no sign-in read-only not on /mcp/chatgpt
Search GlobalHostia hosting, VPS, dedicated server, SSL and email plans by keyword, category, location and maximum monthly price. Returns plans with key specs, live price and product page. No sign-in needed.
query· string: Keywords, e.g. "windows vps 8gb"category· stringlocation· stringmax_price· number: Maximum monthly pricecurrency· string: ISO 4217 currency code such as USD or AED (default USD).limit· integer
recommend_plan · Recommend a hosting plan
no sign-in read-only not on /mcp/chatgpt
Pick the best GlobalHostia plans for a need described in words (e.g. "WordPress shop", "Windows VPS for MT5 under $20"), with optional budget, location, OS, RAM and number of websites. Returns ranked plans with reasons and live prices. No sign-in needed.
needrequired · stringbudget_monthly· numbercurrency· string: ISO 4217 currency code such as USD or AED (default USD).location· stringos· stringmin_ram_gb· numberwebsites· integerlimit· integer
check_domain_availability · Check domain availability
no sign-in read-only
Live registry check whether a domain name (e.g. mybrand.ae) is available to register at GlobalHostia (with the first-year and renewal price where shown). Limited to 10 checks per minute. No sign-in needed.
domainrequired · string: Full domain, e.g. mybrand.comcurrency· string: ISO 4217 currency code such as USD or AED (default USD).
create_cart_link · Create a checkout link
no sign-in read-only not on /mcp/chatgpt
Build a GlobalHostia cart link for one plan (slug from search_plans or recommend_plan) with the billing cycle and currency preselected, optionally attaching a domain. Returns the exact price for that cycle. The customer reviews and pays on globalhostia.com; this tool never takes payment. No sign-in needed.
slugrequired · stringbilling_cycle· "monthly" | "quarterly" | "semiannually" | "annually" | "biennially" | "triennially" | "onetime" | "free"currency· string: ISO 4217 currency code such as USD or AED (default USD).domain· string
get_policies · Get refund, renewal and tax policies
no sign-in read-only
GlobalHostia customer policies from the published terms: money-back guarantee, domain and SSL refunds, cancellation, automatic renewal, billing, taxes and VAT, domain expiry, with the source link.
topic· "all" | "refunds" | "renewal" | "taxes" | "cancellation" | "domains"
get_account_overview · Get account overview
scope account:read read-only
Summary of the signed-in GlobalHostia account: name and company, number of active services and domains, domains expiring within 30 days, and (with the matching permissions) unpaid invoices and open tickets.
No parameters.
list_services · List services
scope account:read read-only
The hosting, VPS, server, SSL and email services on the signed-in account: id, product, domain, status, billing cycle, recurring amount and next due date.
status· "active" | "all": Default all (cancelled and terminated included).
get_service · Get service details
scope account:read read-only
One service on the account by id: product, domain, status, billing, IP addresses, configuration (OS, location, CPU, RAM) and disk / bandwidth usage when the server reports it. Never includes passwords.
service_idrequired · integer: Service id, as returned by the matching list tool.
list_domains · List domains
scope account:read read-only
Domains registered on the account with status, expiry date, days left and whether auto-renew is on.
expiring_within_days· integer: Only domains expiring within this many days.
get_domain · Get domain details
scope account:read read-only
One domain on the account: status, registration and expiry dates, auto-renew, nameservers, and whether its DNS is managed at GlobalHostia (and can be edited with the DNS tools).
domainrequired · string: A domain on your account, e.g. mybrand.com
list_dns_records · List DNS records
scope dns:read read-only
DNS records (A, AAAA, CNAME, MX, TXT, SRV, NS) of a domain on the account when its DNS is managed at GlobalHostia, with the record ids needed by update_dns_record and delete_dns_record.
domainrequired · string: A domain on your account, e.g. mybrand.comtype· "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "NS" | "CAA"
site_health · Check site health
scope account:read read-only
Health check for a domain on the account: DNS and nameservers, website reachability, SSL certificate, and email authentication (SPF, DKIM, DMARC), with a score and suggested fixes.
domainrequired · string: A domain on your account, e.g. mybrand.com
email_settings · Get email settings
scope account:read read-only
Mail server settings (IMAP, POP3, SMTP host names, ports, encryption) for a domain on the account, and its mailboxes when the domain is on GlobalHostia hosting.
domainrequired · string: A domain on your account, e.g. mybrand.com
list_invoices · List invoices
scope billing:read read-only
Invoices on the account (newest first), optionally only Unpaid, Paid, Overdue or Cancelled: number, dates, total, currency and status.
status· "Unpaid" | "Paid" | "Overdue" | "Cancelled"
get_invoice · Get invoice details
scope billing:read read-only
One invoice by id: line items, subtotal, tax, credit, total, balance, status and payments received. Card and bank details are never included.
invoice_idrequired · integer: Invoice id, as returned by the matching list tool.
list_tickets · List support tickets
scope support:read read-only
Support tickets on the account: id, ticket number, subject, department, status, priority and last reply time.
status· "open" | "all": Default all.
get_ticket · Get support ticket
scope support:read read-only
One support ticket by id with its conversation (latest 20 messages, each shortened to 2,000 characters).
ticket_idrequired · integer: Ticket id, as returned by the matching list tool.
get_renewals · Get upcoming renewals
scope account:read read-only
Everything on the account that renews: services and domains with renewal date, days left, amount, billing cycle and auto-renew, soonest first.
within_days· integer: Default 90.
add_dns_record · Add a DNS record
scope dns:write changes data
Add one DNS record (A, AAAA, CNAME, MX, TXT or SRV) to a domain on the account whose DNS is managed at GlobalHostia. Name is relative to the domain ("@" for the domain itself, "www", "_dmarc").
domainrequired · string: A domain on your account, e.g. mybrand.comtyperequired · "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV"namerequired · string: "@" for the domain itself, or a host such as wwwvaluerequired · stringttl· integerpriority· integer: MX and SRVweight· integer: SRVport· integer: SRV
update_dns_record · Update a DNS record
scope dns:write changes data destructive: confirm required
Replace the value, TTL or priority of one existing DNS record (record_id from list_dns_records). Overwrites the old value, so it needs confirm: true after the customer approves.
domainrequired · string: A domain on your account, e.g. mybrand.comrecord_idrequired · stringname· stringvaluerequired · stringttl· integerpriority· integerweight· integerport· integerconfirm· boolean (true): Must be true. Set it only after the customer has explicitly confirmed this exact change.
delete_dns_record · Delete a DNS record
scope dns:write changes data destructive: confirm required
Delete one DNS record (record_id from list_dns_records) from a domain on the account. Irreversible: needs confirm: true after the customer approves.
domainrequired · string: A domain on your account, e.g. mybrand.comrecord_idrequired · stringconfirm· boolean (true): Must be true. Set it only after the customer has explicitly confirmed this exact change.
create_mailbox · Create a mailbox
scope email:write changes data
Create a mailbox such as sales@mybrand.com on GlobalHostia hosting. A strong random password is set and never shown; the customer sets their own password in the control panel (link returned).
emailrequired · string: Full address, e.g. sales@mybrand.comquota_mb· integer: Mailbox size in MB, 0 = unlimited (default 1024).
delete_mailbox · Delete a mailbox
scope email:write changes data destructive: confirm required
Delete a mailbox and all of its email from GlobalHostia hosting. Irreversible: needs confirm: true after the customer approves.
emailrequired · stringconfirm· boolean (true): Must be true. Set it only after the customer has explicitly confirmed this exact change.
issue_ssl · Issue a free SSL certificate
scope ssl:write changes data
Request a free SSL certificate (Let's Encrypt) for a domain on GlobalHostia hosting, optionally including www. The domain must already point to the hosting server.
domainrequired · string: A domain on your account, e.g. mybrand.cominclude_www· boolean: Default true.
open_ticket · Open a support ticket
scope support:write changes data
Open a support ticket in the customer's name (department Technical, Billing or Sales; default Technical). Use for anything the tools cannot do, such as refunds, cancellations or server problems.
subjectrequired · stringmessagerequired · stringdepartment· stringpriority· "Low" | "Medium" | "High"service_id· integer: Related service id, as returned by the matching list tool.
reply_ticket · Reply to a support ticket
scope support:write changes data
Add a reply in the customer's name to one of their support tickets (ticket_id from list_tickets).
ticket_idrequired · integer: Ticket id, as returned by the matching list tool.messagerequired · string
set_domain_autorenew · Turn domain auto-renew on or off
scope domains:write changes data
Turn automatic renewal on or off for a domain registered at GlobalHostia. With auto-renew off, the domain expires unless renewed manually.
domainrequired · string: A domain on your account, e.g. mybrand.comenabledrequired · boolean
set_nameservers · Change domain nameservers
scope domains:write changes data destructive: confirm required
Replace the nameservers of a domain registered at GlobalHostia (2 to 5 host names). Wrong nameservers take the website and email offline, so it needs confirm: true after the customer approves.
domainrequired · string: A domain on your account, e.g. mybrand.comnameserversrequired · array of stringconfirm· boolean (true): Must be true. Set it only after the customer has explicitly confirmed this exact change.
renew_items_link · Get renewal links
scope cart:write read-only not on /mcp/chatgpt
Links where the customer renews services and domains on their account (items from get_renewals, or everything due within 30 days). Unpaid renewal invoices link to the invoice. Payment always happens on globalhostia.com; this tool never charges anything.
items· array of string: Item keys from get_renewals, e.g. "d:301" or "s:102".
Errors and limits
- Tool failures return
isError: truewith a plain-language message andstructuredContent.error:invalid,not_found,forbidden,confirm,rate_limited,unavailableordisabled. - Per customer: 120 reads and 30 changes per minute; 10 domain availability checks per minute. Per IP: 240 MCP requests per minute.
- Every change is written to the account's audit log with the app, the tool and the target (never message bodies or secrets).
- Support: contact · privacy policy · terms.
