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 a key at Dashboard → API Keys, then run:
claude mcp add --transport http hostwares https://mcp.hostwares.com \ --header "Authorization: Bearer sk_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.
Other clients
Claude Desktop, Cursor, VS Code, Windsurf
Add to your client’s MCP config (.cursor/mcp.json for Cursor, claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"hostwares": {
"type": "http",
"url": "https://mcp.hostwares.com",
"headers": {
"Authorization": "Bearer sk_your_key_here"
}
}
}
}ChatGPT & other remote-MCP clients
Add a custom MCP connector pointing at https://mcp.hostwares.com with the header Authorization: Bearer sk_.... Any client that speaks Streamable HTTP works — including Base44, which can consume the same URL as a connector or skill wrapper.
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", "github:Hostwares/hostwares-mcp"],
"env": { "HOSTWARES_API_KEY": "sk_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
| Tool | What it does |
|---|---|
| deploy | Order a site from a public GitHub repo |
| list_sites | List your sites with status and URL |
| get_status | Detailed status incl. live container state |
| get_logs | Recent build and deployment logs |
| set_env | Set or update environment variables |
| add_domain | Attach a custom domain (SSL is automatic) |
| create_database | Provision Postgres, MySQL, MariaDB, Redis or MongoDB |
| list_databases | List your managed databases |
| restart_site | Restart a site’s container |
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
Hosting is pay-first. deploy creates the site and an invoice, and returns an invoiceUrl — the build starts automatically once that invoice is paid. Your assistant will hand you the payment link; 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
- Keys are the same
sk_API keys used by the REST API and CLI, stored hashed. Revoke anytime from Dashboard → API Keys. - Every tool is scoped to the key’s owner — a key can only ever see and change that account’s resources.
- Rate limited to 60 requests/minute per key, the same as the REST API.
- Treat a key like a password: it can deploy and restart infrastructure. Prefer a dedicated key per machine so you can revoke one without disturbing the others.
Troubleshooting
| Symptom | Cause & fix |
|---|---|
| 401 / “Invalid or missing API key” | Header must be exactly Authorization: Bearer sk_.... Confirm the key still exists in Dashboard → API Keys. |
| 429 | Over 60 requests/minute for that key. Wait a moment and retry. |
| Tools missing in the client | Reconnect 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. |