Upload a file and get a shareable link. List your links and see their view stats.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Your API key from linkinseconds.com/dashboard/api-keys, written as: Bearer lis_...
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
For files too big to send inline: returns a short-lived upload URL (valid 10 minutes). PUT the raw file bytes to it with the given Content-Type header (for example with curl), then call finish_upload with the returned path. Per-file limit: 250 MB on the Free plan, 500 MB on Pro and Lifetime. A bigger file is refused, so tell the user it is over the limit instead of asking for it. Programs and scripts (.exe, .msi, .dmg, .apk, .app, .bat, .sh, .jar, .dll and similar) are always blocked: say so and do not try to upload them.
File name with extension.
Exact file size in bytes.
MIME type. Optional: guessed from the extension.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
For files too big to send inline: returns a short-lived upload URL (valid 10 minutes). PUT the raw file bytes to it with the given Content-Type header (for example with curl), then call finish_upload with the returned path. Per-file limit: 250 MB on the Free plan, 500 MB on Pro and Lifetime. A bigger file is refused, so tell the user it is over the limit instead of asking for it. Programs and scripts (.exe, .msi, .dmg, .apk, .app, .bat, .sh, .jar, .dll and similar) are always blocked: say so and do not try to upload them.
| Argument | Type | Description |
|---|---|---|
| filename* | string | File name with extension. |
| size_bytes* | integer | Exact file size in bytes. |
| content_type | string | MIME type. Optional: guessed from the extension. |
{
"type": "object",
"required": [
"filename",
"size_bytes"
],
"properties": {
"filename": {
"type": "string",
"description": "File name with extension."
},
"size_bytes": {
"type": "integer",
"minimum": 1,
"description": "Exact file size in bytes."
},
"content_type": {
"type": "string",
"description": "MIME type. Optional: guessed from the extension."
}
},
"additionalProperties": false
}Call after PUTting the file to the URL from create_upload_url. Checks and scans the file, then returns its public link.
| Argument | Type | Description |
|---|---|---|
| path* | string | The path returned by create_upload_url. |
| slug | string | Optional custom link name, the last part of the link address (letters, numbers and dashes). It must be free; reserved words are refused. |
| title | string | Optional link title shown on the page. |
| filename* | string | The same file name passed to create_upload_url. |
| content_type | string | The same content type used for the PUT. Optional. |
{
"type": "object",
"required": [
"path",
"filename"
],
"properties": {
"path": {
"type": "string",
"description": "The path returned by create_upload_url."
},
"slug": {
"type": "string",
"description": "Optional custom link name, the last part of the link address (letters, numbers and dashes). It must be free; reserved words are refused."
},
"title": {
"type": "string",
"description": "Optional link title shown on the page."
},
"filename": {
"type": "string",
"description": "The same file name passed to create_upload_url."
},
"content_type": {
"type": "string",
"description": "The same content type used for the PUT. Optional."
}
},
"additionalProperties": false
}Read-only. The whole account's analytics over a UTC window: views, unique visitors, time on files, countries, devices, traffic sources, busiest hour and the top links.
| Argument | Type | Description |
|---|---|---|
| range | string | Time window, UTC days: 7d, 14d, 30d (default), 90d or all. |
{
"type": "object",
"properties": {
"range": {
"enum": [
"7d",
"14d",
"30d",
"90d",
"all"
],
"type": "string",
"description": "Time window, UTC days: 7d, 14d, 30d (default), 90d or all."
}
},
"additionalProperties": false
}Read-only. Use this when the user asks whether someone opened a link, or how it did. How one of the account's links performed: views, unique visitors, time on the file, how far readers got (pages for PDFs, watch-through for video and audio, scroll depth for pages), countries, devices, traffic sources and the busiest hour, over a UTC window. Pass the slug or the full link URL.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The link's slug (the last part of its address), or its full URL. |
| range | string | Time window, UTC days: 7d, 14d, 30d (default), 90d or all. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The link's slug (the last part of its address), or its full URL."
},
"range": {
"enum": [
"7d",
"14d",
"30d",
"90d",
"all"
],
"type": "string",
"description": "Time window, UTC days: 7d, 14d, 30d (default), 90d or all."
}
},
"additionalProperties": false
}List the links on this Link in Seconds account, newest first, with their URLs and status.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return (default 20). |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many to return (default 20)."
}
},
"additionalProperties": false
}Use this when the user wants to share a file, document, image or HTML page as a link. Publish a file and get a public Link in Seconds URL that opens in any browser (no sign-in for the viewer). If the user attached a file in the chat, pass it in `file` (any size the plan allows). Otherwise pass the file as text in `content` (HTML, Markdown, CSV, SVG, JSON...) or as base64 in `content_base64` (PDF, images, ZIP...), up to 3 MB; for bigger files use create_upload_url. The account's plan limits apply. Per-file limit: 250 MB on the Free plan, 500 MB on Pro and Lifetime. A bigger file is refused, so tell the user it is over the limit instead of asking for it. Programs and scripts (.exe, .msi, .dmg, .apk, .app, .bat, .sh, .jar, .dll and similar) are always blocked: say so and do not try to upload them.
| Argument | Type | Description |
|---|---|---|
| file | object | A file the user attached in ChatGPT. ChatGPT fills this in; do not invent it. |
| slug | string | Optional custom link name, the last part of the link address (letters, numbers and dashes). It must be free; reserved words are refused. |
| title | string | Optional link title shown on the page. |
| content | string | The file content as UTF-8 text. Use this OR content_base64. |
| filename | string | File name with extension, e.g. report.pdf or index.html. Optional with `file` (its own name is used). |
| content_type | string | MIME type. Optional: guessed from the extension. |
| content_base64 |
| string |
| The file content, base64-encoded. Use this OR content. |
{
"type": "object",
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string"
},
"file_name": {
"type": "string"
},
"mime_type": {
"type": "string"
},
"download_url": {
"type": "string"
}
},
"description": "A file the user attached in ChatGPT. ChatGPT fills this in; do not invent it.",
"additionalProperties": false
},
"slug": {
"type": "string",
"description": "Optional custom link name, the last part of the link address (letters, numbers and dashes). It must be free; reserved words are refused."
},
"title": {
"type": "string",
"description": "Optional link title shown on the page."
},
"content": {
"type": "string",
"description": "The file content as UTF-8 text. Use this OR content_base64."
},
"filename": {
"type": "string",
"description": "File name with extension, e.g. report.pdf or index.html. Optional with `file` (its own name is used)."
},
"content_type": {
"type": "string",
"description": "MIME type. Optional: guessed from the extension."
},
"content_base64": {
"type": "string",
"description": "The file content, base64-encoded. Use this OR content."
}
},
"additionalProperties": false
}