MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Code & DevOps

GearHost

Publish a website to a live HTTPS URL in seconds, no account needed. Keep it free on GearHost.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
944 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
21

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
222

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 944 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name gearhost-publish.

  • Pass
    Lists tools

    tools/list returned 21 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 944 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 944 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    55 of 59 parameters have a description (93%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Fail
    Website matches publisher

    The website host does not match the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-10T12:51:43.604337Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using GearHost

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http gearhost https://mcp.gearhost.com/

Capabilities

Tools 21

attach_custom_domain

Requires signing in to GearHost. Attach a custom domain (e.g. mycoffeeshop.com or www.mycoffeeshop.com) to one of the user's CloudSites, the same as "Attach Custom Domain" in the GearHost panel. Works on every plan, including free. Afterwards the domain's DNS must point at the site: the result lists the exact records to add at the domain's DNS host. HTTPS is issued automatically once DNS resolves; get_domain_status reports progress. Returns structuredContent { status, domain, site, attached, records:[{ type, host, value }], next }.

Discovered
check_site

Loads a published GearHost site from GearHost's servers and reports problems to fix: missing files and broken links on the site, external scripts/stylesheets that fail to load (e.g. a wrong CDN version), no mobile viewport tag, no <title>, images without alt text, http:// resources on an https page, images over 1 MB, contact forms that send nowhere, and leftover placeholder text (Lorem ipsum, example.com). Pass the site url (or token / name + project_key) and optionally a path. Works for GearHost-hosted sites only. JavaScript is not executed, so runtime script errors are not detected. Each issue has a severity (error, warning, info) and a suggested fix.

Discovered
claim_website

Keep a preview permanently: claims a site made with publish_website into the user's GearHost account, so it becomes a free, permanent CloudSite at the same URL (no 72h expiry). Use when the user wants to keep their site. Requires signing in to GearHost: if they aren't signed in, they are asked to sign in or create a free account. Needs the preview's manage token (from publish_website). Returns structuredContent { status, url, claimed, expires_at, dashboard_url }.

Discovered
delete_my_site

Requires signing in to GearHost. Delete one of the user's GearHost CloudSites (by domain): its hosting, files, certificates, DNS, HA replicas and Git Push repo, exactly like deleting it in the GearHost panel. Destructive - set confirm:true. Databases linked to the site are KEPT (unlinked, still in the account) unless delete_databases:true. Returns structuredContent { status, domain, deleted, databases }.

Discovered
get_claim_status

Check whether a preview has been claimed into a GearHost account, and how long is left to claim it (the site is auto-removed at expiry unless claimed). Pass token, or name+project_key. Read-only. Returns structuredContent { status, url, claimed, claimable, expiring_soon, seconds_left, time_left, claim_url, owner }. claim_url is the page where the user can keep the site.

Discovered
get_domain_setup

Get everything needed to put a custom domain (e.g. yourshop.com) on a GearHost site: the exact DNS records, plus how to attach it. Identify the site by token, or by name+project_key. A custom domain can only be attached to a site in a GearHost account (it binds the domain to a real owner). The steps are: (1) the preview is claimed into a free account (claim_website or claim_url), (2) the domain is attached (attach_custom_domain when signed in, or "Attach Custom Domain" in the GearHost panel), (3) the DNS records are added at the domain's DNS host, (4) get_domain_status reports when it is live. Returns structuredContent { status, domain, claim_first, requires_account, attach_in_dashboard, claim_url, how_to_attach, records:[{ type, host, value, priority, note }], steps }.

Discovered
get_domain_status

Check whether a custom domain is wired up and serving yet — the verify/poll half of the custom-domain flow. After you give the user the DNS records (get_domain_setup) and they attach the domain + add the records, call this to see live progress: is it attached to the CloudSite, does DNS resolve to the GearHost node, and is HTTPS active. Identify the site by token or name+project_key. Poll this every ~30-60s after the user adds DNS until https:"active" — like get_site_status for a publish. Returns structuredContent { status, domain, attached, dns_ok, apex_ok, www_ok, https, live, live_url, next }.

Discovered
get_plans

GearHost CloudSite plans and monthly prices in USD, read live from GearHost (the free plan included). Each plan: name, monthly_price_usd, disk_mb, monthly_requests (null = no fixed limit). Every plan, including free, can use custom domains with automatic HTTPS. Add-on prices (email, high availability, databases) are per plan. Plans are changed in the GearHost panel (the CloudSite's "Change plan" link); this tool only reads prices. pricing_model states how billing works: flat monthly prices, no credits or usage charges, and what happens when a site passes its request limit. Returns structuredContent { status, currency, plans:[...], pricing_model, change_plan }.

Discovered
get_publish_info

Optional: read the GearHost publishing docs (methods, limits ~25 MB and an hourly cap on new sites, 72h lifecycle). The docs describe a raw HTTP API (octane.gearhost.com/preview/) for non-MCP clients - when using MCP you do NOT need it; just call publish_website.

Discovered
get_site_stats

Requires signing in to GearHost. Traffic for the user's CloudSites: requests per day for the last 7 or 30 days (successful and not-found), bandwidth, and this billing cycle's requests against the plan's limit. Requests count every page and file served, not unique visitors; the numbers are refreshed about hourly. Use when the user asks how many visits or how much traffic a site gets. Omit domain for all sites. Read-only. Returns structuredContent { status, days, sites:[{domain, requests, ok, not_found, bandwidth_mb, cycle_requests, cycle_limit, daily:[{date, requests}]}] }.

Discovered
get_site_status

Full status of a published site — the one call to confirm a publish landed and inspect it. Identify the site by token, OR by name + project_key. Runs a real server-side HTTP probe (live_http) so you get a definitive "is it serving?" answer even while the fresh DNS has not propagated to you yet — prefer this over fetching the URL directly right after publishing. Also returns the current version, content_hash (to detect drift from what you published), size, file_count, source, and the claim/expiry state.

Discovered
list_form_messages

Requires signing in to GearHost. Lists messages visitors sent through contact forms on the user's CloudSites (GearHost Forms), newest first. Use when the user asks whether anyone contacted them through their site or wants to read form submissions. Optionally limit to one site (domain), to messages since a date, and the number returned (default 20, max 50). Read-only; visitor IP addresses are not included. Returns structuredContent { status, total, messages:[{site, received_at, subject, reply_to, fields}] }.

Discovered
list_my_previews

List the live preview sites you created with a given project_key (your cross-session identity). Reuse one project_key across several named publishes, then call this to enumerate + manage them all. Returns structuredContent { status, count, sites:[{ name, url, expires_at, last_published, claimed }] }.

Discovered
list_my_sites

Requires signing in to GearHost. List the CloudSites in the user's GearHost account. Returns structuredContent { status, sites:[{domain,url,status,plan,node}] }.

Discovered
list_versions

List the recent publish history for a site (newest first), so you can undo a change. Pass token, or name+project_key. Each publish is a version; use a version number with rollback_website to restore it. Returns structuredContent { status, url, current_version, count, versions:[{ version, published_at, sha, is_current }] }.

Discovered
publish_to_my_site

Requires signing in to GearHost. Publish/update content to a CloudSite ALREADY in the user's GearHost account (by domain). To put a NEW site online, use publish_website instead: it needs no account. Provide ONE of: html, files map (must include index.html at the root), or zip_base64. Returns structuredContent { status, url, domain, files, updated }.

Discovered
publish_website

Publish a website to a live public URL on GearHost in seconds (no account). For when the user has you build a website, landing page, portfolio, or HTML/CSS/JS app and wants to see it live or share a link. Provide ONE of: html (a one-page site), files (a map of relative path => text contents), or zip_base64. Pass token to update a site you published before (same URL). Optionally pass name to request a specific subdomain (e.g. name:"daily-grind" → daily-grind.gearhost.io); omit it for an auto-generated fun-name. Pair name with project_key (a secret you generate and STORE) for a PERSISTENT handle: re-publishing the same name + project_key in any future session updates that same URL, even after the token is gone. config applies serving behavior. Supported today: spa (serve index.html for any unmatched route — REQUIRED for client-side-routed apps like React/Vue so deep links + refresh work) and not_found. Unsupported config keys (e.g. redirects, headers) are rejected with bad_request. The response echoes config_applied with EXACTLY what took effect — read it to confirm what was honored instead of assuming. To verify SPA end-to-end, fetch any non-existent deep path and confirm it returns 200 with your index page, not 404. The published site is served at https://<name>.gearhost.io. This tool does the whole publish; static sites can have a working contact form by posting it to https://octane.gearhost.com/forms/ (get_publish_info has the exact markup; messages are emailed to the owner once the site is kept). octane.gearhost.com/preview/ in the docs is the equivalent raw HTTP API for non-MCP clients. Returns structuredContent { status, url, name, token, token_is_secret, updated, url_ready_in_seconds, verify_with, expires_at, claim }. live_now:true means the URL works right away (most publishes, and every update). If live_now is false the address is brand new and its DNS can take ~10s, so do NOT GET it immediately and assume failure; confirm with get_site_status (the verify_with tool) instead. On FAILURE: isError=true + structuredContent { status:"error", error, kind }. kind drives recovery: invalid_token (your update token is stale - retry WITHOUT token to publish a fresh site) | expired (preview hit max lifetime - claim it to keep editing) | rate_limited (back off - there is an hourly limit on NEW sites; the quota field in every publish response shows what is left) | too_large (>25 MB - shrink) | name_taken (the requested name is in use - pick another or omit name) | name_invalid (bad name - 3-40 chars, lowercase letters/numbers/hyphens) | forbidden (that name is managed with a different project_key - you cannot update it) | unavailable (publishing off / service down - retry later) | bad_request (fix the input) | publish_failed (transient - retryable). Content is PUBLIC - never include secrets or private files. The returned token is a WRITE CREDENTIAL - keep it private.

Discovered
report_abuse

Report a GearHost preview site being used for phishing/malware/abuse.

Discovered
rollback_website

Restore a site to a previous version (undo). Pass the manage token and the version number from list_versions. Restores that version's content to the live URL and resets the expiry timer. Returns structuredContent { status, url, restored_from, updated, url_ready_in_seconds }. Errors: version_not_found (no such version) | no_versions (nothing to roll back to) | invalid_token.

Discovered
search_domains

Search for domain names: checks with the domain registry which names are available to register, across popular endings (.com, .co, .net, .org, .io, .app by default), and adds available ideas suggested by the registry. Pass the user's words in query (a business name, an idea, or a full domain) and/or your own name ideas in names (e.g. ["harborgrind", "harborgrindcoffee", "drinkharbor.com"]); up to 24 names are checked per search. When GearHost domain registration is open, available names include the yearly price GearHost charges and a buy_url where the user completes the purchase in their GearHost account; no purchase happens through this tool. Status "unknown" means the registry did not answer for that name, not that it is free. No sign-in needed.

Discovered
unpublish_website

Take a published site DOWN immediately (delete it). Pass the manage token you got when you published. Use this to remove a site the moment it is no longer needed - or RIGHT AWAY if you accidentally published a secret (sites are public). Without this, a site only auto-expires ~72h after its last publish. Returns structuredContent { status:"deleted", url, deleted:true }. (A site that was CLAIMED into an account is a real CloudSite - delete it from the GearHost dashboard, not here.)

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected944 ms21