Proofite MCP server
online · 96% uptimecom.proofite/proofite·v1.2.0Read your AI-written daily briefing and retune the filter behind it: feeds, newsletters, topics.
0 stars48 downloads/wk
Reviews
Write oneNobody has reviewed Proofite yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Proofite tools (43, 11 write)
write = sends, deletes, buys or postsadd_feedFreeAdd 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_proposed_sourceFreeWhen report_missing_story found that none of the person's sources carried the story, it proposed one. This adds that proposed feed to the inbox it indicated — the same tap the reader has under the briefing. Idempotent: adding twice says it was already added.
add_web_searchFreeMonitor 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.
cancel_deep_divewrite actionFreeRemove a deep-dive request that is still waiting (ids from list_deep_dives). One already covered in a briefing cannot be cancelled.
configure_insertwrite actionFreeConfigure one insert of the briefing. Call list_inserts first: it returns, for each insert available to this person (language and country already applied), the config fields with their key, type and options. Pass the insert id and any subset of: enabled (true/false), level (one of the insert's AI levels: nessuno = data only, leggero = the podcast hosts mention it, medio = plus a short written comment), config (an object keyed by the field keys). Field types: "luoghi" takes city names as strings (e.g. {"citta": ["Verona"]}; resolved to coordinates here), "lista_testo" takes an array of strings or the pasted text under "<key>_testo", "titoli"/"squadra" take names as strings, "scelta" takes one option id, "scelta_multipla" an array of option ids, "testo" a string. Examples: meteo {"citta": ["Verona", "Milano"], "orizzonte": "weekend"}; fantacalcio {"rosa": ["Contini", "Milinkovic-Savic V."], "lega": "…"}; borsa {"titoli": ["Enel", "Nvidia"]}; rebus {"livello_gioco": "facile", "quando": "weekend"}. Switching on requires a valid configuration. Takes effect from the next briefing.
correct_briefingFreeTell 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". An AI editor reads the note against the actual briefing and turns it into concrete adjustments: topic preferences, settings (technicality, depth, length, podcast minutes, tone), deep-dive requests. This is the main way a person retunes their news feed by talking. To pin ONE story so its developments get reported, pass its entry_id with the note, or use rate_briefing_entry with "follow": a note without entry_id can only follow a whole theme.
create_sourcewrite actionFreeCreate 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_sourcewrite actionFreePermanently 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_sourcesFreeDescribe 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_briefingFreeGenerate 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.
generate_podcast_episodeFreeMake (or remake) the podcast episode of a briefing right away — the latest by default. Takes a few minutes (script, then voices); poll with get_podcast_episode. Asking for an episode is a listening signal: it also lifts the automatic pause. Costs real AI money, so only when asked.
get_accountFreeAccount 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_briefingFreeRead 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_episode_transcriptFreeThe full text of a podcast episode, word for word: the script the voices read. In the two-host show it comes as "Name: line" turns; in the classic format as plain paragraphs. Use it when the person wants a passage quoted, a point the hosts made that the written briefing does not have, or to search what was said. Latest episode by default.
get_information_dietFreeRead everything that shapes what reaches this person: delivery schedule, length, technicality, depth, stance, tone and entry mix, podcast format (two-host show or single voice), voice accent and whether the podcast is auto-paused, stated interests and no-go topics, the profile the system has learned about them, the per-topic preferences built from their feedback (affinity, muted, followed themes) and the specific stories they pinned with "follow" (every development of those gets reported). This is the full picture of their news filter — read it before changing anything.
get_podcast_episodeFreeGet the audio episode generated from a briefing: a private podcast in the user's language — by default a show with two hosts who talk the news through, or a single voice in the classic format — with a playable URL, the private RSS feed URL and the show notes listing every source. Returns the latest episode by default. For the words themselves use get_episode_transcript.
get_sourceFreeInspect 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_opmlFreeImport 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_briefingsFreeList 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_divesFreeList the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research.
list_insertsFreeThe inserts: optional extra pages of the daily briefing that the person switches on one by one — weather for their city, their fantasy-football roster (Italian users), the stocks they hold, a daily rebus puzzle. Returns, in the person's language, each insert with what it does, whether it is on, its current configuration, the fields it needs (with types) and the AI levels it offers. Read this before configure_insert.
list_missing_reportsFreeThe investigations opened with report_missing_story on a briefing: what was asked, the verdict, the explanation, the signals applied and — when none of the person's sources carried the story — the source proposed, with whether it was already added. Latest briefing by default.
list_read_laterFreeList what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing, and — apart — the stories the person deferred to a later day ("snoozed"), which wait until their date.
list_savedFreeThe reading list: stories the person saved from their briefings (including the "chicca", the archive story of quiet days), newest first, each with the briefing it came from. Pass `query` to search them by any word — title, text, topics, briefing title. To add or remove: save_entry, unsave_entry.
list_sourcesFreeList 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_entryFreeGive a precise up/down signal on one story of a briefing: more like this, less like this, more technical, simpler, deeper, shorter, or mute. A story carries typed labels (see `labels` in get_briefing): e:<who or what> (e:tesla), c:<field, its world> (c:auto), f:<angle> (f:soldi = money) and free tags. `topics` chooses the LEVEL: one label = broad ("less of Tesla, everywhere"); several labels = narrow, they are COMBINED with AND ("less of Tesla + soldi" = Tesla only when the story is about money; Tesla alone and money stories of others are untouched). Omit `topics` for the whole story (all its labels together, the narrowest level). Sending the same signal again with different topics REPLACES the previous one. "follow" is different: it pins THIS story — every development of it (and only of it) gets a full entry; "unfollow" releases it. `withdraw: true` takes a signal back.
rate_insertwrite actionFreeLeave feedback on one insert of the briefing for the people who build it: stars from 1 to 5 and/or a comment of up to 1000 characters, at least one of the two. Use it when the person judges an insert — "the weather page is great", "the quiz is too hard", "the stocks insert is missing my bank" — passing the insert id (see list_inserts), the stars if they gave a grade, and the comment in their own words. A second call within fifteen minutes completes or corrects the same feedback instead of adding another; later calls add a new one. Comments reach the founder; stars are read in aggregate. Returns the current average for that insert.
remove_feedwrite actionFreeRemove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it.
remove_web_searchwrite actionFreeStop 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_storyFreeThe 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_diveFreeAsk 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".
resume_podcastFreeThe podcast pauses itself when nobody listens for a while (no episodes get made; the setting podcast_enabled stays true). This lifts the pause: from tomorrow the episode comes back every morning. get_information_diet and get_account say whether it is paused.
save_entryFreeKeep one story of a briefing in the reading list (list_saved): a snapshot that survives even if the briefing is deleted. entry_id "chicca" saves the chicca — the archive story of quiet days — when the briefing has one. Saving again only refreshes the date.
save_for_laterwrite actionFreePut 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_profileFreeRead 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.
share_briefingwrite actionFreeCreate (or read) the public link of a briefing: a cleaned-up read-only copy — no personal "why this matters to you" notes, no name. The podcast episode comes along only if `podcast` is true: the hosts greet the reader by name, so that is the reader's call. Idempotent: calling again returns the same link; unshare_briefing revokes it.
tune_topicFreeTune how a single topic — or a COMBINATION of labels — 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 of that WHOLE THEME gets reported (to follow one specific story, use rate_briefing_entry with "follow" on that entry). `topic` is one key: a free tag ("intelligenza artificiale") or a typed label (e:tesla, c:auto, f:soldi); `topics` instead is a list of labels combined with AND ("e:tesla"+"f:soldi" = Tesla only when about money — Tesla alone stays as it is). This is the precise instrument — for a vague comment like "too much crypto lately" use correct_briefing instead.
unfollow_storyFreeRelease a pinned story by its id (from get_information_diet → followed_stories), so its developments stop getting a dedicated entry. Works even when the briefing it came from is gone — rate_briefing_entry "unfollow" needs the briefing, this does not.
unsave_entryFreeTake a story out of the reading list, by its saved id (from list_saved) or by briefing + entry id.
unshare_briefingFreeRevoke the public link of a briefing: the page and its audio stop answering immediately.
unsubscribe_newsletterFreeUnsubscribe 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_dietwrite actionFreeChange how and when the briefing reaches this person: delivery time and days, length, technicality, depth, stance, tone, entry mix (few deep stories vs many short ones), stated interests and topics to avoid, language, timezone; the podcast (on/off, minutes, two-host show or single voice, voice accent), email delivery, the weekly recap, the chicca on quiet days, the smalltalking stories, web enrichment. 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_sourcewrite actionFreeChange a topic inbox: rename it, change its description, raise or lower its priority in the briefing, set a per-inbox technicality level, temporarily exclude it from the briefing or pause it entirely.
Public scan report
scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it
- Code scan2 source files scanned25/25
- Live reliabilityremote reachable in 2471ms17/20
- Tool poisoning43 tool descriptions checked15/15
- Auth qualityAPI key sent as a header8/15
- Maintenancelast push 78 days ago12/15
- Maintainer identityendpoint served from the registry-verified namespace domain8/10
How Proofite compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
- Tools
- 43
- the typical server has 7
- Tools that change things
- 26%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 96%
- of our recent checks; the typical remote server answers 100%
- Response time
- 69 ms
- faster than 90% of 30,031 servers
- Downloads a week
- 48
- more than 40% of 12,191 servers with a package
What its tools let an agent do: 23 read · 9 create · 5 change · 5 delete · 1 send or post
Release history: 2 versions in the registry since 2026-08-17, latest 2026-10-06, typically one every 50 days.
Install Proofite in Claude Code, Cursor or VS Code
claude mcp add --transport http proofite https://proofite.com/mcp
What the publisher says
From the Proofite repository's README, as published. We do not edit it. Read it on GitHub
Proofite MCP server
Give your AI assistant the keys to your information diet.
Proofite turns the sources you choose — newsletters, RSS feeds, monitored web searches, saved links — into one personal briefing every morning, written by AI and available as a podcast. This MCP server lets any agent read that briefing and, more importantly, retune the filter behind it: what gets in, how deep, how technical, how often, and what never appears again.
It is the same server the product uses for its own voice mode, so it is not a demo surface: it is how Proofite is driven.
you → "too much crypto this week, and go deeper on the EU regulation"
agent → correct_briefing(note: "…")
→ topic weights adjusted, depth raised, deep dive queued
→ tomorrow's briefing is differentInstall
Remote (recommended). Streamable HTTP, no install. Create a key in Proofite under Settings → Connections, then:
claude mcp add --transport http proofite https://proofite.com/mcp \
--header "Authorization: Bearer pfk_live_…"Or in any client that reads a JSON config:
{
"mcpServers": {
"proofite": {
"type": "http",
"url": "https://proofite.com/mcp",
"headers": { "Authorization": "Bearer pfk_live_…" }
}
}
}stdio bridge, for clients that do not speak HTTP yet:
{
"mcpServers": {
"proofite": {
"command": "npx",
"args": ["-y", "proofite-mcp"],
"env": { "PROOFITE_API_KEY": "pfk_live_…" }
}
}
}Tools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-11-03restoreB → Ascore 85
Proofite: common questions
- Is Proofite MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Proofite safety report
- How do I install Proofite?
- It runs remotely at proofite.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Proofite need an API key?
- Yes. The registry entry asks for
PROOFITE_API_KEY,Authorization. - Is Proofite maintained?
- The last commit was 79 days ago (2026-08-17). The latest release is v1.2.0.
- Is Proofite up?
- 96% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does Proofite compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,255 servers); tools 43 (the typical server has 7); tools that change things 26% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.