Connection check
verified live · 28h ago
proofite
Read your AI-written daily briefing and retune the filter behind it: feeds, newsletters, topics.
Tools
28
GitHub stars
—
Installs / wk
88
Licence
MIT
Transport
streamable-http, stdio
Last checked
28h ago
Tools & capabilities
28 toolsRead from the running server on 28h ago.
add_feed
url*source_id*
Add an RSS/Atom feed to a topic inbox. You can pass the site address instead of the feed URL — the server fetches the page and discovers the feed. If it fails, the reason is precis… Add an RSS/Atom feed to a topic inbox. You can pass the site address instead of the feed URL — the server fetches the page and discovers the feed. If it fails, the reason is precise (blocked by the site, gone, unreadable) so it can be reported honestly.
add_web_search
kindquery*source_id*
Monitor a Google query every day and feed the results into a topic inbox: the standing-search way to follow a company, a person, a law or a niche subject that has no RSS feed. kind… Monitor a Google query every day and feed the results into a topic inbox: the standing-search way to follow a company, a person, a law or a niche subject that has no RSS feed. kind "news" watches the news index, "search" the whole web.
correct_briefing
note*entry_idbriefing_id
Tell the briefing what was wrong with it, in plain language — "too much crypto and not enough on the EU regulation", "keep it shorter", "explain the technical parts more simply", "… Tell the briefing what was wrong with it, in plain language — "too much crypto and not enough on the EU regulation", "keep it shorter", "explain the technical parts more simply", "follow this story". An AI editor reads the note against the actual briefing and turns it into concrete adjustments: topic preferences, settings, deep-dive requests. This is the main way a person retunes their news feed by talking.
create_source
name*description
Create a new topic inbox: a themed container with its own dedicated email address (subscribe newsletters to it), which can hold RSS feeds and monitored web searches. This is how yo… Create a new topic inbox: a themed container with its own dedicated email address (subscribe newsletters to it), which can hold RSS feeds and monitored web searches. This is how you add a whole new subject to someone's information diet.
delete_source
can modify data
source_id*
Permanently delete a topic inbox with all its feeds, searches and collected content. Irreversible: the dedicated email address stops working too. Prefer update_source with is_activ… Permanently delete a topic inbox with all its feeds, searches and collected content. Irreversible: the dedicated email address stops working too. Prefer update_source with is_active false when in doubt.
discover_sources
read-only
source_id*description*
Describe a subject in plain words and get back real, working sources for it: RSS feeds validated live by the server (dead ones are dropped before you see them), web searches worth… Describe a subject in plain words and get back real, working sources for it: RSS feeds validated live by the server (dead ones are dropped before you see them), web searches worth monitoring, and newsletters worth subscribing to. Nothing is added — it returns proposals to pass to add_feed / add_web_search.
generate_briefing
Generate a briefing immediately instead of waiting for the scheduled time, using everything collected so far. Costs real AI money and takes a couple of minutes, so use it only when… Generate a briefing immediately instead of waiting for the scheduled time, using everything collected so far. Costs real AI money and takes a couple of minutes, so use it only when explicitly asked. Returns the id to poll with get_briefing.
get_account
read-only
Account status: plan, whether the briefing is currently running, when the next one is due, how many sources and stories are in the system, and the AI cost accrued this month. Account status: plan, whether the briefing is currently running, when the next one is due, how many sources and stories are in the system, and the AI cost accrued this month.
get_briefing
read-only
briefing_idinclude_markdown
Read the user's personal AI-written news briefing (daily digest) in full markdown: every story selected today from their newsletters, RSS feeds and monitored web searches, with sou… Read the user's personal AI-written news briefing (daily digest) in full markdown: every story selected today from their newsletters, RSS feeds and monitored web searches, with sources. Returns the latest briefing by default, or a specific one by id or date. Also returns an index of entry ids, needed to rate or correct individual stories.
get_information_diet
read-only
Read everything that shapes what reaches this person: delivery schedule, length, technicality, depth, stance and tone, stated interests and no-go topics, the profile the system has… Read everything that shapes what reaches this person: delivery schedule, length, technicality, depth, stance and tone, stated interests and no-go topics, the profile the system has learned about them, and the per-topic preferences built from their feedback (affinity, muted, followed). This is the full picture of their news filter — read it before changing anything.
get_podcast_episode
read-only
briefing_id
Get the audio episode generated from a briefing: a private podcast narrated in the user's language, with a playable URL and the show notes listing every source. Returns the latest… Get the audio episode generated from a briefing: a private podcast narrated in the user's language, with a playable URL and the show notes listing every source. Returns the latest episode by default.
get_source
read-only
source_id*
Inspect one topic inbox in detail: every RSS feed (with its health and last fetch), every monitored web search, X/Twitter profiles, and the newsletters currently arriving at its de… Inspect one topic inbox in detail: every RSS feed (with its health and last fetch), every monitored web search, X/Twitter profiles, and the newsletters currently arriving at its dedicated address. Use it before removing or reorganising anything.
import_opml
opml*limitdry_runsource_id*
Import subscriptions from another RSS reader (Feedly, Inoreader, FreshRSS, NetNewsWire) by passing the OPML file contents. Set dry_run true first to see what is in it and what is a… Import subscriptions from another RSS reader (Feedly, Inoreader, FreshRSS, NetNewsWire) by passing the OPML file contents. Set dry_run true first to see what is in it and what is already present; then run it for real to add them (they are validated one by one, and the ones that fail come back with the reason).
list_briefings
read-only
limit
List the user's past daily briefings (most recent first) with date, title, number of stories and whether an episode exists. Use it to find the id of a specific day before reading o… List the user's past daily briefings (most recent first) with date, title, number of stories and whether an episode exists. Use it to find the id of a specific day before reading or correcting it.
list_deep_dives
read-only
List the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research. List the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research.
list_read_later
read-only
List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing. List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing.
list_sources
read-only
List the topic inboxes this person feeds their briefing with: each one has a dedicated email address for newsletter subscriptions, plus RSS feeds and monitored web searches. Shows… List the topic inboxes this person feeds their briefing with: each one has a dedicated email address for newsletter subscriptions, plus RSS feeds and monitored web searches. Shows how much each produced recently, its priority and whether it is included in the briefing.
rate_briefing_entry
signal*topicsentry_id*briefing_id
Give a precise up/down signal on one story of a briefing: more like this, less like this, more technical, simpler, deeper, shorter, follow it, or mute its topics. Applies to the to… Give a precise up/down signal on one story of a briefing: more like this, less like this, more technical, simpler, deeper, shorter, follow it, or mute its topics. Applies to the topics of that story, so the next briefing weighs them differently. A story usually has several topics: pass `topics` to hit only some of them (e.g. "less" of "demographics" but not of "japan"). Sending the same signal again with different topics REPLACES the previous one: the topics you drop are restored, nothing is double-counted.
remove_feed
can modify data
feed_id*
Remove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it. Remove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it.
remove_web_search
can modify data
search_id*
Stop monitoring a standing web search: no new results from that query will reach the briefing. What it already collected stays where it is. Stop monitoring a standing web search: no new results from that query will reach the briefing. What it already collected stays where it is.
report_missing_story
text*briefing_id
The reader expected a story and the briefing did not have it. Describe it in their words; the editor investigates their own sources of the last days, today's briefing, their prefer… The reader expected a story and the briefing did not have it. Describe it in their words; the editor investigates their own sources of the last days, today's briefing, their preferences and a web search, and answers with a verdict: it was in the briefing, none of their sources carried it (and proposes the missing source), it was dropped because of a preference (and corrects it), it was seen but undervalued, or it could not be found. Topics get followed so similar stories do not slip again; a deep-dive may be queued for the next briefing. Five per day.
request_deep_dive
query*
Ask the next briefing to investigate a topic properly, with fresh web research: it will include a mini-dossier with sources. Use it whenever the person says "I want to know more ab… Ask the next briefing to investigate a topic properly, with fresh web research: it will include a mini-dossier with sources. Use it whenever the person says "I want to know more about X" or "keep digging on this".
save_for_later
urltexttitle
Put a link or a note into the read-later queue: whatever lands there is guaranteed to be covered in the next briefing. The page is fetched and its text stored, so it can be summari… Put a link or a note into the read-later queue: whatever lands there is guaranteed to be covered in the next briefing. The page is fetched and its text stored, so it can be summarised even if the site later blocks access.
set_learned_profile
can modify data
modetext*
Read or rewrite the free-text profile the briefing uses to know who this person is — their work, projects, recurring interests, what they already know. Appending is usually better… Read or rewrite the free-text profile the briefing uses to know who this person is — their work, projects, recurring interests, what they already know. Appending is usually better than replacing: pass mode "append" to add a line.
tune_topic
topic*action*
Tune how a single topic is treated in future briefings: more or less of it, more or less technical, deeper or shorter, more or less often, muted entirely, or followed so every deve… Tune how a single topic is treated in future briefings: more or less of it, more or less technical, deeper or shorter, more or less often, muted entirely, or followed so every development gets reported. This is the precise instrument — for a vague comment like "too much crypto lately" use correct_briefing instead.
unsubscribe_newsletter
can modify data
newsletter_id*
Unsubscribe from a newsletter arriving in one of the inboxes. When the sender supports one-click unsubscribe the server does it directly; otherwise it returns the URL a human has t… Unsubscribe from a newsletter arriving in one of the inboxes. When the sender supports one-click unsubscribe the server does it directly; otherwise it returns the URL a human has to open, and says so honestly.
update_information_diet
toneavoiddepthstancelanguagetimezone
+14
Change how and when the briefing reaches this person: delivery time and days, length, technicality, depth, stance, tone, stated interests and topics to avoid, language, timezone, p… Change how and when the briefing reaches this person: delivery time and days, length, technicality, depth, stance, tone, stated interests and topics to avoid, language, timezone, podcast and email delivery. Pass only the keys you want to change. Read get_information_diet first — these are global settings, not per-topic ones (for a single topic use tune_topic).
update_source
namepriorityis_activesource_id*descriptiontechnicality
+1