Link in Seconds

Upload a file and get a shareable link. List your links and see their view stats.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,089Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (0.85% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://linkinseconds.com/api/mcp"
    }
  }
}

Remote endpoints

https://linkinseconds.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡upload_file(filename, content, content_base64, content_type, title, ...)

Publish a file and get a public Link in Seconds URL that opens in any browser (no sign-in for the viewer). 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.

Input Schema

{
  "type": "object",
  "properties": {
    "filename": {
      "type": "string",
      "description": "File name with extension, e.g. report.pdf or index.html."
    },
    "content": {
      "type": "string",
      "description": "The file content as UTF-8 text. Use this OR content_base64."
    },
    "content_base64": {
      "type": "string",
      "description": "The file content, base64-encoded. Use this OR content."
    },
    "content_type": {
      "type": "string",
      "description": "MIME type. Optional: guessed from the extension."
    },
    "title": {
      "type": "string",
      "description": "Optional link title shown on the page."
    },
    "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."
    }
  },
  "required": [
    "filename"
  ],
  "additionalProperties": false
}
🟡create_upload_url(filename, size_bytes, content_type)

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.

Input Schema

{
  "type": "object",
  "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."
    }
  },
  "required": [
    "filename",
    "size_bytes"
  ],
  "additionalProperties": false
}
🟡finish_upload(path, filename, content_type, title, slug)

Call after PUTting the file to the URL from create_upload_url. Checks and scans the file, then returns its public link.

Input Schema

{
  "type": "object",
  "properties": {
    "path": {
      "type": "string",
      "description": "The path returned by create_upload_url."
    },
    "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."
    },
    "title": {
      "type": "string",
      "description": "Optional link title shown on the page."
    },
    "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."
    }
  },
  "required": [
    "path",
    "filename"
  ],
  "additionalProperties": false
}
🟢list_links(limit)

List the links on this Link in Seconds account, newest first, with their URLs and status.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "How many to return (default 20)."
    }
  },
  "additionalProperties": false
}
🟢get_link_analytics(slug, range)

Read-only. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "The link's slug (the last part of its address), or its full URL."
    },
    "range": {
      "type": "string",
      "enum": [
        "7d",
        "14d",
        "30d",
        "90d",
        "all"
      ],
      "description": "Time window, UTC days: 7d, 14d, 30d (default), 90d or all."
    }
  },
  "required": [
    "slug"
  ],
  "additionalProperties": false
}
🟢get_account_analytics(range)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "range": {
      "type": "string",
      "enum": [
        "7d",
        "14d",
        "30d",
        "90d",
        "all"
      ],
      "description": "Time window, UTC days: 7d, 14d, 30d (default), 90d or all."
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools