{"name":"stamp","title":"StampSend","description":"Upload a file, get a link, see who opened it, page by page.","url":"https://api.stampsend.com/mcp","transport":"streamable-http","auth":{"type":"bearer","keysUrl":"https://app.stampsend.com/settings/api-keys","docs":"https://stampsend.com/agents.md"},"tools":[{"name":"list_documents","description":"One library, most recent upload first unless sort says otherwise: a team's (the caller's documents in it and their teammates' that were not kept back) or the caller's own. Without orgId, the team the API key was made on, else the caller's default team, else their own library. Each document carries lastOpenedAt: when it was last opened (ISO), or null when nobody has opened it yet. Each document carries openedByCount: how many different people other than its owner opened it, the viewers its Who opened it panel lists; 0 is the library's \"Not opened\". total is how many documents the library holds, however many the limit returned. Archived documents are left out unless showArchived is true; each then carries its archivedAt. Each document carries tags: its team's labels, A to Z (always empty in the caller's own library). tag narrows a team's library to the documents carrying that tag, case ignored; matched counts them. Each document carries starredAt: when the caller starred it in this library, or null (the caller's own stars, never a teammate's); starredCount counts them. starred only lists just the starred ones, oldest star first (the Starred section at the top of the library); starred exclude lists the rest in the chosen sort. notOpened true lists just the documents sent to someone through Share that nobody but their owner has opened yet, never an archived one; matched counts them, and notOpenedCount counts them in the whole library before tag and starred."},{"name":"get_document","description":"One document with its link, settings and view stats. viewCount is the \"Viewed N times\" beside its title: opens of the share page by anyone but the owner. uploadedAt is the \"Uploaded Sep 30\" under it: when the first upload completed, null before then. canManage says whether the caller may rename it and change its settings. tags are its team's labels, A to Z (none in the caller's own library). starredAt is when the caller starred it, or null. expiresAt and opensLeft are when the link stops: a date, and opens left before it stops (null for no limit, 0 used up)."},{"name":"get_document_analytics","description":"Who opened a document, which pages, for how long. Owner or team admin only."},{"name":"get_document_last_open","description":"The most recent open: when, and the viewer's email on a team plan when they gave it. Null when nobody has opened it. On the free plan the email is always null. Owner or team admin only."},{"name":"create_document_link","description":"The public link for an existing document, on the web origin. Uploading a file is done through the web app or the REST API."},{"name":"set_document_visibility","description":"One of public, signedIn, team, invited, private. \"private\" means just you, not your team's admins."},{"name":"set_document_note","description":"Plain text, up to 280 characters, shown above the document to every viewer who gets past the gate. Changes the live link; null or empty removes it."},{"name":"set_document_password","description":"Anyone opening the link types it before they see the document or its title; you and your team are never asked. 4 to 32 characters. A new one replaces the old, and everyone who got past the old one is asked again. Null or empty removes it. Only a hash is kept, so the password cannot be read back: tell your viewers yourself."},{"name":"set_document_custom_address","description":"The link also opens at <web origin>/<team slug>/<slug>, alongside the token link, which keeps working. Lowercase letters, numbers and hyphens, 3 to 60 characters, not a page of the app (login, logout, api, r, d, settings, admin, documents, library, sign-in, sign-up, new, spaces, requests, team, account, invite, assets, static, v1, help), and not already used by another link in the same team. Only a document in a team can have one. A new one replaces the old, which stops opening and is free again. Null or empty removes it. Who may open the link, its password, gate, expiry and kill apply at the custom address exactly as at the token link."},{"name":"set_document_expiry","description":"A date, a number of opens, or both, as the Expiry section of the document page sets them. Past the date, or once the opens are used, the link answers that it has expired, at the custom address too. opensLeft is \"stop after N more opens\", counted from now, 1 to 100000: opens, not people, so a reload is an open; the owner opening their own link is not. Null clears either one; an omitted one stays as it is. A link stopped by its opens comes back when given more, or none. The answer carries opensLeft and expiresAt. Owner or team admin only."},{"name":"archive_document","description":"Archived, a document leaves the library list (list_documents with showArchived lists it again) and its link tells anyone opening it that it is no longer available: no page, no title, no download. Its views and pages stay. archived false brings it back, and only that: a link that was killed or has expired stays that way, and every setting is as it was. Owner or team admin only."},{"name":"tag_document","description":"Add or remove a team's tags on one of its documents, as the document page does. The team's tags are shared: everyone in it sees the same ones. A tag is up to 32 characters; case is ignored, so Board and board are one tag, spelled as it was first typed. Up to 20 on a document. Only a document in a team carries tags. Answers the document's tags after. Owner or team admin only."},{"name":"star_document","description":"Star a document the caller can see in a library, as the star on its row and its page does, or take the star off. A star is the caller's own: it puts the document in the Starred section at the top of their library and nobody else's. Starring a starred document, or unstarring one that is not, changes nothing. Answers starredAt after: when it was starred, or null."},{"name":"get_open_alerts","description":"The caller's default for open alert emails (first: the first open by each viewer, at most once a day per viewer per document; every: every open; off) and the alerts already emailed to them, newest first, up to 50 at a time. Pass the returned next as before for the page after."},{"name":"set_open_alerts","description":"Change the caller's default for open alert emails (first, every, off), or mute or unmute one document they manage. A muted document sends no open alerts whatever the default."},{"name":"list_document_sends","description":"Every address a document was sent to, one row each, with match: opened (openCount, openedAt), not_opened, or unknown. unknown means some opens carry no address because the email gate was off, so it cannot be told; turn on \"Ask who they are\" (emailGate ask or require) to know. Also every reminder with its time, and whether remind_document_recipient would be refused (remindBlocked). Owner or team admin only."},{"name":"remind_document_recipient","description":"Mails the same link again to one address it was sent to, from your name, with an optional note. Refused once they opened it, when it cannot be told whether they did, within a day of the last mail to them, and after 3 reminders."},{"name":"set_document_auto_remind","description":"One reminder, this many days (1 to 30) after a send, to each address that has not opened it and has had no reminder. Never to an address whose opens cannot be matched. Null turns it off, which is the default."}]}