# Monitoring tools

> Monitors that repeat other tools' calls on a schedule and report what changed: mentions, posts, pages, ads, rankings and AI answers. The tools are free; checks pay for their calls.

Make and read [monitors](https://www.manifoldmcp.com/docs/monitors): checks Manifold repeats on a schedule, keeping what each one saw so the next can say what changed. These tools are free. Each check charges for the calls it makes, at their usual prices, and [`monitoring_create_monitor`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_create_monitor) with `preview` true returns the monthly estimate before anything is made. For what each kind of monitor is for, see the [monitor pages](https://www.manifoldmcp.com/monitors).

| Tool | What it does | Cost |
| --- | --- | --- |
| [`monitoring_create_monitor`](#monitoring_create_monitor) | Create a monitor | Free |
| [`monitoring_get_monitors`](#monitoring_get_monitors) | List your monitors | Free |
| [`monitoring_get_changes`](#monitoring_get_changes) | Get what monitors found | Free |
| [`monitoring_get_history`](#monitoring_get_history) | Get a monitor's history | Free |
| [`monitoring_update_monitor`](#monitoring_update_monitor) | Change or pause a monitor | Free |
| [`monitoring_delete_monitor`](#monitoring_delete_monitor) | Delete a monitor | Free |

## `monitoring_create_monitor`: Create a monitor

Sets up a monitor: a check Manifold repeats on a schedule, keeping each result so it can report what changed. Urgent changes reach the user as an email alert. Show the monthly cost from preview first, then create it once the user agrees. Give it a description saying why the user wants it, so an agent reading its changes later knows what to do with them.

**Use when:** "monitor this every week", "keep an eye on X", "tell me when Y changes", "check Z every hour", or the user ran the same check by hand before and wants it repeated.

**Not for:** a one-off look, call the tool itself ([`reddit_search_posts`](https://www.manifoldmcp.com/docs/tools/reddit#reddit_search_posts), [`seo_get_page`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_page), [`seo_get_position`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_position), [`ads_get_advertiser_ads`](https://www.manifoldmcp.com/docs/tools/ads#ads_get_advertiser_ads)). Reading what a monitor found, use [`monitoring_get_changes`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_changes).

**Returns:** Record. monitor (`monitor_id`, name, description, preset, status, cadence, fields, `est_credits_check`, `est_credits_month`, `next_check_at`), created (false on preview). The first check runs within five minutes and records a starting point; changes are reported from the second check on. Fields by preset: mentions {keywords (up to 10), platforms (reddit, linkedin, instagram, tiktok, youtube; default reddit), communities (Reddit, every new post read in full), pages (1 to 3 per community per check)}, where Instagram searches each keyword as one hashtag ("acme crm" reads #acmecrm), so use a keyword people tag; `social_accounts` {accounts [{platform (twitter, linkedin, instagram, tiktok, youtube, facebook), account (handle, or URL for facebook and linkedin)}] (1 to 10)}; reviews {items [{source `app_store` or `google_play`, `app_id`} or {source `google_maps`, `place_id` or cid} or {source `google_shopping`, `product_id`, gid}] (1 to 5), stars, location}; `website_changes` {pages (1 to 10 URLs), mode (`new_items`: new links under the page and prices; `any_change`: new text), words}; ads {brands (1 to 5, a website works best), platforms (facebook, google, linkedin, tiktok)}; `google_rankings` {site, keywords (1 to 50), location}; `ai_visibility` {brand, aliases (other names for the brand, up to 5), domain (the brand's site, for citation share), questions (1 to 25; ones that name the brand are counted apart), competitors (up to 9), engines, samples (1 to 3), location, language}. cadence is hourly, daily or weekly; checks repeat from the first one. A bad field is InvalidTarget naming it.

**Cost:** 0 credits to create. Each check charges for the calls it makes at their own prices, shown as `est_credits_check` and `est_credits_month`. Monitor checks read live data, never the cache.

| Parameter | Default and notes |
| --- | --- |
| `preset` | Required. One of `mentions`, `social_accounts`, `reviews`, `website_changes`, `ads`, `google_rankings`, `ai_visibility`. What to watch; the description lists each preset's fields. |
| `fields` | Required. The preset's fields, as the description lists them. |
| `name` | Default: made from the fields. |
| `description` | Why the user wants it and what to do with a change, in a sentence or two, so whoever reads its changes later knows. Default: a line made from the fields. |
| `cadence` | Default hourly for mentions and `social_accounts`, daily for reviews, `website_changes` and ads, weekly for `google_rankings` and `ai_visibility`. |
| `preview` | Default `false`. Return the monitor and its monthly cost without creating it. |

```json
{
  "preset": "mentions",
  "fields": {
    "keywords": [
      "acme crm"
    ],
    "platforms": [
      "reddit",
      "linkedin"
    ]
  },
  "description": "Threads asking for a CRM, to answer while they are fresh.",
  "preview": true
}
```

## `monitoring_get_monitors`: List your monitors

The workspace's monitors, with their schedule, cost and how many changes are new.

**Use when:** "what am I monitoring", "which monitors do we have", before changing or deleting one, or to find a `monitor_id`.

**Not for:** the changes themselves, use [`monitoring_get_changes`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_changes). A monitor's numbers over time, use [`monitoring_get_history`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_history).

**Returns:** List. `rows[]`: `monitor_id`, name, description (what it is for, as its maker wrote it), preset, status (active or paused), `paused_reason` (user, credits or `spend_cap`), cadence (hourly, daily or weekly), fields, `est_credits_check`, `est_credits_month`, `credits_this_month`, `new_changes` (since the workspace last opened it), headline (the last check's main number) and `headline_label`, warnings (where the last check read less than it should), `next_check_at`, `last_check_at`, `made_in` (the host or app that made it).

**Cost:** 0 credits.

```json
{}
```

## `monitoring_get_changes`: Get what monitors found

What the workspace's monitors found: new mentions and spikes in them, new posts and posts taking off, reviews, new jobs, prices and text on watched pages, ads that start and stop and a brand's first ads, ranking moves, and moves, new citations and new brands in AI answers, oldest first from since.

**Use when:** "what changed this week", "anything new from my monitors", "what did the mentions monitor find", or to follow up on a monitor email.

**Not for:** a fresh look right now, call the underlying tool. The numbers over time, use [`monitoring_get_history`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_history).

**Returns:** List, oldest first. `rows[]`: `change_id`, `monitor_id`, `monitor_name`, kind, urgent (sent as an alert), summary, url, quote (the post, review or page text; cleared after 30 days), before, after, details (author, likes, comments, views, platform where known; cleared after 30 days), `found_at`. `next_since` is the value to pass as since next time; dedupe on `change_id`. More rows than limit come back with meta.cursor.

**Cost:** 0 credits.

| Parameter | Default and notes |
| --- | --- |
| `monitor_id` | One monitor. Default: every monitor. |
| `since` | ISO 8601. Default seven days ago. Pass `next_since` from the last call. |
| `limit` | Default `50`. At most 200. |

Also takes `cursor`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters).

```json
{
  "since": "2026-10-13T00:00:00Z"
}
```

## `monitoring_get_history`: Get a monitor's history

One monitor's checks over time: its main number each check, the breakdown and what each check cost.

**Use when:** "is our AI visibility going up", "how many new threads a week", "show the trend", or to explain a change against earlier checks.

**Not for:** the individual changes, use [`monitoring_get_changes`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_changes). The list of monitors, use [`monitoring_get_monitors`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_monitors).

**Returns:** List, newest first. `rows[]`: `check_id`, `checked_at`, status (done or failed), baseline (the first check, a starting point), headline, series (`ai_visibility`: the brand's share per engine, all (the mean of the engines), margin (its 95% margin), cited and cited:<engine> (answers linking the brand's site), sov (share of voice), branded (share on prompts that name the brand), answered:<engine> (prompts the engine answered), and brand:<name> per competitor; mentions: new posts per platform; `website_changes`: changes per site; `google_rankings`: ranked, top10 and kw:<keyword> positions), warnings (where the check read less than it should; an empty search is not one), changes, credits, error.

**Cost:** 0 credits.

| Parameter | Default and notes |
| --- | --- |
| `monitor_id` | Required. From [`monitoring_get_monitors`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_monitors). |
| `limit` | Default `12`. Checks, newest first. At most 100. |

```json
{
  "monitor_id": "trk_01J..."
}
```

## `monitoring_update_monitor`: Change or pause a monitor

Pauses, resumes, renames, describes or reschedules a monitor, changes what it checks, or runs a check now.

**Use when:** "pause the Reddit monitor", "check daily instead", "run it now", "call it Rivals", "add r/startups to it", or a monitor paused for credits after the user added more.

**Not for:** changing its preset; create a new monitor. Deleting, use [`monitoring_delete_monitor`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_delete_monitor).

**Returns:** Record. monitor, as [`monitoring_get_monitors`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_monitors) returns it. New fields replace all the old ones; the next check runs within five minutes as a new starting point and reports no changes.

**Cost:** 0 credits. A check run now charges its calls as a scheduled one would.

| Parameter | Default and notes |
| --- | --- |
| `monitor_id` | Required. From [`monitoring_get_monitors`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_monitors). |
| `status` | Paused stops its checks; active resumes them. |
| `name` | Optional |
| `description` | Replaces the description; empty puts back the line made from the fields. |
| `cadence` | One of `hourly`, `daily`, `weekly`. |
| `fields` | All of the preset's fields, as [`monitoring_create_monitor`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_create_monitor) takes them. The next check is a new starting point. |
| `run_now` | Default `false`. Run a check within five minutes. |

```json
{
  "monitor_id": "trk_01J...",
  "status": "paused"
}
```

## `monitoring_delete_monitor`: Delete a monitor

Deletes a monitor with its history and changes. It cannot be undone.

**Use when:** the user asks to stop and remove a monitor, not just pause it.

**Not for:** stopping it for a while, use [`monitoring_update_monitor`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_update_monitor) with status paused, which keeps the history.

**Returns:** Record. `monitor_id`, deleted.

**Cost:** 0 credits.

| Parameter | Default and notes |
| --- | --- |
| `monitor_id` | Required. From [`monitoring_get_monitors`](https://www.manifoldmcp.com/docs/tools/monitoring#monitoring_get_monitors). |

```json
{
  "monitor_id": "trk_01J..."
}
```

