Put It Online
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Publish AI-made web pages and share files as short links from any MCP client.
| Author | online.putit |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 4595 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Put It Online": {
"url": "https://putit.online/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
upload_filePut a file online and get a short public link. Pass text directly, or base64 with encoding="base64" for binary files (images, PDFs, zips). An .html file becomes a web page; a .zip containing index.html becomes a website. Returns the URL, expires_at and a manage_token (shown once; anonymous callers need it to check or delete the link). Status may be "checking"/"publishing" (call get_link before sharing) or "unpublished" (not published). Limit 20 MB inline; use create_upload_session for bigger files.
Parameters:
filename(required) — string — File name including extension, e.g. "report.pdf" or "index.html". The extension decides how the link renders.content(required) — string — File content: plain text, or base64 when encoding is "base64" (use base64 for any binary file).slug— string — Custom link name (3-40 letters, digits, dashes); available on plans with custom names.encoding— string — How `content` is encoded.password— string — Visitors must enter this password to open the link; available on plans with password protection.mime_type— string — Optional MIME type; used to add a missing file extension.
Hints: read-only no · destructive no · idempotent no · open-world yes
create_upload_sessionFor files too large to send inline: reserves a link and returns a one-time upload_url. PUT the raw bytes there (e.g. give the user the returned curl command), then poll get_link with the slug (and manage_token) until status is "live".
Parameters:
filename(required) — string — Name of the file that will be uploaded, including extension.slug— string — Custom link name (3-40 letters, digits, dashes); available on plans with custom names.password— string — Visitors must enter this password to open the link; available on plans with password protection.size_bytes— integer — Expected size, checked against your plan limit up front.
Hints: read-only no · destructive no · idempotent no · open-world yes
publish_sitePut a web page or small static site you created online instantly. Pass {"files": {"index.html": "<!doctype html>…", "style.css": "…", "app.js": "…"}} (paths relative to the site root; index.html required). Images can go in base64_files. Returns the public URL. Pages are served sandboxed on their own link.
Parameters:
files(required) — object — Map of path -> text content, e.g. {"index.html": "<!doctype html>…", "style.css": "body{…}"}. Must include index.html.slug— string — Custom link name (3-40 letters, digits, dashes); available on plans with custom names.title— string — Name for the site (shown in the dashboard).password— string — Visitors must enter this password to open the link; available on plans with password protection.base64_files— object — Optional map of path -> base64 content for binary assets such as images.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_linkread-onlyStatus of a link: live, checking, publishing, unpublished, in_review, removed (by moderation: removed_reason + appeal_url), expired or awaiting_upload; plus expiry, size and views (null when the account’s plan has no view counts). Anonymous callers pass the manage_token they got on creation.
Parameters:
slug(required) — string — The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works).manage_token— string — Secret manage token returned when the link was created (lets anonymous callers manage it).
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
list_linksread-onlyList the links in the connected Put It Online account (newest first, permanent first). Requires a connected account.
Parameters:
limit— integeroffset— integer
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
delete_linkdestructivePermanently delete a link and its files. Account owners can delete their links; anonymous callers need the manage_token. This cannot be undone.
Parameters:
slug(required) — string — The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works).manage_token— string — Secret manage token returned when the link was created (lets anonymous callers manage it).
Hints: read-only no · destructive yes · idempotent yes · open-world no
set_passwordProtect a link with a password (visitors must enter it), or pass null to remove it. Requires a connected account whose plan includes passwords; otherwise returns a subscription_required error.
Parameters:
slug(required) — string — The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works).password(required) — New password, or null to remove protection.
Hints: read-only no · destructive no · idempotent yes · open-world no
make_permanentTurn an expiring link into a permanent one (uses one of the plan's permanent slots; see get_account). Requires a connected account whose plan includes permanent links.
Parameters:
slug(required) — string — The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works).
Hints: read-only no · destructive no · idempotent yes · open-world no
extendRestart an expiring link's expiry clock (also brings back a recently expired link). Permanent links are unaffected. Requires a connected account whose plan includes extending.
Parameters:
slug(required) — string — The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works).
Hints: read-only no · destructive no · idempotent no · open-world no
get_accountread-onlyThe connected account's plan, permanent-link slots used/available, size limit and features.
Hints: read-only yes · destructive not declared · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.