Vivere
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Know when cron jobs and AI agents stop running: create monitors and check in from your agent.
| Author | dev.vivere |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2587 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Vivere": {
"url": "https://vivere.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (37)
list_pagesread-onlyList the pages this account can see: its own, then pages other accounts share with it, each with the access it has there (owner, editor or viewer) and how many monitors are on it and down.
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_monitorsread-onlyList the monitors on every page this account can see, or on one page, with status, page and access. Monitors on a page shared to view have no id; address them by page_id and slug.
Parameters:
page_id— integer — Only this page (from list_pages)
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_monitorread-onlyGet one monitor by id, including its ping URL for heartbeat monitors, or by page_id and slug, which also works on a page shared to view.
Parameters:
id— string — Monitor id, for monitors this account owns or editsslug— string — Monitor slug, with page_idpage_id— integer — Page id, with slug
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_monitorCreate a heartbeat monitor (default) or an HTTP check on the account's first page or on page_id, which may be a page shared with this account as editor. Returns the monitor and, for heartbeats, the ping URL to call after each run.
Parameters:
name(required) — string — Human name, e.g. 'nightly report agent'url— string — HTTP check: the public URL to request.cron— string — Heartbeat alternative to period: five-field cron expression, e.g. '0 2 * * *'.kind— string — heartbeat (the job pings us) or http (we request a URL)tags— string — Optional space-separated tags.grace— string — Heartbeat: how late a check-in may be before alerting, e.g. 15m. Default 15m.period— string — Heartbeat: expected time between successful check-ins, e.g. 30m, 1h, 1d. Default 1h.page_id— integer — Page to put it on (from list_pages). Default: the account's first page.interval— string — HTTP check: how often to request it, e.g. 5m.timezone— string — IANA timezone for the cron expression, e.g. Asia/Seoul. Default UTC.
Hints: read-only no · destructive no · idempotent no · open-world no
check_inReport on a heartbeat monitor: 'success' after a completed run (resets the deadline), 'start' when a run begins, 'fail' when it failed. Include a short message; it is kept as the run log.
Parameters:
monitor_id(required) — string — Monitor id (the last path segment of the ping URL)items— integer — Optional: how many items the run handled (tickets, rows, emails)model— string — Optional: the model the run used, e.g. claude-sonnet-4-5status— string — Default successmessage— string — Optional summary or error text to store with the runcost_usd— number — Optional: what the run cost in US dollars, e.g. 0.042input_tokens— integer — Optional: input tokens the run usedoutput_tokens— integer — Optional: output tokens the run usedcache_read_tokens— integer — Optional: cache read input tokenscache_write_tokens— integer — Optional: cache creation input tokens
Hints: read-only no · destructive no · idempotent no · open-world no
pause_monitorPause a monitor so it stops alerting until resumed or pinged again.
Parameters:
id(required) — string — Monitor id
Hints: read-only no · destructive no · idempotent yes · open-world no
resume_monitorResume a paused monitor.
Parameters:
id(required) — string — Monitor id
Hints: read-only no · destructive no · idempotent yes · open-world no
get_accountread-onlyWhich account this key belongs to, its plan's limits and what it uses of them, and what this key may do: its permission on each resource (none, read or write) and the pages it is limited to, if any.
Hints: read-only yes · destructive no · idempotent yes · open-world no
update_monitorChange a monitor. Only the fields given change; its kind cannot. Setting cron switches a heartbeat to a cron schedule and setting period switches it back. Only the page's owner can move it, with page_id, to another of their own pages.
Parameters:
id(required) — string — Monitor idurl— string — HTTP check URLcron— string — Five-field cron expression; empty switches back to periodname— string — New nametags— string — Space-separated tagsgrace— string — Heartbeat grace, e.g. 15mmethod— string — GET, HEAD or POSTperiod— string — Heartbeat period, e.g. 1hpublic— boolean — Show it on the page's public status pagekeyword— string — Text the response must containpage_id— integer — Move it to this page (owner only)timeout— integer — Seconds, 1 to 60channels— array — Alert channel ids (from list_channels); replaces the ones you can seeinterval— string — HTTP check interval, e.g. 5mtimezone— string — IANA timezone for crondescription— string — Notescost_alert_usd— number — Alert when one run costs more than this; 0 turns it offfail_threshold— integer — Failed checks in a row before it is down, 1 to 10expected_status— integer — HTTP status to expect; 0 accepts any 2xx or 3xx
Hints: read-only no · destructive no · idempotent yes · open-world no
delete_monitordestructiveDelete a monitor and all its history. This cannot be undone; pause_monitor stops alerts without losing anything.
Parameters:
id(required) — string — Monitor id
Hints: read-only no · destructive yes · idempotent yes · open-world no
list_runsread-onlyA heartbeat monitor's newest runs with their outcome, duration, exit code and any model, tokens and cost they reported, plus what its runs cost over 30 days.
Parameters:
id(required) — string — Monitor idlimit— integer — How many, 1 to 200; default 50
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_runread-onlyOne run with the output it sent (the log), where it came from and what it cost.
Parameters:
run_id(required) — integer — Run id, from list_runs
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_monitor_eventsread-onlyOne monitor's status changes (up, down, late, paused), newest first.
Parameters:
id(required) — string — Monitor idlimit— integer — How many, 1 to 200; default 50
Hints: read-only yes · destructive no · idempotent yes · open-world no
list_eventsread-onlyStatus changes across the account's own monitors, newest first.
Parameters:
limit— integer — How many, 1 to 200; default 50
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_pageread-onlyOne page: its public address, monitors and, on your own pages, who it is shared with and as what.
Parameters:
page_id(required) — integer — Page id
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_pageAdd a page to group monitors under, within the plan's pages. Its slug is its public address, made from the title when not given.
Parameters:
title(required) — string — Page titleslug— string — Lowercase letters, digits and dashes
Hints: read-only no · destructive no · idempotent no · open-world no
update_pageRename one of your pages or change its slug, which moves its public address.
Parameters:
page_id(required) — integer — Page idslug— string — New slugtitle— string — New title
Hints: read-only no · destructive no · idempotent yes · open-world no
delete_pagedestructiveDelete one of your pages. Only an empty page that is not your first can go.
Parameters:
page_id(required) — integer — Page id
Hints: read-only no · destructive yes · idempotent yes · open-world no
make_page_privateTurn off Public on every monitor on one of your pages, which takes its public status page down.
Parameters:
page_id(required) — integer — Page id
Hints: read-only no · destructive no · idempotent yes · open-world no
share_pageShare one of your pages with the account of a person who has a Vivere login (email) or with one of your teams (team_id), as viewer or editor, or change the role they have. Needs a paid plan, a free seat for anybody new, and the Team plan for teams.
Parameters:
page_id(required) — integer — Page idrole(required) — string — viewer sees status and history; editor can also add, change and delete monitors and route their alertsemail— string — The person's login emailteam_id— integer — Or a team id, from list_teams
Hints: read-only no · destructive no · idempotent yes · open-world no
unshare_pageStop sharing one of your pages with an account (account_id, from get_page) or a team (team_id). Their alert channels come off its monitors.
Parameters:
page_id(required) — integer — Page idteam_id— integer — Or the teamaccount_id— integer — The account to stop sharing with
Hints: read-only no · destructive no · idempotent yes · open-world no
list_teamsread-onlyYour teams, with how many members and pages each has.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_teamread-onlyOne team: its members and the pages shared with it.
Parameters:
team_id(required) — integer — Team id
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_teamMake a team, on the Team plan.
Parameters:
name(required) — string — Team name
Hints: read-only no · destructive no · idempotent no · open-world no
rename_teamRename a team.
Parameters:
team_id(required) — integer — Team idname(required) — string — New name
Hints: read-only no · destructive no · idempotent yes · open-world no
delete_teamdestructiveDelete a team. Its members lose the pages it gave them.
Parameters:
team_id(required) — integer — Team id
Hints: read-only no · destructive yes · idempotent yes · open-world no
add_team_memberAdd the account of a person with a Vivere login to a team. Joining a team that has pages takes a seat.
Parameters:
team_id(required) — integer — Team idemail(required) — string — Their login email
Hints: read-only no · destructive no · idempotent yes · open-world no
remove_team_memberTake an account out of a team.
Parameters:
team_id(required) — integer — Team idaccount_id(required) — integer — The member's account id, from get_team
Hints: read-only no · destructive no · idempotent yes · open-world no
list_channelsread-onlyYour alert channels. Secret settings are never shown; secrets_set names the ones that have a value.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_channelAdd an alert channel. Settings by kind: email {to}; webhook {url, secret}; slack {url}; discord {url}; telegram {token, chat_id}; ntfy {url, token}. Slack, Discord, Telegram and ntfy need a paid plan.
Parameters:
kind(required) — stringname(required) — string — Channel nameconfig(required) — object — The kind's settings
Hints: read-only no · destructive no · idempotent no · open-world no
update_channelRename a channel or change its settings. Settings left out keep their value.
Parameters:
channel_id(required) — integer — Channel idname— string — New nameconfig— object
Hints: read-only no · destructive no · idempotent yes · open-world no
delete_channeldestructiveDelete an alert channel. Monitors stop sending alerts to it.
Parameters:
channel_id(required) — integer — Channel id
Hints: read-only no · destructive yes · idempotent yes · open-world no
test_channelSend a test alert to a channel.
Parameters:
channel_id(required) — integer — Channel id
Hints: read-only no · destructive no · idempotent no · open-world no
list_pixelsread-onlyYour tracking pixels, with the tag to paste and how often each has loaded.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_pixelread-onlyOne pixel and its newest loads: when, from which page, browser, language and platform.
Parameters:
pixel_id(required) — string — Pixel idlimit— integer — How many loads, 1 to 200; default 50
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_pixelMake a tracking pixel, within the plan's pixels. Returns the <img> tag to paste into a page or an email.
Parameters:
name(required) — string — Pixel name
Hints: read-only no · destructive no · idempotent no · open-world no
delete_pixeldestructiveDelete a pixel and every load it recorded.
Parameters:
pixel_id(required) — string — Pixel id
Hints: read-only no · destructive yes · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.