Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Read your AI-written daily briefing and retune the filter behind it: feeds, newsletters, topics.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
PROOFITE_API_KEY, Authorization「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの 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/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"proofite": {
"url": "https://proofite.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"proofite": {
"command": "npx",
"args": [
"-y",
"proofite-mcp"
],
"env": {
"PROOFITE_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"proofite": {
"type": "http",
"url": "https://proofite.com/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .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に保存されます。アカウントは不要です。
Authorization 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月8日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
get_briefingRead 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_briefingsList 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_dietRead 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_sourcesList 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_sourceInspect 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_episodeGet 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_transcriptThe 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_laterList 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_divesList the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research.
list_insertsThe 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_insertConfigure 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_insertLeave 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_savedThe 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_accountAccount 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_dietChange 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_topicTune 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_briefingTell 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_entryGive 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_storyRelease 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_storyThe 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_reportsThe 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_sourceWhen 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_profileRead 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_diveAsk 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_diveRemove a deep-dive request that is still waiting (ids from list_deep_dives). One already covered in a briefing cannot be cancelled.
save_for_laterPut 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_entryKeep 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_entryTake a story out of the reading list, by its saved id (from list_saved) or by briefing + entry id.
share_briefingCreate (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_briefingRevoke the public link of a briefing: the page and its audio stop answering immediately.
generate_podcast_episodeMake (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_podcastThe 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_briefingGenerate 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_sourceCreate 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_sourceChange 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_sourcePermanently 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_feedAdd 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_feedRemove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it.
add_web_searchMonitor 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_searchStop monitoring a standing web search: no new results from that query will reach the briefing. What it already collected stays where it is.
discover_sourcesDescribe 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_opmlImport 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_newsletterUnsubscribe 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.
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名はドメイン proofite.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
777ミリ秒で応答(HTTP 200)
サインイン不要
43件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PROOFITE_API_KEY, Authorization
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.2.0)がレジストリに届いたのは33 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Hominoport
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
A human nominee and body in the physical world for autonomous agents. Signed public offer.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
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_…" } } } }
| Tool | What it does | |
|---|---|---|
get_briefing | read | 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. |
list_briefings | read | 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 | 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. |
list_sources | read | 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 | read | 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 | read | 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. |
list_read_later | read | List what is queued in the read-later inbox: links and forwarded emails that are guaranteed to be covered in the next briefing. |
list_deep_dives | read | List the deep-dive research requests waiting to be covered: topics the user asked the briefing to investigate with fresh web research. |
get_account | read | 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 | write | 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). |
tune_topic | write | 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. |
correct_briefing | write | 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. |
rate_briefing_entry | write | 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. |
set_learned_profile | write | 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 | write | 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 | write | 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. |
generate_briefing | write | 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 | write | 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 | write | 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 | write | 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 | write | 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 | write | Remove an RSS feed from a topic inbox. Already-collected content stays; nothing new arrives from it. |
add_web_search | write | 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 | write | 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 | read | 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. |
import_opml | write | 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). |
unsubscribe_newsletter | write | 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. |
It also exposes resources (proofite://briefing/latest, proofite://diet, proofite://sources) and two prompts (tune-my-feed, catch-me-up).
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.A Proofite account — free trial, no card. The briefing, the podcast and this server are the same product seen from three sides.
https://proofite.com/.well-known/mcp.json — machine-readable manifestMIT © Nicola Moretti mcp-name: com.proofite/proofite