[Docs](https://linkinseconds.com/docs)AI agents and MCP

# MCP tools reference

Inputs, outputs and examples for upload_file, create_upload_url, finish_upload, list_links, get_link_analytics and get_account_analytics.

Six tools, all acting as the owner of the API key: four to publish and list files, two to read analytics. Every result has a short text answer for the assistant to show you, plus `structuredContent` with the same data as JSON. Failures come back as a tool error with a plain-English message (for example a plan limit), not as a protocol error.

## upload_file

Publish a file sent in the call itself and return its public link. Up to 3 MB.

Arguments

`filename`stringrequired

Name with extension, e.g. `report.pdf` or `index.html`. Not a path.

`content`string

The file as UTF-8 text (HTML, Markdown, CSV, SVG, JSON…). Send this or content_base64.

`content_base64`string

The file as base64 (PDF, images, ZIP…). Send this or content.

`content_type`string

MIME type. Optional: guessed from the extension.

`title`string

Link title shown on the page. Defaults to the file name.

Call

```
{
  "name": "upload_file",
  "arguments": {
    "filename": "summary.html",
    "content": "<!doctype html><h1>Q3 summary</h1>…",
    "title": "Q3 summary"
  }
}
```

Result

```
{
  "content": [{ "type": "text", "text": "Published: https://lisview.com/q3-summary" }],
  "structuredContent": {
    "slug": "q3-summary",
    "title": "Q3 summary",
    "url": "https://lisview.com/q3-summary"
  }
}
```

If the file is held by the safety scan, the text says it is being reviewed and `structuredContent.review` is `true`.

## create_upload_url

Start an upload for a file too big to send inline. Returns a short-lived URL, valid for 10 minutes, that accepts exactly `size_bytes` bytes.

Arguments

`filename`stringrequired

Name with extension.

`size_bytes`integerrequired

Exact size in bytes.

`content_type`string

MIME type. Optional: guessed from the extension.

structuredContent

```
{
  "path": "6f1c…/a1b2c3d4.mp4",
  "upload_url": "https://…",
  "method": "PUT",
  "headers": { "Content-Type": "video/mp4" }
}
```

The text result includes a ready-to-run command for the assistant:

Shell

```
curl -X PUT -H "Content-Type: video/mp4" --data-binary @demo.mp4 "UPLOAD_URL"
```

## finish_upload

Call after the PUT. Checks and scans the file, then returns the link, the same way as upload_file.

Arguments

`path`stringrequired

The path from create_upload_url.

`filename`stringrequired

The same file name.

`content_type`string

The same content type used for the PUT.

`title`string

Link title.

## list_links

Read-only. Lists the account's links, newest first.

Arguments

`limit`integer

1 to 100, default `20`.

Text result

```
- Q3 summary: https://lisview.com/q3-summary (live)
- Brand guidelines: https://lisview.com/brand-guidelines-a (live)
```

`structuredContent.links` has the same fields as [GET /api/v1/links](https://linkinseconds.com/docs/api/links).

## get_link_analytics

Read-only. How one link performed over a UTC window: views, unique visitors, time on the file, how far readers got (pages for a PDF, watch-through for video and audio, scroll depth for pages), countries, devices, traffic sources and the busiest hour. The text result is a short summary the assistant can read out; `structuredContent` is the full report, the same JSON as [GET /api/v1/links/{slug}/analytics](https://linkinseconds.com/docs/api/analytics).

Arguments

`slug`stringrequired

The link's slug (the last part of its address) or its full URL, e.g. `https://lisview.com/q3-summary`.

`range`string

`7d`, `14d`, `30d`, `90d` or `all`. Default `30d`. UTC days.

Call

```
{
  "name": "get_link_analytics",
  "arguments": { "slug": "https://lisview.com/q3-summary", "range": "30d" }
}
```

Text result

```
Q3 summary (https://lisview.com/q3-summary)
Last 30 days: 128 views (+41% vs the previous 30 days), 96 unique visitors.
Average time 1m 42s, median 1m 1s. 22% left within 5 seconds.
Readers reached 58% of the 12-page document on average; 23% read to the last page. Page 3 held attention longest (41s).
Top countries: India 54%, United States 21%.
62% on mobile, mostly Safari on iOS.
Traffic: Direct 70%, Referral 23%, QR scan 7%; top referrer linkedin.com.
Busiest: Tuesday 14:00 UTC.
12 downloads all-time; 19% had opened it before.
Period: 2026-09-05 to 2026-10-05 (UTC, end exclusive).
```

`structuredContent` has a `link` object (`slug`, `title`, `url`, `kind`) followed by every field of the report: `range`, `totals`, `deltas`, `series`, `breakdowns`, `timing`, `content`, `insights` and `recent`.

## get_account_analytics

Read-only. The whole account over a UTC window, with the top links named in the text and listed in `structuredContent.top_links` (up to 25). Same shape as [GET /api/v1/analytics](https://linkinseconds.com/docs/api/analytics).

Arguments

`range`string

Same values as above. Default `30d`.

Call

```
{ "name": "get_account_analytics", "arguments": { "range": "7d" } }
```

Text result

```
Across 42 links
Last 7 days: 412 views (+8% vs the previous 7 days), 301 unique visitors.
Average time 1m 4s, median 38s. 30% left within 5 seconds.
Top countries: India 48%, United States 26%, Germany 9%.
57% on mobile, mostly Chrome on Android.
Traffic: Direct 66%, Referral 24%, QR scan 10%; top referrer x.com.
Busiest: Wednesday 10:00 UTC.
58 downloads all-time; 14% had opened it before.
Top links: Q3 summary (128 views), Brand guidelines (77 views), Launch video (51 views).
Period: 2026-09-28 to 2026-10-05 (UTC, end exclusive).
```

On a Free account

Both analytics tools return the full report on every plan, Free included.

What the tools can't do

They can't change link settings, delete links, or create albums and websites. That keeps a mistaken or tricked assistant from breaking links you have already shared. Do those in the dashboard.

**Annotations:** `list_links`, `get_link_analytics` and `get_account_analytics` are marked read-only and idempotent; the upload tools are marked as non-destructive writes that reach the open web, so careful clients ask you before running them.

[PreviousOther clients](https://linkinseconds.com/docs/mcp/other-clients)[Next Agent discovery](https://linkinseconds.com/docs/agents)

Last updated 4 October 2026. Something unclear or missing? [Tell us](https://linkinseconds.com/contact).

Source: https://linkinseconds.com/docs/mcp/tools
