protogrid

Search / com.hovercode/mcp

Hovercode

R0· no sign-in

Create and manage QR codes, short links, landing pages, and forms in your Hovercode workspace.

v1.0.1 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality87good
Trust92of 100
Uptime, 30 days95%
Latency p50466 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "hovercode": {
      "type": "http",
      "url": "https://hovercode.com/mcp/"
    }
  }
}
claude mcp add --transport http hovercode https://hovercode.com/mcp/
[mcp_servers.hovercode]
url = "https://hovercode.com/mcp/"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hovercode": {
      "type": "remote",
      "url": "https://hovercode.com/mcp/",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "hovercode": {
      "type": "http",
      "url": "https://hovercode.com/mcp/"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hovercode&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vaG92ZXJjb2RlLmNvbS9tY3AvIn0%3D"
}
{
  "servers": {
    "hovercode": {
      "type": "http",
      "url": "https://hovercode.com/mcp/"
    }
  }
}
{
  "mcpServers": {
    "hovercode": {
      "httpUrl": "https://hovercode.com/mcp/"
    }
  }
}
extensions:
  "hovercode":
    enabled: true
    name: "hovercode"
    type: streamable_http
    uri: "https://hovercode.com/mcp/"
    timeout: 300

Quality 87 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list carries no ttlMs, so clients re-fetch it
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations36 of 36 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 13,273 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes59 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies100 · weight 15
  • pass
    deps.known_vulnsno known advisory in 85 resolved packages
  • n/a
    deps.mcp_sdk_versionthe official MCP SDK is not in the dependency graph
  • pass
    deps.resolvable[email protected] resolved: 85 packages

36 tools, about 13,273 tokens to load them all · tool set 3c535ba6709c · tools last changed 2026-10-14 · checked 2026-10-19 10:52 UTC

Tool changes

  • get_short_link_activitychangedoutput schema
  • delete_short_linkchangedoutput schema
  • update_short_linkchangedoutput schema
  • list_short_linkschangedoutput schema
  • get_short_linkchangedoutput schema
  • list_block_typeschangedoutput schema
  • list_pageschangedoutput schema
  • delete_pagechangedoutput schema
  • update_pagechangedoutput schema
  • get_pagechangedoutput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 92 / 100

provenance85
liveness98
freshness85
hygiene100

+repository +dns-namespace +website +reachable +uptime-95% ~updated-35d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npm84 dependencies, resolved · advisories checked 2026-10-19

No known advisory affects this dependency graph.

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://hovercode.com/mcp/ streamable-httpnoneyes95%466 ms2026-07-282026-10-19
packageregistryversionruntimesecrets
hovercode-mcpnpm1.0.1–HOVERCODE_API_TOKEN

Tools (36)

build_pageBuild a rich, on-brand landing page from an ordered list of typed blocks, publish it, and return its live URL + its own QR code (`qr_id`; style it with the QR design args here, restyle later with update_qr_code — don't create another). This is the 'make me a page for X' tool — e.g. an event, product, restaurant, link-in-bio, or a scan-to-enter sweepstakes. Each block is {type, content}; call list_block_types first to see every type and its content shape. Blocks render in order in a centered column; a 'header' block (name/bio/photo) is the profile.
create_folderCreate a folder to organise QR codes, optionally nested under a parent. Creating a folder that already exists (same name, same parent) returns the existing one, so it's safe to call repeatedly.
create_formCreate a form, define its fields, brand it, publish it, and return a shareable short link + QR in one step. Use for 'make me a form to collect X, give me a link and QR to share it'. The result's `share_url` is the public link and `qr_id` is the form's own dynamic QR code (image included) — never call create_qr_code or create_short_link for a form's link; pass QR design args (primary_color, eye_style, frame, logo_url, …) here to style that code in the same call. Supports on-brand styling (theme/colors/logo), a `redirect_url` after submit, conditional logic (`show_when` on a field) and branching endings (`outcomes`), and a custom domain/slug. Publishing mints a dynamic short link and QR — always dynamic, no static option, since a form has to resolve somewhere live. Notifications are a separate, paid, verified-member setting. To change a form later, use update_form.
create_pageCreate a published micro landing page (link-in-bio style) with a title and a list of links, and return its live URL (`share_url`) + its own QR code (`qr_id`; style it with the QR design args here; don't create another). Use this for 'make me a page with these links and a QR to share it'. The page is a dynamic destination you can keep; it counts toward the workspace's page limit.
create_pdf_qrCreate a dynamic QR code and short link for a PDF (menus, flyers, tickets). Host the PDF by passing `pdf_url` (a link Hovercode fetches) or `pdf_base64` (the file's base64 bytes). Returns a shareable short link plus a rendered QR. Because it's dynamic you can later swap the PDF without reprinting the code — always dynamic, no static option here. Draws on the same free, per-workspace dynamic-code allowance as create_qr_code (list_workspaces' `dynamic_qr_limit`); past that limit this call fails asking for an upgrade, it isn't paid-only from the start.
create_qr_codeCreate a Hovercode QR code and return its details plus a rendered PNG. `dynamic: true` makes the destination changeable later and tracks scans; `dynamic: false` (the default, 'static') encodes the destination directly into the code image — it can never be retargeted or tracked, and this choice can't be changed after creation. When the request doesn't make clear which one someone wants, don't guess: stop and ask this exact question, verbatim, before calling this tool — 'Should this be trackable and editable later, or fixed permanently once printed?' — then wait for the answer. Dynamic codes are included free up to a per-workspace limit (list_workspaces' `dynamic_qr_used`/`dynamic_qr_limit`) — not a paid-only feature; past that limit this call fails asking for an upgrade. Supports full design control (colors, pattern, eye style, frames with captions, logo). Not for Hovercode forms, pages, or short links: those already have their own QR code (returned as `qr_id` / `id`) — use download_qr or update_qr_code with that id instead.
create_qr_codes_bulkCreate many QR codes at once from a list — e.g. 'make codes for these 20 product URLs in our brand colors'. All codes share the design/options you pass (colors, pattern, frame, dynamic, template). Returns the created codes and any per-item errors. Max 100 per call.
create_short_linkCreate a tracked short link for a URL. It comes with its own QR code (same id; use download_qr). Supports a custom slug and a custom domain. The destination can be changed later with update_short_link, and clicks are tracked. Never shorten a link that is already a Hovercode short link, form link, or page link — those are already tracked and already have a QR code.
delete_folderdestructiveDelete a folder. The codes in it (and in its subfolders) are NOT deleted — they become unfiled — and its subfolders move up to its parent.
delete_pagedestructiveDelete a landing page. Its live URL stops serving and it leaves the workspace's page list. Use for 'delete that page' / 'remove the landing page'.
delete_qr_codedestructiveDelete a QR code. Dynamic codes stop redirecting after deletion.
delete_short_linkdestructiveDelete a short link. It stops redirecting after deletion.
download_qrread-onlyGet downloadable, print-ready image links for a QR code — a high-resolution PNG and a vector SVG (best for print/large sizes). Returns URLs you can share or save.
get_analyticsread-onlyScan analytics over a period: totals, unique scanners, scans-by-day, and top countries/cities/OS/browsers. Pass a QR code `id` for one code, or omit it for the whole workspace (which also returns the top codes). Use this to answer 'how did my codes do this month and where were people scanning?'.
get_formread-onlyGet one form's details: status, response count, share link, and QR.
get_form_responsesread-onlyList a form's submissions (newest first) so you can read or summarize them — e.g. 'summarize this week's feedback' or 'any complaints in the responses?'.
get_pageread-onlyGet one landing page's details: status, live URL, QR, and its blocks (each block's id + type) so you can edit it with update_page.
get_qr_activityread-onlyList recent scan events for a dynamic QR code (time, location, device). Use this to answer questions like where or when a code was scanned.
get_qr_coderead-onlyGet one QR code's details and scan analytics (total and unique scans), plus a rendered PNG.
get_short_linkread-onlyGet one short link's details, destination, click counts, and QR.
get_short_link_activityread-onlyList recent click events for a short link (time, location, device).
list_block_typesread-onlyList the page BLOCK TYPES available to build_page, each with its content JSON Schema. Call this first when composing a rich page so you know the vocabulary (header, link, text, image, button, video, gallery, faq, countdown, socials, divider, form, …).
list_foldersread-onlyList the workspace's folders with their full path, code count, id and slug. Use a folder's id or slug with create_qr_code / update_qr_code (`folder`) to file codes, or with list_qr_codes to filter.
list_formsread-onlyList the forms in a workspace, newest first. Optional `query` searches by title.
list_pagesread-onlyList the landing pages in a workspace, newest first.
list_qr_codesread-onlyList QR codes in a workspace, newest first. Optional `query` searches destination, name, and tags. `folder` narrows to one folder, `include_tags` adds each code's tags (its folder is always shown), and `include_scans` adds scan counts — use it instead of calling get_analytics once per code.
list_short_linksread-onlyList short links in a workspace, newest first. Optional `query` searches URL, name, and slug.
list_tagsread-onlyList the workspace's tags (title + id). Tags are attached with create_qr_code (`tags`) or update_qr_code (`add_tags` / `remove_tags`), and list_qr_codes searches by tag.
list_templatesread-onlyList the workspace's saved QR design templates. Pass a template id to create_qr_code to reuse its branding.
list_workspacesread-onlyList the workspaces this account can access, with their ids; the current (default) one is marked. Tools default to the current workspace, so you only need `workspace` to target a different one.
set_workspaceSwitch the current (default) workspace by id or name. New codes, forms, and pages are created in the current workspace unless a tool is given an explicit `workspace`.
update_folderdestructiveRename a folder and/or move it under another folder. `parent` 'none' moves it to the top level. Codes inside keep their filing.
update_formdestructiveChange an existing form without recreating it: edit its fields, settings (redirect, thank-you, title), or branding (theme/colors/logo), or close/reopen it. If you pass `fields`, provide the COMPLETE desired list — include each existing field's `id` (from get_form) to keep it; omit a field to remove it; leave `id` off a new field. If the form is already published, edits are re-published so they go live.
update_pagedestructiveChange an existing landing page without recreating it: edit its blocks, title, description, or colors, and publish/unpublish it. Use for 'fix the typo on my page', 'add a section', or 'take the page down'. If you pass `blocks`, provide the COMPLETE desired list (same {type, content} shape as build_page; include each block's `id` from get_page to keep it, omit to remove) — leaving `blocks` off keeps the existing blocks untouched. If the page is already published, edits are re-published so they go live; pass publish:false to take it offline.
update_qr_codedestructiveUpdate a QR code in place — the same code keeps working, so it's safe for already-printed codes. Changing `qr_data` retargets a DYNAMIC code's destination. Design fields (colors, pattern, eye style, frame, logo) restyle the code WITHOUT replacing it. Also supports renaming, toggling location tracking, moving it into a folder (`folder`, or 'none' to unfile), and adding/removing tags. Returns the re-rendered QR so you can preview the result. Any combination works in one call. Only include a design field when you actually intend to change it: every one you pass is applied exactly as given, even a color identical to what you set at creation — there's no way to tell 'leave this as-is' from 'set this back to what it already was'. In particular, someone may have since edited the design directly (a widget's own Edit panel can change eye/frame color, pattern, or frame without that edit ever appearing in this conversation) — resending a color or style you remember from an earlier turn will silently overwrite it. If you're not sure the design still matches what you last set, call get_qr_code first rather than restoring from memory.
update_short_linkdestructiveUpdate a short link. Changing `link` retargets it — the short URL keeps working, it just points somewhere new. Also supports renaming and toggling location tracking.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.hovercode/mcp",
  "title": "Hovercode",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://hovercode.com/mcp/",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.1",
  "packages": [
    {
      "version": "1.0.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "hovercode-mcp",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "HOVERCODE_API_TOKEN",
          "isSecret": true,
          "description": "Optional. Hovercode API token (https://hovercode.com/api/) to skip the OAuth browser flow."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/Hovercode-Ltd/hovercode-mcp",
    "source": "github"
  },
  "websiteUrl": "https://hovercode.com/integrations/mcp/",
  "description": "Create and manage QR codes, short links, landing pages, and forms in your Hovercode workspace."
}