原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Proofite

作者:hanicker版本 1.2.0i★ –i电脑或云端
注册名称com.proofite/proofite

安装

概览

作者提供的说明(英文原文)

Read your AI-written daily briefing and retune the filter behind it: feeds, newsletters, topics.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 电脑或云端
  • 传输方式: stdio, Streamable HTTP
  • 分类: 其他
  • 你需要填写:PROOFITE_API_KEY, Authorization

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "proofite": {
      "command": "npx",
      "args": [
        "-y",
        "proofite-mcp"
      ],
      "env": {
        "PROOFITE_API_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http proofite https://proofite.com/mcp --header 'Authorization: your-value'

或者在你的电脑上运行

claude mcp add proofite --env PROOFITE_API_KEY=your-value -- npx -y proofite-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "proofite": {
      "url": "https://proofite.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "proofite": {
      "command": "npx",
      "args": [
        "-y",
        "proofite-mcp"
      ],
      "env": {
        "PROOFITE_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "proofite": {
      "type": "http",
      "url": "https://proofite.com/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "proofite": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "proofite-mcp"
      ],
      "env": {
        "PROOFITE_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • PROOFITE_API_KEY 机密 必填 env
    Your Proofite API key, created at https://proofite.com/app/settings → Connections
  • Authorization 机密 必填 HTTP header
    Bearer , created at https://proofite.com/app/settings → Connections

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月8日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • get_briefing

    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

  • list_briefings

    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.

  • get_information_diet

    Read 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 th

  • list_sources

    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.

  • get_source

    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.

  • get_podcast_episode

    Get 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.

  • get_episode_transcript

    The 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

  • list_read_later

    List 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_deep_dives

    List the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research.

  • list_inserts

    The 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, wh

  • configure_insert

    Configure 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 o

  • rate_insert

    Leave 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 mis

  • list_saved

    The 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_entr

  • get_account

    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.

  • update_information_diet

    Change 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 singl

  • tune_topic

    Tune 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 sto

  • correct_briefing

    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". An AI editor reads the note against the actual briefing and turns it into concrete adjustments: topic

  • rate_briefing_entry

    Give 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: (e:tesla), c: (c:auto), f: (f:soldi = money) and free tags. `topics` choose

  • unfollow_story

    Release 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.

  • report_missing_story

    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 ca

  • list_missing_reports

    The 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.

  • add_proposed_source

    When 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.

  • set_learned_profile

    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.

  • request_deep_dive

    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".

  • cancel_deep_dive

    Remove a deep-dive request that is still waiting (ids from list_deep_dives). One already covered in a briefing cannot be cancelled.

  • save_for_later

    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.

  • save_entry

    Keep 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.

  • unsave_entry

    Take a story out of the reading list, by its saved id (from list_saved) or by briefing + entry id.

  • share_briefing

    Create (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 aga

  • unshare_briefing

    Revoke the public link of a briefing: the page and its audio stop answering immediately.

  • generate_podcast_episode

    Make (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

  • resume_podcast

    The 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.

  • 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 explicitly asked. Returns the id to poll with get_briefing.

  • create_source

    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.

  • update_source

    Change 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.

  • delete_source

    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.

  • add_feed

    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.

  • remove_feed

    Remove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it.

  • add_web_search

    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.

  • remove_web_search

    Stop monitoring a standing web search: no new results from that query will reach the briefing. What it already collected stays where it is.

  • discover_sources

    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

  • import_opml

    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 f

  • unsubscribe_newsletter

    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.

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过域名 proofite.com 验证(注册中心会核实域名所有权)

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 777 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 43 个工具描述,未发现针对 AI 的隐藏指令

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 18676 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 18676 个服务器的 58% 更新
  • 基础检查结果等于或优于此分类中其他 18676 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Proofite 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:PROOFITE_API_KEY, Authorization

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.2.0)于33天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, Mcphost

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

作者:formulahendry起步阶段↓ 66/周★ 44014个月前更新

在你的电脑上运行

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

作者:desktop-commander正在增长★ 2114天前更新

在云端运行✓ desktopcommander.app

Mcphost

Hosted MCP runtime where your agent publishes its own tools by tool call and keeps working.

作者:j0yen起步阶段今天更新

在云端运行✓ mcphost.dev

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

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 different

Install

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

ToolWhat it does
get_briefingreadRead 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.
list_briefingsreadList 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.
get_information_dietreadRead 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.
list_sourcesreadList 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.
get_sourcereadInspect 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.
get_podcast_episodereadGet 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.
list_read_laterreadList what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing.
list_deep_divesreadList the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research.
get_accountreadAccount 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.
update_information_dietwriteChange 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).
tune_topicwriteTune 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.
correct_briefingwriteTell 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.
rate_briefing_entrywriteGive 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.
set_learned_profilewriteRead 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.
request_deep_divewriteAsk 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_laterwritePut 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.
generate_briefingwriteGenerate 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.
create_sourcewriteCreate 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.
update_sourcewriteChange 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.
delete_sourcewritePermanently 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.
add_feedwriteAdd 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.
remove_feedwriteRemove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it.
add_web_searchwriteMonitor 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.
remove_web_searchwriteStop monitoring a standing web search: no new results from that query will reach the briefing. What it already collected stays where it is.
discover_sourcesreadDescribe 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.
import_opmlwriteImport 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).
unsubscribe_newsletterwriteUnsubscribe 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.

It also exposes resources (proofite://briefing/latest, proofite://diet, proofite://sources) and two prompts (tune-my-feed, catch-me-up).

Notes that matter

  • Keys can be read-only, and the server enforces it: a read-only key cannot change a setting however convincingly it is asked. Create one per client, revoke individually.
  • Changes apply from the next briefing, never retroactively.
  • Scoped to one account. The key identifies a person; the server has no way to reach anyone else's information.
  • Protocol. Streamable HTTP. Speaks the 2026-07-28 revision (stateless, per-request _meta, mirrored Mcp-Method / Mcp-Name headers, server/discover) *and* the older initialize handshake used by most clients today — it detects which era you speak from your first request.

Requirements

A Proofite account — free trial, no card. The briefing, the podcast and this server are the same product seen from three sides.

Links

  • proofite.com/mcp — live documentation, generated from the server's own tool registry
  • proofite.com — what Proofite is
  • https://proofite.com/.well-known/mcp.json — machine-readable manifest

MIT © Nicola Moretti mcp-name: com.proofite/proofite

问 PopNx