Connection check
auth required
stevysmith-publish
Publish HTML to private, unguessable, replace-in-place URLs from any MCP-compatible AI agent.
Tools
17
GitHub stars
—
Installs / wk
339
Licence
—
Transport
streamable-http, stdio
Last checked
27h ago
Tools & capabilities
17 toolsRead from the published package source — this server runs locally, so there is no endpoint to query. Names are taken from the code, not observed at runtime, and descriptions are often absent.
claim_site
from source
create_share_link
from source
Mint a share link addressed to one person. Put their name in label and every open through that link comes back attributed to it, in the dashboard and in the read-receipt email. The… Mint a share link addressed to one person. Put their name in label and every open through that link comes back attributed to it, in the dashboard and in the read-receipt email. The link skips the page passcode and can be revoked on its own. One per recipient after publish_html; for a whole mail-merge append ?to={{name}} to the page URL instead.
delete_site
from source
get_content
from source
Read a page\ Read a page\
get_me
from source
list_client_spaces
from source
List the client spaces on this account: slug, name, page_count, last activity, hostname (the space’s own address, e.g. acme.theiragency.com, when one is connected) and portal_enabl… List the client spaces on this account: slug, name, page_count, last activity, hostname (the space’s own address, e.g. acme.theiragency.com, when one is connected) and portal_enabled (whether the space serves a generated client portal at that address). Spaces group published pages per client (
list_share_links
from source
Share links on a page with attributed opens and last-opened time. opens counts human page opens through that link; use_count is the raw max_uses counter, not a read metric. opens i… Share links on a page with attributed opens and last-opened time. opens counts human page opens through that link; use_count is the raw max_uses counter, not a read metric. opens is null on a plan without viewer numbers.
list_sites
from source
List sites owned by this API key. Viewer numbers are plan-gated: when metrics_locked is true, view_count, unique_viewers and last_viewed_at are null and only the boolean opened is… List sites owned by this API key. Viewer numbers are plan-gated: when metrics_locked is true, view_count, unique_viewers and last_viewed_at are null and only the boolean opened is meaningful. Report
publish_html
from source
Turn HTML into a link a person can open in a browser. Reach for this whenever a page you produced has to be seen by someone who is not in this conversation — a client, a teammate,… Turn HTML into a link a person can open in a browser. Reach for this whenever a page you produced has to be seen by someone who is not in this conversation — a client, a teammate, a reviewer, a channel — or when the user says
restore_site
from source
revoke_share_link
from source
Kill one share link. The page and every other link keep working — cut off one recipient without re-issuing to the rest. Kill one share link. The page and every other link keep working — cut off one recipient without re-issuing to the rest.
set_agentation
from source
Toggle the on-page Agentation feedback toolbar. When on, viewer annotations are collected — read them with list_feedback, fix the page with update_site, then resolve_feedback. Toggle the on-page Agentation feedback toolbar. When on, viewer annotations are collected — read them with list_feedback, fix the page with update_site, then resolve_feedback.
set_email_gate
from source
Restrict viewer access to a specific email domain (strict-equal match). Viewers must verify via a one-time magic link. Mutually exclusive with set_password. Pass domain: null to cl… Restrict viewer access to a specific email domain (strict-equal match). Viewers must verify via a one-time magic link. Mutually exclusive with set_password. Pass domain: null to clear. Email gates are a paid feature: on a free key, setting one returns 402 plan_viewer_gate_not_available.
set_expiry
from source
Set hours-from-now expiry, or null for never. The value is clamped to the plan ceiling rather than refused, so on a free key null and any value above 168 both land at 7 days from n… Set hours-from-now expiry, or null for never. The value is clamped to the plan ceiling rather than refused, so on a free key null and any value above 168 both land at 7 days from now. Check expires_at in the response.
set_password
from source
Set or clear (null) a passcode on a site. Works on every plan, free keys included. Clearing one always works. Set or clear (null) a passcode on a site. Works on every plan, free keys included. Clearing one always works.
stacktree
from source
update_site
from source