Skip to main content
Hostwares

Connect Claude, ChatGPT & AI Agents

Deploy and manage Hostwares from any MCP client using natural language.

What is MCP

The Model Context Protocol is an open standard that lets AI assistants call real tools. Hostwares runs an official MCP server, so an assistant can deploy a repo, read build logs, set environment variables and attach domains for you — in plain language, without leaving your editor.

It is hosted by us at https://mcp.hostwares.com — nothing to install, and it updates as the platform does.

Quickstart (Claude Code)

Create an agent key at Dashboard → API Keys (pick “Deploy my apps”), then run:

claude mcp add --transport http hostwares https://mcp.hostwares.com \
  --header "Authorization: Bearer hwk_your_key_here"

That is the whole setup. Now just ask:

> Deploy this repo to Hostwares as my-app
> Why is my-app returning 502? Check the logs
> Set DATABASE_URL on my-app
> Point app.example.com at my-app

Verify it connected with claude mcp list.

Claude.ai, Claude Desktop & ChatGPT

These apps connect with your Hostwares login. No key to copy. Add a custom connector with this URL:

https://mcp.hostwares.com
  • Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the URL → Connect.
  • ChatGPT: Settings → Connectors → Create → paste the URL, authentication OAuth.
  • You’re sent to hostwares.com to sign in and choose what the app may do. Destructive access starts unticked.
  • Disconnect any time under Dashboard → API Keys → Connected apps.

Other clients

Cursor, VS Code, Windsurf, Lovable

Each client keeps the URL and the key in its own MCP config, and the field names differ a little. The connect guide has the exact file and snippet for each one. This is the Cursor form (~/.cursor/mcp.json); Claude Desktop connects through Settings → Connectors above, not its config file:

{
  "mcpServers": {
    "hostwares": {
      "url": "https://mcp.hostwares.com",
      "headers": {
        "Authorization": "Bearer hwk_your_key_here"
      }
    }
  }
}

ChatGPT & other remote-MCP clients

Add a custom MCP connector pointing at https://mcp.hostwares.com with the header Authorization: Bearer hwk_.... Any client that speaks Streamable HTTP works.

Local stdio (clients without remote MCP)

A few clients only speak local stdio. For those, run our bridge — it forwards to the same hosted server, so you get the same tools without them going stale:

{
  "mcpServers": {
    "hostwares": {
      "command": "npx",
      "args": ["-y", "hostwares-mcp"],
      "env": { "HOSTWARES_API_KEY": "hwk_your_key_here" }
    }
  }
}

Check it works

A plain GET returns the server descriptor, so you can sanity-check reachability:

curl https://mcp.hostwares.com

Tools

ToolWhat it does
Sites and deploys
deployOrder a site from a GitHub repo. Returns a price and an approval link.
create_uploadDeploy a folder that is not on GitHub.
list_sitesYour sites, their status and URL.
get_statusOne site's status, including whether it is running.
get_site_configDomain, port, repo, branch, build and start commands.
redeploy_siteBuild again; the current version serves until the new one is ready.
restart_siteRestart a site.
stop_siteTake a site offline (asks for approval).
start_siteStart a stopped site.
deployment_historyPast deploys of a site.
instance_powerStart, stop or restart your Cloud Instance (stop asks for approval).
Logs and health
get_logsRecent build and deploy logs.
diagnose_siteOne check of logs, HTTP, the app and its database together.
verify_site_healthWaits until a site really serves traffic.
http_checkStatus, timing, redirects and headers of any URL.
verify_sslA real TLS handshake against a domain.
Environment
list_env_varsVariable names on a site. Values are never shown.
set_envSet or change variables.
Domains
add_domainAttach your domain. SSL is automatic.
get_domainsDomains on your sites.
get_domain_infoExpiry, nameservers and lock status of your registered domain.
dns_list_recordsDNS records of your domain.
dns_create_recordAdd or update a DNS record on your domain.
dns_delete_recordDelete a DNS record (asks for approval).
Email hosting
email_list_mailboxesMailboxes and disk use on your email hosting.
email_create_mailboxCreate a mailbox; the password is shown once.
email_reset_mailbox_passwordGive a mailbox a new password, shown once (asks for approval).
email_delete_mailboxDelete a mailbox and its mail (asks for approval).
email_dns_statusThe MX, SPF, DKIM and DMARC records your mail domain needs.
Databases
create_databaseOrder PostgreSQL, MySQL, MariaDB, Redis or MongoDB. Asks for approval; set up once the invoice is paid.
list_databasesYour databases.
get_database_statusOne database's status.
verify_db_connectionChecks that the database engine itself answers.
db_schemaPostgreSQL: tables, columns, indexes, constraints and roles.
db_queryPostgreSQL: one read-only SELECT. Never changes data.
db_executePostgreSQL: apply a change or migration in one transaction (asks for approval).
db_connection_infoPostgreSQL: health, and how your app connects. No host or password is shown.
db_create_app_rolePostgreSQL: a limited login for your app, never the admin user (asks for approval).
db_startStart a stopped database.
db_restartRestart a database.
db_stopStop a database (asks for approval).
Supabase instances
supabase_statusWhich containers of your Supabase instance are up.
supabase_logsRecent log lines of one Supabase service, secrets masked.
supabase_startStart your Supabase instance.
supabase_restartRestart your Supabase instance.
supabase_stopStop your Supabase instance (asks for approval).
Backups
create_backupTake a database backup now (needs a backup pack on it).
list_backupsA database's backup pack and its recent backups.
list_vm_backupsRestore points of a site or database server.
request_vm_restoreAsk for a restore from one restore point.
Account
check_invoicesInvoices with their status and payment link.
whoamiWhich account and access the key has.
get_actionWhether an approval is still waiting or done.
cancel_resourceCancel a site or database at the end of its paid period (asks for approval).
delete_resourceAsk for a site, database or Supabase instance to be removed (asks for approval; our team removes it).

These call the same internal services as the dashboard and the hw CLI, so results are identical whichever way you drive the platform.

How deploys are billed

Nothing is ordered without you. deploy returns an approval link with the price; open it signed in to hostwares.com and approve. That creates the site and its invoice, and the build starts once the invoice is paid. Your assistant follows along with get_action; the site is not live until get_status reports it running.

Call deploy without packId first and it returns the available resource packs so you can pick one. Databases currently require an active plan — see Plans.

Security

  • Agent keys (hwk_) are scoped. You choose what each key may do (read only, deploy, databases, DNS, orders, destructive actions), when it expires, and a monthly order limit. An agent only sees the tools its key allows.
  • Coding-agent presets. “Coding agent” = read + deploy + read your app’s database. “Coding agent + database’ adds database writes and a command-on-your-instance terminal — each change asks for your approval. These keys never get DNS, billing or destructive access. Call whoami for the exact scope→tool list.
  • Nothing costs money or goes offline without you. Orders, new databases and destructive actions (stop a site, replace a domain, change secret env vars) return an approval link. You open it signed in to hostwares.com and approve; exactly what you saw is what runs. This holds even if your agent runs with permissions skipped.
  • Every tool is scoped to the key’s owner — a key can only ever see and change that account’s resources. Our server passwords, internal IPs and infrastructure details are never returned by any tool.
  • Every call is logged (tool, key, result — never your arguments’ values). See it under Dashboard → API Keys → Recent agent activity. Revoke a key there instantly.
  • Older full-access sk_ keys still work with MCP until 3 January 2027, with approvals applied. Switch to an agent key before then.

Troubleshooting

SymptomCause & fix
401 / “Invalid or missing API key”Header must be exactly Authorization: Bearer hwk_.... Check the key hasn’t expired or been revoked in Dashboard → API Keys.
429Over 60 requests/minute for that key. Wait a moment and retry.
Tools missing in the clientReconnect the server (claude mcp remove hostwares then add again) so it re-runs discovery.
“Site not found or access denied”The id belongs to another account, or is wrong — run list_sites to get valid ids.