Put It Online
Server Details
Publish AI-made web pages and share files as short links from any MCP client.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- kitsunde/putit-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
10 toolscreate_upload_sessionGet an upload URL for a large fileInspect
For 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".
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Custom link name (3-40 letters, digits, dashes); available on plans with custom names. | |
| filename | Yes | Name of the file that will be uploaded, including extension. | |
| password | No | Visitors must enter this password to open the link; available on plans with password protection. | |
| size_bytes | No | Expected size, checked against your plan limit up front. |
Output Schema
| Name | Required | Description |
|---|---|---|
| curl | Yes | Ready-to-run command for the user. |
| link | Yes | |
| method | Yes | |
| headers | Yes | |
| max_bytes | Yes | |
| expires_at | Yes | |
| upload_url | Yes | One-time URL: PUT the raw file bytes here (no auth header needed). |
| complete_url | No | When present: POST here (no body) after the PUT finishes. The curl command already does it. |
delete_linkDelete a linkDestructiveIdempotentInspect
Permanently delete a link and its files. Account owners can delete their links; anonymous callers need the manage_token. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works). | |
| manage_token | No | Secret manage token returned when the link was created (lets anonymous callers manage it). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | Yes | |
| deleted | Yes |
extendExtend a linkInspect
Restart 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
get_accountGet my planRead-onlyIdempotentInspect
The connected account's plan, permanent-link slots used/available, size limit and features.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | Yes | |
| Yes | ||
| features | Yes | |
| plan_name | Yes | |
| subscribed | Yes | |
| total_links | Yes | |
| upgrade_url | Yes | |
| dashboard_url | Yes | |
| free_link_days | Yes | |
| permanent_links | Yes | |
| max_upload_bytes | Yes |
get_linkGet link statusRead-onlyIdempotentInspect
Status 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works). | |
| manage_token | No | Secret manage token returned when the link was created (lets anonymous callers manage it). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
list_linksList my linksRead-onlyIdempotentInspect
List the links in the connected Put It Online account (newest first, permanent first). Requires a connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | Yes | |
| total | Yes | |
| next_offset | Yes |
make_permanentKeep a link online permanentlyIdempotentInspect
Turn 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
publish_sitePublish a web page or siteInspect
Put a web page or small static site you created online instantly. Pass {"files": {"index.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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Custom link name (3-40 letters, digits, dashes); available on plans with custom names. | |
| files | Yes | Map of path -> text content, e.g. {"index.html": "<!doctype html>…", "style.css": "body{…}"}. Must include index.html. | |
| title | No | Name for the site (shown in the dashboard). | |
| password | No | Visitors must enter this password to open the link; available on plans with password protection. | |
| base64_files | No | Optional map of path -> base64 content for binary assets such as images. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
set_passwordSet or remove a link passwordIdempotentInspect
Protect 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The link name, e.g. "k3x9pq" (a full https://putit.online/<name> URL also works). | |
| password | Yes | New password, or null to remove protection. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
upload_fileUpload a fileInspect
Put 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 and expires_at; anonymous callers also get a manage_token. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Custom link name (3-40 letters, digits, dashes); available on plans with custom names. | |
| content | Yes | File content: plain text, or base64 when encoding is "base64" (use base64 for any binary file). | |
| encoding | No | How `content` is encoded. | text |
| filename | Yes | File name including extension, e.g. "report.pdf" or "index.html". The extension decides how the link renders. | |
| password | No | Visitors must enter this password to open the link; available on plans with password protection. | |
| mime_type | No | Optional MIME type; used to add a missing file extension. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The public link to share. |
| kind | Yes | html | site | file | bundle | pending |
| slug | Yes | |
| title | Yes | |
| views | Yes | View count; null when the link's account plan has no view counts, or the link has no account. |
| status | Yes | checking = not live yet (poll get_link); live = shareable; unpublished = not published; publishing = will be live soon (poll get_link); in_review = not available right now; removed = removed by moderation (see removed_reason, appeal_url). |
| permanent | Yes | |
| appeal_url | No | Only with status removed: mailto link to appeal to abuse@putit.online. |
| created_at | Yes | |
| expires_at | Yes | ISO time the link stops working; null for permanent links. |
| file_count | Yes | |
| manage_url | No | Private page to manage/delete the link. Only returned on creation; keep it secret. |
| size_bytes | Yes | |
| checkout_url | No | Only with status unpublished: the page where the uploader can publish this link. |
| manage_token | No | Secret token for get_link/delete_link without an account. Only returned on creation. |
| removed_reason | No | Only with status removed: why, in plain words. |
| status_message | Yes | |
| removed_category | No | Only with status removed: the moderation category (malware, phishing, explicit, …); null when not disclosed. |
| password_protected | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- First observed
create_upload_session - First observed
delete_link - First observed
extend - First observed
get_account - First observed
get_link - First observed
list_links - First observed
make_permanent - First observed
publish_site - First observed
set_password - First observed
upload_file
Related MCP Connectors
Publish AI-generated HTML & Markdown to a hosted, shareable URL via MCP.
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
Publish HTML, files, or a URL to a permanent public URL, then update it — from any MCP agent.
Related MCP Servers
AlicenseAqualityAmaintenancePublish content (HTML, files, or URLs) and get a permanent public URL from any MCP-compatible agent, with local and remote connection options.29244 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to publish live, stateful HTML pages over MCP, providing shareable URLs, per-viewer data, and version history.MIT
- AlicenseNot gradedqualityAmaintenanceEnables coding agents to publish HTML pages and small sites over MCP, returning a stable link and keeping every version, with access limited to specific people, an organization, or anyone with the link.AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI chat clients to publish markdown content to an mdshare service and retrieve previously published pastes via MCP tools, without manual file uploads or curl requests.53 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.