---
schema: "interfacedelta-service-md/1"
target_key: "sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e"
origin: "https://proofite.com"
protocols: ["mcp"]
observed_at: "2026-11-12T11:07:42.384Z"
generated_at: "2026-11-13T00:52:40.371Z"
record_url: "https://interfacedelta.com/atlas/sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e"
record_api: "https://interfacedelta.com/api/v1/record/services/sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e"
source: "InterfaceDelta atlas"
license_note: "Use of this record is governed by https://interfacedelta.com/terms."
---

# Service record: https://proofite.com

## Identity
- Origin: https://proofite.com
- Endpoints: https://proofite.com/mcp
- Protocols: mcp
- Registry names: com.proofite/proofite
- First retained observation: 2026-11-12T11:07:42.384Z
- Latest observation: 2026-11-12T11:07:42.384Z

## Tools
- Tool 1: add\_feed (mcp); inputs: source\_id, url; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 2: add\_proposed\_source (mcp); inputs: report\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 3: add\_web\_search (mcp); inputs: kind, query, source\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 4: cancel\_deep\_dive (mcp); inputs: deep\_dive\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 5: configure\_insert (mcp); inputs: config, enabled, insert, level; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 6: correct\_briefing (mcp); inputs: briefing\_id, entry\_id, note; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 7: create\_source (mcp); inputs: description, name; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 8: delete\_source (mcp); inputs: source\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 9: discover\_sources (mcp); inputs: description, source\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":true}
- Tool 10: generate\_briefing (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 11: generate\_podcast\_episode (mcp); inputs: briefing\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 12: get\_account (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 13: get\_briefing (mcp); inputs: briefing\_id, include\_markdown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 14: get\_episode\_transcript (mcp); inputs: briefing\_id, episode\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 15: get\_information\_diet (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 16: get\_insert (mcp); inputs: insert; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 17: get\_page\_help (mcp); inputs: path; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 18: get\_podcast\_episode (mcp); inputs: briefing\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 19: get\_source (mcp); inputs: source\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 20: import\_opml (mcp); inputs: dry\_run, limit, opml, source\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 21: list\_briefings (mcp); inputs: limit, offset; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 22: list\_deep\_dives (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 23: list\_features (mcp); inputs: family; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 24: list\_inserts (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 25: list\_missing\_reports (mcp); inputs: briefing\_id; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 26: list\_read\_later (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 27: list\_saved (mcp); inputs: limit, query; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 28: list\_sources (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 29: rate\_briefing\_entry (mcp); inputs: briefing\_id, entry\_id, signal, topics, withdraw; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 30: rate\_insert (mcp); inputs: comment, insert, stars; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 31: remove\_feed (mcp); inputs: feed\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 32: remove\_web\_search (mcp); inputs: search\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 33: report\_missing\_story (mcp); inputs: briefing\_id, text; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}
- Tool 34: request\_deep\_dive (mcp); inputs: query; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 35: resume\_podcast (mcp); inputs: none shown; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 36: save\_entry (mcp); inputs: briefing\_id, entry\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 37: save\_for\_later (mcp); inputs: text, title, url; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}
- Tool 38: search\_briefings (mcp); inputs: limit, query; inputs omitted: 0; annotations: {"readOnlyHint":true,"openWorldHint":false}
- Tool 39: set\_learned\_profile (mcp); inputs: mode, text; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}
- Tool 40: share\_briefing (mcp); inputs: briefing\_id, podcast; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 41: tune\_topic (mcp); inputs: action, topic, topics; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}
- Tool 42: unfollow\_story (mcp); inputs: story\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 43: unsave\_entry (mcp); inputs: briefing\_id, entry\_id, saved\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 44: unshare\_briefing (mcp); inputs: briefing\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false}
- Tool 45: unsubscribe\_newsletter (mcp); inputs: newsletter\_id; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}
- Tool 46: update\_information\_diet (mcp); inputs: avoid, brevi\_spiegate, chicca\_enabled, depth, digest\_days, digest\_enabled, digest\_length, digest\_time; inputs omitted: 15; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
- Tool 47: update\_source (mcp); inputs: description, include\_in\_digest, is\_active, name, priority, source\_id, technicality; inputs omitted: 0; annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}
Tools omitted: 0.

## Effect readings (AI)
- Tool 1 purpose: ◇ AI reading; Adds an RSS/Atom feed or podcast to a topic inbox, with new podcast episodes transcribed into the briefing.; lens: tool-purpose-v1; model: not recorded.
- Tool 2 (add\_proposed\_source): ◇ AI reading; state: counted; creates (confidence 0.81); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 2 purpose: ◇ AI reading; Adds a feed proposed by an earlier missing-story report to the reader's inbox; repeat calls report that it was already added.; lens: tool-purpose-v1; model: not recorded.
- Tool 3 (add\_web\_search): ◇ AI reading; state: counted; creates (confidence 0.81); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 3 purpose: ◇ AI reading; Creates a daily standing search over Google news or the web, routing matching results to a topic inbox.; lens: tool-purpose-v1; model: not recorded.
- Tool 4 (cancel\_deep\_dive): ◇ AI reading; state: counted; deletes (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 5 (configure\_insert): ◇ AI reading; state: counted; updates (confidence 0.895); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 5 purpose: ◇ AI reading; Changes one briefing insert's on/off state, AI level and settings, applied from the following briefing.; lens: tool-purpose-v1; model: not recorded.
- Tool 6 (correct\_briefing): ◇ AI reading; state: counted; updates (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 6 purpose: ◇ AI reading; Updates your news briefing's topic preferences and settings from a plain-language note, and can pin one story to follow.; lens: tool-purpose-v1; model: not recorded.
- Tool 7 (create\_source): ◇ AI reading; state: counted; creates (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 7 purpose: ◇ AI reading; Creates a themed topic inbox with its own email address for newsletters, plus space for RSS feeds and web searches.; lens: tool-purpose-v1; model: not recorded.
- Tool 8 (delete\_source): ◇ AI reading; state: counted; deletes (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 8 purpose: ◇ AI reading; Deletes a topic inbox with its feeds, searches and gathered content for good, and its email address stops working.; lens: tool-purpose-v1; model: not recorded.
- Tool 9 (discover\_sources): ◇ AI reading; state: counted; reads (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 9 purpose: ◇ AI reading; Returns checked RSS feeds, web searches and newsletters for a described subject; adds nothing to your monitoring.; lens: tool-purpose-v1; model: not recorded.
- Tool 10 purpose: ◇ AI reading; Starts generating a briefing now from collected data, ready a few minutes later; incurs paid AI usage costs.; lens: tool-purpose-v1; model: not recorded.
- Tool 11 purpose: ◇ AI reading; Starts generating a podcast episode for a briefing, which takes a few minutes and costs AI money, and lifts any automatic pause.; lens: tool-purpose-v1; model: not recorded.
- Tool 12 (get\_account): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 12 purpose: ◇ AI reading; Reports the account's plan, whether a briefing is running, next briefing time, source and story counts, and monthly AI spend.; lens: tool-purpose-v1; model: not recorded.
- Tool 13 (get\_briefing): ◇ AI reading; state: counted; reads (confidence 0.88); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 14 (get\_episode\_transcript): ◇ AI reading; state: counted; reads (confidence 0.93); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 14 purpose: ◇ AI reading; Fetches the word-for-word transcript of a podcast episode, defaulting to the latest one unless an episode or briefing ID is given.; lens: tool-purpose-v1; model: not recorded.
- Tool 15 (get\_information\_diet): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 15 purpose: ◇ AI reading; Returns the full news filter profile: delivery schedule, style, podcast settings, interests, and learned topic preferences.; lens: tool-purpose-v1; model: not recorded.
- Tool 16 (get\_insert): ◇ AI reading; state: counted; reads (confidence 0.94); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 16 purpose: ◇ AI reading; Returns details, settings and your current status for one optional briefing insert, to explain it or prepare configuration.; lens: tool-purpose-v1; model: not recorded.
- Tool 17 (get\_page\_help): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 17 purpose: ◇ AI reading; Shows what a Proofite app screen is, which actions it offers, and the current state of its features for the user.; lens: tool-purpose-v1; model: not recorded.
- Tool 18 (get\_podcast\_episode): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 18 purpose: ◇ AI reading; Returns the latest audio episode made from a briefing, with a playable link, a private feed and sourced show notes.; lens: tool-purpose-v1; model: not recorded.
- Tool 19 (get\_source): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 19 purpose: ◇ AI reading; Shows one topic inbox's RSS feeds with their status and last fetch time, plus its monitored searches, X accounts and incoming newsletters.; lens: tool-purpose-v1; model: not recorded.
- Tool 20 (import\_opml): ◇ AI reading; state: counted; creates (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 20 purpose: ◇ AI reading; Adds RSS subscriptions from pasted OPML file contents to your reader; a dry run only previews them without changes.; lens: tool-purpose-v1; model: not recorded.
- Tool 21 (list\_briefings): ◇ AI reading; state: counted; reads (confidence 0.87); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 21 purpose: ◇ AI reading; Lists your past daily briefings newest first, with each date, title, story total and whether an episode was produced.; lens: tool-purpose-v1; model: not recorded.
- Tool 22 (list\_deep\_dives): ◇ AI reading; state: counted; reads (confidence 0.85); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 22 purpose: ◇ AI reading; Lists pending topics users asked the briefing to research on the web, without changing any requests.; lens: tool-purpose-v1; model: not recorded.
- Tool 23 (list\_features): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 23 purpose: ◇ AI reading; Lists the app's features by family, showing each one's status on this account and where it lives in the app.; lens: tool-purpose-v1; model: not recorded.
- Tool 24 (list\_inserts): ◇ AI reading; state: counted; reads (confidence 0.902); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 24 purpose: ◇ AI reading; Lists the optional add-on pages for the daily briefing, with each one's on/off status, settings, required fields and AI levels.; lens: tool-purpose-v1; model: not recorded.
- Tool 25 (list\_missing\_reports): ◇ AI reading; state: counted; reads (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 25 purpose: ◇ AI reading; Lists missing-story investigations from a briefing: verdicts, explanations, signals, and any proposed source, defaulting to the latest.; lens: tool-purpose-v1; model: not recorded.
- Tool 26 (list\_read\_later): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 26 purpose: ◇ AI reading; Lists saved links and forwarded emails queued for the next briefing, plus stories snoozed until a later date.; lens: tool-purpose-v1; model: not recorded.
- Tool 27 (list\_saved): ◇ AI reading; state: counted; reads (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 27 purpose: ◇ AI reading; Lists stories the user has saved from their briefings, newest first, with an optional keyword search.; lens: tool-purpose-v1; model: not recorded.
- Tool 28 (list\_sources): ◇ AI reading; state: counted; reads (confidence 0.881); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 28 purpose: ◇ AI reading; Lists the briefing's sources, such as newsletter inboxes, RSS feeds and web searches, with recent output, priority and inclusion.; lens: tool-purpose-v1; model: not recorded.
- Tool 29 (rate\_briefing\_entry): ◇ AI reading; state: counted; updates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 29 purpose: ◇ AI reading; Updates briefing preferences by recording a more, less, follow or mute signal on one story, optionally limited to chosen topics.; lens: tool-purpose-v1; model: not recorded.
- Tool 30 purpose: ◇ AI reading; Adds a 1-5 star rating and/or comment on one briefing insert for the team, then returns that insert's current average rating.; lens: tool-purpose-v1; model: not recorded.
- Tool 31 purpose: ◇ AI reading; Removes a feed subscription from a topic inbox, while keeping content already collected.; lens: tool-purpose-v1; model: not recorded.
- Tool 32 purpose: ◇ AI reading; Stops a standing web search so no new results reach the briefing, while results already collected are kept.; lens: tool-purpose-v1; model: not recorded.
- Tool 33 purpose: ◇ AI reading; Reports why a missed story was absent from the briefing, and may follow related topics or queue a deep-dive for the next one.; lens: tool-purpose-v1; model: not recorded.
- Tool 34 purpose: ◇ AI reading; Adds a queued request for the next briefing to run fresh web research on a topic and include a sourced dossier.; lens: tool-purpose-v1; model: not recorded.
- Tool 35 purpose: ◇ AI reading; Updates the podcast to lift its inactivity pause so a new episode is produced every morning starting tomorrow.; lens: tool-purpose-v1; model: not recorded.
- Tool 36 (save\_entry): ◇ AI reading; state: counted; creates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 36 purpose: ◇ AI reading; Adds a story from a briefing to the reading list as a snapshot that remains after the source briefing is removed.; lens: tool-purpose-v1; model: not recorded.
- Tool 37 (save\_for\_later): ◇ AI reading; state: counted; creates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 37 purpose: ◇ AI reading; Adds a link or note to the read-later queue, fetching and storing the page text so it can be summarized in a later briefing.; lens: tool-purpose-v1; model: not recorded.
- Tool 38 (search\_briefings): ◇ AI reading; state: counted; reads (confidence 0.92); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 38 purpose: ◇ AI reading; Returns past daily briefings whose titles or story text contain a given word or phrase, newest first.; lens: tool-purpose-v1; model: not recorded.
- Tool 39 (set\_learned\_profile): ◇ AI reading; state: counted; updates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 39 purpose: ◇ AI reading; Updates the stored profile of the user's work and interests used by the briefing, either appending text or overwriting it.; lens: tool-purpose-v1; model: not recorded.
- Tool 40 (share\_briefing): ◇ AI reading; state: counted; creates (confidence 0.8); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 40 purpose: ◇ AI reading; Creates or returns a public read-only link to a briefing without personal notes or name, optionally including the podcast.; lens: tool-purpose-v1; model: not recorded.
- Tool 41 (tune\_topic): ◇ AI reading; state: counted; updates (confidence 0.84); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 41 purpose: ◇ AI reading; Updates how a topic or label combination appears in future briefings, such as its depth, frequency, or whether it is muted or followed.; lens: tool-purpose-v1; model: not recorded.
- Tool 43 purpose: ◇ AI reading; Removes a saved story from the reading list, identified by its saved ID or by its briefing and entry IDs.; lens: tool-purpose-v1; model: not recorded.
- Tool 44 purpose: ◇ AI reading; Stops public access to a briefing's shared page and audio immediately, by revoking its public link.; lens: tool-purpose-v1; model: not recorded.
- Tool 45 purpose: ◇ AI reading; Stops a newsletter subscription via one-click unsubscribe, or returns a link a person must open when that isn't supported.; lens: tool-purpose-v1; model: not recorded.
- Tool 46 (update\_information\_diet): ◇ AI reading; state: counted; updates (confidence 0.88); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 47 (update\_source): ◇ AI reading; state: counted; updates (confidence 0.9); lens: side-effects@1; model: claude-haiku-5.5.
- Tool 47 purpose: ◇ AI reading; Updates a topic inbox's name, description, briefing priority, technicality level, digest inclusion or pause state.; lens: tool-purpose-v1; model: not recorded.

## Change history
No changes recorded in the retained history.

## Payment rails
- Protocols observed: none.
- HTTP 402 seen in retained observations: false.

## Not covered
- We don't call tools.
- We don't rate or certify.
- We don't publish prices.
- We cover only what was observed.

## Evidence
- Identity: observed / declared; observation time: 2026-11-12T11:07:42.384Z.
- Tools: declared; observation time: 2026-11-12T11:07:42.384Z.
- Effect readings (AI): AI reading; observation time: 2026-11-12T11:07:42.384Z.
- Change history: observed; observation time: 2026-11-12T11:07:42.384Z; change observation times: none.
- Payment rails: observed; observation time: 2026-11-12T11:07:42.384Z.

```json
{
  "schema": "interfacedelta-service-md/1",
  "target_key": "sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e",
  "origin": "https://proofite.com",
  "protocols": [
    "mcp"
  ],
  "observed_at": "2026-11-12T11:07:42.384Z",
  "generated_at": "2026-11-13T00:52:40.371Z",
  "record_url": "https://interfacedelta.com/atlas/sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e",
  "record_api": "https://interfacedelta.com/api/v1/record/services/sha256:52bdf4ecca45bce22b6b2f86b76c5ef4ca1a9f3e2c2fa95daef4e3b7538e4e5e",
  "source": "InterfaceDelta atlas",
  "license_note": "Use of this record is governed by https://interfacedelta.com/terms.",
  "identity": {
    "origin": "https://proofite.com",
    "endpoints": [
      "https://proofite.com/mcp"
    ],
    "protocols": [
      "mcp"
    ],
    "registry_names": [
      "com.proofite/proofite"
    ],
    "first_retained_observation": "2026-11-12T11:07:42.384Z",
    "latest_observation": "2026-11-12T11:07:42.384Z"
  },
  "tools": [
    {
      "name": "add_feed",
      "protocol": "mcp",
      "inputs": [
        "source_id",
        "url"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds an RSS/Atom feed or podcast to a topic inbox, with new podcast episodes transcribed into the briefing.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "add_proposed_source",
      "protocol": "mcp",
      "inputs": [
        "report_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.81
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds a feed proposed by an earlier missing-story report to the reader's inbox; repeat calls report that it was already added.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "add_web_search",
      "protocol": "mcp",
      "inputs": [
        "kind",
        "query",
        "source_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.81
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Creates a daily standing search over Google news or the web, routing matching results to a topic inbox.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "cancel_deep_dive",
      "protocol": "mcp",
      "inputs": [
        "deep_dive_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "deletes",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "configure_insert",
      "protocol": "mcp",
      "inputs": [
        "config",
        "enabled",
        "insert",
        "level"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.895
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Changes one briefing insert's on/off state, AI level and settings, applied from the following briefing.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "correct_briefing",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "entry_id",
        "note"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates your news briefing's topic preferences and settings from a plain-language note, and can pin one story to follow.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "create_source",
      "protocol": "mcp",
      "inputs": [
        "description",
        "name"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Creates a themed topic inbox with its own email address for newsletters, plus space for RSS feeds and web searches.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "delete_source",
      "protocol": "mcp",
      "inputs": [
        "source_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "deletes",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Deletes a topic inbox with its feeds, searches and gathered content for good, and its email address stops working.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "discover_sources",
      "protocol": "mcp",
      "inputs": [
        "description",
        "source_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns checked RSS feeds, web searches and newsletters for a described subject; adds nothing to your monitoring.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "generate_briefing",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Starts generating a briefing now from collected data, ready a few minutes later; incurs paid AI usage costs.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "generate_podcast_episode",
      "protocol": "mcp",
      "inputs": [
        "briefing_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Starts generating a podcast episode for a briefing, which takes a few minutes and costs AI money, and lifts any automatic pause.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_account",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Reports the account's plan, whether a briefing is running, next briefing time, source and story counts, and monthly AI spend.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_briefing",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "include_markdown"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.88
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "get_episode_transcript",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "episode_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.93
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Fetches the word-for-word transcript of a podcast episode, defaulting to the latest one unless an episode or briefing ID is given.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_information_diet",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns the full news filter profile: delivery schedule, style, podcast settings, interests, and learned topic preferences.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_insert",
      "protocol": "mcp",
      "inputs": [
        "insert"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.94
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns details, settings and your current status for one optional briefing insert, to explain it or prepare configuration.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_page_help",
      "protocol": "mcp",
      "inputs": [
        "path"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Shows what a Proofite app screen is, which actions it offers, and the current state of its features for the user.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_podcast_episode",
      "protocol": "mcp",
      "inputs": [
        "briefing_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns the latest audio episode made from a briefing, with a playable link, a private feed and sourced show notes.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "get_source",
      "protocol": "mcp",
      "inputs": [
        "source_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Shows one topic inbox's RSS feeds with their status and last fetch time, plus its monitored searches, X accounts and incoming newsletters.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "import_opml",
      "protocol": "mcp",
      "inputs": [
        "dry_run",
        "limit",
        "opml",
        "source_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds RSS subscriptions from pasted OPML file contents to your reader; a dry run only previews them without changes.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_briefings",
      "protocol": "mcp",
      "inputs": [
        "limit",
        "offset"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.87
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists your past daily briefings newest first, with each date, title, story total and whether an episode was produced.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_deep_dives",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.85
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists pending topics users asked the briefing to research on the web, without changing any requests.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_features",
      "protocol": "mcp",
      "inputs": [
        "family"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists the app's features by family, showing each one's status on this account and where it lives in the app.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_inserts",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.902
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists the optional add-on pages for the daily briefing, with each one's on/off status, settings, required fields and AI levels.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_missing_reports",
      "protocol": "mcp",
      "inputs": [
        "briefing_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists missing-story investigations from a briefing: verdicts, explanations, signals, and any proposed source, defaulting to the latest.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_read_later",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists saved links and forwarded emails queued for the next briefing, plus stories snoozed until a later date.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_saved",
      "protocol": "mcp",
      "inputs": [
        "limit",
        "query"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists stories the user has saved from their briefings, newest first, with an optional keyword search.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "list_sources",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.881
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Lists the briefing's sources, such as newsletter inboxes, RSS feeds and web searches, with recent output, priority and inclusion.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "rate_briefing_entry",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "entry_id",
        "signal",
        "topics",
        "withdraw"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates briefing preferences by recording a more, less, follow or mute signal on one story, optionally limited to chosen topics.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "rate_insert",
      "protocol": "mcp",
      "inputs": [
        "comment",
        "insert",
        "stars"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds a 1-5 star rating and/or comment on one briefing insert for the team, then returns that insert's current average rating.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "remove_feed",
      "protocol": "mcp",
      "inputs": [
        "feed_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Removes a feed subscription from a topic inbox, while keeping content already collected.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "remove_web_search",
      "protocol": "mcp",
      "inputs": [
        "search_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Stops a standing web search so no new results reach the briefing, while results already collected are kept.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "report_missing_story",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "text"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Reports why a missed story was absent from the briefing, and may follow related topics or queue a deep-dive for the next one.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "request_deep_dive",
      "protocol": "mcp",
      "inputs": [
        "query"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds a queued request for the next briefing to run fresh web research on a topic and include a sourced dossier.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "resume_podcast",
      "protocol": "mcp",
      "inputs": [],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates the podcast to lift its inactivity pause so a new episode is produced every morning starting tomorrow.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "save_entry",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "entry_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds a story from a briefing to the reading list as a snapshot that remains after the source briefing is removed.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "save_for_later",
      "protocol": "mcp",
      "inputs": [
        "text",
        "title",
        "url"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Adds a link or note to the read-later queue, fetching and storing the page text so it can be summarized in a later briefing.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "search_briefings",
      "protocol": "mcp",
      "inputs": [
        "limit",
        "query"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "reads",
            "confidence": 0.92
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Returns past daily briefings whose titles or story text contain a given word or phrase, newest first.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "set_learned_profile",
      "protocol": "mcp",
      "inputs": [
        "mode",
        "text"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates the stored profile of the user's work and interests used by the briefing, either appending text or overwriting it.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "share_briefing",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "podcast"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "creates",
            "confidence": 0.8
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Creates or returns a public read-only link to a briefing without personal notes or name, optionally including the podcast.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "tune_topic",
      "protocol": "mcp",
      "inputs": [
        "action",
        "topic",
        "topics"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.84
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates how a topic or label combination appears in future briefings, such as its depth, frequency, or whether it is muted or followed.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "unfollow_story",
      "protocol": "mcp",
      "inputs": [
        "story_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null
    },
    {
      "name": "unsave_entry",
      "protocol": "mcp",
      "inputs": [
        "briefing_id",
        "entry_id",
        "saved_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Removes a saved story from the reading list, identified by its saved ID or by its briefing and entry IDs.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "unshare_briefing",
      "protocol": "mcp",
      "inputs": [
        "briefing_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Stops public access to a briefing's shared page and audio immediately, by revoking its public link.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "unsubscribe_newsletter",
      "protocol": "mcp",
      "inputs": [
        "newsletter_id"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "effects": null,
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Stops a newsletter subscription via one-click unsubscribe, or returns a link a person must open when that isn't supported.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    },
    {
      "name": "update_information_diet",
      "protocol": "mcp",
      "inputs": [
        "avoid",
        "brevi_spiegate",
        "chicca_enabled",
        "depth",
        "digest_days",
        "digest_enabled",
        "digest_length",
        "digest_time"
      ],
      "inputs_omitted": 15,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.88
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      }
    },
    {
      "name": "update_source",
      "protocol": "mcp",
      "inputs": [
        "description",
        "include_in_digest",
        "is_active",
        "name",
        "priority",
        "source_id",
        "technicality"
      ],
      "inputs_omitted": 0,
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "effects": {
        "marker": "◇ AI reading",
        "state": "counted",
        "classes": [
          {
            "class": "updates",
            "confidence": 0.9
          }
        ],
        "lens": "side-effects@1",
        "model": "claude-haiku-5.5"
      },
      "purpose": {
        "marker": "◇ AI reading",
        "text": "Updates a topic inbox's name, description, briefing priority, technicality level, digest inclusion or pause state.",
        "lens": "tool-purpose-v1",
        "model": null
      }
    }
  ],
  "tools_omitted": 0,
  "tools_state": "recorded",
  "changes": [],
  "payment_rails": {
    "protocols": [],
    "http_402_seen": false
  },
  "not_covered": [
    "We don't call tools.",
    "We don't rate or certify.",
    "We don't publish prices.",
    "We cover only what was observed."
  ],
  "evidence": [
    {
      "section": "Identity",
      "classes": [
        "observed",
        "declared"
      ],
      "observed_at": "2026-11-12T11:07:42.384Z"
    },
    {
      "section": "Tools",
      "classes": [
        "declared"
      ],
      "observed_at": "2026-11-12T11:07:42.384Z"
    },
    {
      "section": "Effect readings (AI)",
      "classes": [
        "AI reading"
      ],
      "observed_at": "2026-11-12T11:07:42.384Z"
    },
    {
      "section": "Change history",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T11:07:42.384Z",
      "observation_times": []
    },
    {
      "section": "Payment rails",
      "classes": [
        "observed"
      ],
      "observed_at": "2026-11-12T11:07:42.384Z"
    }
  ]
}
```
