The order is enforced by the server, not suggested: publishing and scheduling both refuse without a confirmation token from a preview of identical content.
Publishing cannot be undone
Viralz cannot delete a published LinkedIn post, and publishing is not idempotent — retrying with the same confirmation token posts a second copy. If a publish call times out, check the feed rather than retrying. A scheduled post is cancellable only while it is still pending.
Two groups of tools sit behind an environment flag. A tool on a switched-off track is not hidden — it is absent from tools/list and tools/call answers “Unknown tool”, so a client cannot build a retry around it.
Every tool, with what you give it and what it hands back. Required arguments are marked; everything else is optional. A misspelled argument is refused loudly rather than silently ignored.
How many of these your assistant actually sees depends on what is switched on for your server and which address you connected to. The live numbers for your account are on the Connect screen at /console — this page deliberately prints no total, because a printed number would go stale.
Read only
Returns ok, status: "preview", account (the LinkedIn identity that would receive the post), commentary, visibility, media (a summary of the file), confirmationToken, confirmationExpiresInSeconds: 600, and a warning restating that nothing was posted.
Writes
Returns ok, status: "published", account, postUrn, postUrl (the link to the live post — show it to the user), authorUrn, recoverable: false, plus message, showTheUser and retryGuidance strings that spell out that a retry would double-post.
Writes
Returns ok, status: "scheduled", account, item (the queued row, including its id and scheduled time), and a message naming the cancel tool.
Read only
Takes no arguments.
Returns ok, status: "ok", items — the queue, each entry carrying its id, scheduled time and status.
Writes
Returns ok, status: "cancelled", item — the cancelled row, or item: null with a message when it was already cancelled.
Writes
Takes no arguments.
Returns ok, status: "ok", uploadUrl, uploadTicket, expiresInSeconds: 600, a ready-to-run curl command, and accepts — the type and size ceilings in words.
Read only
Takes no arguments.
Returns product, mission, and the capability list the server builds from its enabled tracks.
Read only
Takes no arguments.
Returns The readme document, including the Claude Design handoff rule and whatever is temporarily switched off.
Read only
Takes no arguments.
Returns ok, status, balance, monthlyAllowance and allowanceNote (the grant does NOT roll over — a period's unused tokens expire), expiresAt, daysUntilExpiry and expiringSoon (true inside the last 7 days with a positive balance, plus an expiryWarning sentence to relay to the user), defaultCost, costs per action, and statement — the last 20 entries. On a server with metering switched off it answers status: "not_metered" rather than a number.
WritesSpends creditsMCP_ENABLE_BRAND_TOOLS
Returns The extracted brand, plus cacheHit and needsRefreshConfirmation. On a cache hit it also returns suggestedQuestion — the question to put to the user before spending a scrape.
Read onlyMCP_ENABLE_BRAND_TOOLS
Returns found: true plus the stored document, or found: false with brands — everything that IS stored — and a note pointing at create_brand_md.
Read onlyMCP_ENABLE_BRAND_TOOLS
Returns The stored brands, newest first, each with its name and website URL.
WritesMCP_ENABLE_BRAND_TOOLS
Returns saved: true plus the stored record.
WritesMCP_ENABLE_BRAND_TOOLS
Returns deleted — true when a stored brand was removed.
Read onlyMCP_ENABLE_BRAND_TOOLS
Returns The template HTML and its per-page guidance, or found: false with the stored brands and a note when there is no brand.md to build from. Viralz does not store the finished design — keep it in the user's project folder.
WritesMCP_ENABLE_BRAND_TOOLS
Returns found: true, websiteUrl, signature (without the photo bytes), hasPhoto, hasCompany, photoSource, identitySource — which path actually ran, free or scraped — and replacedStoredSignatureFor. persisted: false means the identity could not be stored but the material is still usable now.
WritesSpends creditsMCP_ENABLE_BRACKET_RESEARCH
Returns runId, status, accepted, rejected, background: true, and resultTool — the tool to read the answer with.
Read onlyMCP_ENABLE_BRACKET_RESEARCH
Returns ready, status, brackets, ladder — or ready: false with the current stage while the run is still working, and a note pointing at research_linkedin_urls when there is no run at all.