fornews.ai & MCP — parlez à votre actualité
Votre corpus d'articles devient une base de connaissances locale que Claude (ou tout assistant compatible MCP) peut interroger, analyser et enrichir en langage naturel. Voici l'inventaire complet des outils et ce qu'on peut en faire. 100 % sur votre Mac, aucune donnée ne quitte l'appareil.
Le principe
Au fil des jours, fornews.ai constitue un corpus local : des centaines d'articles récupérés, traduits, résumés, horodatés et reliés à leurs entités (personnes, organisations, lieux…). Le Mac qui fait tourner l'app — idéalement le Mac mini Data Provider — expose ce corpus via MCP (Model Context Protocol), le standard ouvert que parlent Claude, GitHub Copilot et d'autres.
Résultat : au lieu de fouiller une liste, vous demandez. « Que se passe-t-il autour de X ? », « fais-moi un dossier », « ajoute ce flux », « quelles tendances cette semaine ? » — l'assistant compose les bons outils pour vous répondre à partir de votre actualité, pas du web générique.
localhost:5174). Rien n'est publié, rien n'est envoyé à un
tiers. Pour y accéder depuis un autre appareil, passez par un réseau privé
(Tailscale, VPN) plutôt qu'une exposition directe sur Internet.Connexion en une commande
Le serveur démarre avec l'app macOS et écoute sur le port
5174 (transport SSE). Sur le Mac où tourne l'app :
Claude Code
claude mcp add --scope user --transport sse fornews http://localhost:5174/sse
Depuis un autre appareil (le Mac mini fait tourner l'app, vous travaillez sur votre
MacBook), remplacez localhost par l'adresse du Mac dédié :
claude mcp add --scope user --transport sse fornews-macmini http://<ip-du-mac-mini>:5174/sse
Ou en configuration projet, dans un fichier .mcp.json :
{
"mcpServers": {
"fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
}
}
GitHub Copilot
copilot mcp add --transport sse fornews http://localhost:5174/sse
VS Code
Le plus simple : dans le chat de VS Code (Copilot, en mode agent), tapez cette phrase — VS Code vous proposera d'ajouter le serveur :
add this mcp server to vs code : "fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
Ou manuellement, dans un fichier .vscode/mcp.json à la racine du
projet :
{
"servers": {
"fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
}
}
Codex — connexion directe nouveau en 1.5
Codex n'utilise que le transport « Streamable HTTP » (le plus récent).
À partir de fornews 1.5, le serveur expose ce transport nativement
(point d'entrée /mcp, en plus du /sse
historique) : Codex se connecte directement, sans pont ni Node.js.
Ajoutez fornews à Codex. Ouvrez — ou créez s'il n'existe pas — le fichier
~/.codex/config.toml, et collez-y ce bloc :
[mcp_servers.fornews]
url = "http://localhost:5174/mcp"
Gardez localhost si Codex et l'app fornews tournent sur le
même Mac. Si fornews tourne sur un autre Mac (un Mac mini serveur,
par exemple), remplacez localhost par l'adresse de ce Mac — par ex.
http://192.168.1.20:5174/mcp. Redémarrez Codex : les outils
fornews_* (rechercher des articles, tendances, entités…) apparaissent —
la connexion fonctionne.
Version antérieure à la 1.5 ? Pont provisoire via mcp-remote
Avant la 1.5, le serveur ne parlait que le SSE ; Codex, lui, exige le Streamable HTTP
(sinon HTTP 404). On intercalait alors un petit pont
qui nécessite Node.js (commande npx ;
vérifiez avec npx --version). Bloc
~/.codex/config.toml correspondant :
[mcp_servers.fornews] command = "npx" args = ["-y", "mcp-remote", "http://localhost:5174/sse", "--transport", "sse-only"]
ChatGPT — mode « Work ». Le mode Work de ChatGPT
prend en charge les mêmes connecteurs MCP que Codex : renseignez le même
point d'entrée http://localhost:5174/mcp (Streamable HTTP), et
fornews.ai s'utilise sans problème depuis ChatGPT, avec les mêmes outils
fornews_*.
Guide d'installation pas à pas : Bien démarrer → Claude & MCP.
La boîte à outils
Une vingtaine d'outils, en quatre familles. La lecture et l'analyse ne modifient rien ; l'écriture agit sur le corpus local (et se propage à vos appareils via iCloud) — voir la section « Écriture & prudence ».
Lecture Explorer le corpus
| Outil | Rôle |
|---|---|
fornews_corpus_stats | Totaux, répartition par statut, sources actives, entités surveillées |
fornews_list_articles | Articles récents (fenêtre en heures) ou favoris |
fornews_search_articles | Recherche plein-texte (titres et résumés, toutes langues) |
fornews_get_article | Détail complet d'un article : résumé, entités, source, date, URL |
fornews_list_sources | Sources, dernier passage, intervalle de rafraîchissement |
fornews_list_entities · get_entity | Entités détectées, leur nombre d'articles, description Wikidata |
fornews_list_keywords | Règles de mots-clés (groupes ET/OU, exclusions SAUF) |
Analyse Comprendre les dynamiques
| Outil | Rôle |
|---|---|
fornews_trends | Entités qui s'emballent : volume récent comparé à la base historique (z-score) → montante / descendante / stable |
fornews_timeline | Série « articles par jour » d'une entité, d'une source ou du corpus entier, sur N jours |
fornews_share_of_voice | Répartition par source (« qui couvre quoi »), globale ou sur un sujet |
fornews_related_articles | Articles couvrant le même sujet (entités partagées) — fil d'une histoire |
Détection Trouver des sources
| Outil | Rôle |
|---|---|
fornews_detect_feeds | À partir de l'URL d'un site, trouve les flux suivables : autodiscovery, liens de pied de page, chemins usuels, chaîne YouTube, sitemaps — chaque candidat confirmé par un vrai parse |
Écriture Gérer sources & règles
| Outil | Rôle |
|---|---|
fornews_create_source | Ajouter un flux ou une page à surveiller (URL dédupliquée comme dans l'app) |
fornews_update_source · delete_source | Renommer, changer la langue, activer/désactiver, supprimer une source |
fornews_create_keyword | Créer une règle de veille (groupes ET, variantes OU, exclusions SAUF) |
fornews_update_keyword · delete_keyword | Modifier ou supprimer une règle de mots-clés |
Votre corpus, en vrai
Instantané réel du corpus du développeur de fornews.ai, interrogé via le serveur MCP — 24 juillet 2026. Votre corpus reflétera vos propres sources et centres d'intérêt.
Comment tout se connecte
flowchart LR M["Mac mini · Data Provider
(fornews.app)"] -- expose --> S["Serveur MCP
localhost:5174"] S <-- SSE --> C["Claude / assistant"] M -. iCloud privé .-> D["iPhone · iPad
Mac · Apple TV"]
Vos 11 entités surveillées — articles collectés
Les entités surveillées déclenchent les notifications. Ici, deux géants tech dominent la couverture ; les artistes et acteurs suivis restent plus discrets.
Vos 68 sources
| Source | Langue | Type | Intervalle |
|---|---|---|---|
| Le Monde | fr | RSS | 49 min |
| RTS Info | fr | RSS | 33 min |
| The Verge | en | RSS | 49 min |
| Apple Newsroom | en | RSS | 49 min |
| Daring Fireball | en | RSS | 60 min |
| Darknet Diaries (podcast) | en | RSS | 49 min |
| Le Louvre | fr | page web | 49 min |
L'intervalle est adaptatif : il se resserre pour les sources qui publient beaucoup, se relâche pour les autres.
Le paysage des sources — valeur × faisabilité
Un « magic quadrant » des types de sources que fornews sait suivre — ou pourrait suivre — selon leur valeur pour la veille et leur facilité d'intégration 100 % on-device.
quadrantChart
title Types de sources fornews.ai
x-axis Intégration difficile --> Intégration facile
y-axis Faible valeur --> Forte valeur
quadrant-1 À intégrer
quadrant-2 À cadrer
quadrant-3 À écarter
quadrant-4 Bonus
"RSS / Atom": [0.90, 0.92]
"JSON Feed": [0.85, 0.55]
"Fédiverse": [0.80, 0.68]
"YouTube": [0.68, 0.70]
"Podcasts": [0.30, 0.85]
"Newsletters": [0.45, 0.50]
"Bluesky": [0.50, 0.48]
"PDF": [0.55, 0.45]
"Sitemaps": [0.72, 0.28]
"X / Twitter": [0.15, 0.35]
RSS/Atom, JSON Feed, YouTube et Fédiverse sont déjà ingérés ; podcasts et documents sont à l'étude ; X/Twitter reste hors périmètre (pas d'API ouverte).
Une requête, plusieurs outils
« Fais-moi un dossier sur l'IA cette semaine » se traduit, côté assistant, par un enchaînement d'appels :
flowchart TD Q["« Dossier sur l'IA
cette semaine »"] --> A["fornews_search_articles"] A --> B["fornews_get_article"] A --> R["fornews_related_articles"] A --> V["fornews_share_of_voice"] B --> D["Dossier structuré
sources citées"] R --> D V --> D
Recettes — tout le potentiel
La force du MCP, c'est que l'assistant enchaîne plusieurs outils pour répondre à une demande formulée simplement. Quelques exemples.
Les réponses ci-dessous sont des exemples illustratifs, basés sur le corpus du développeur de fornews.ai — le vôtre donnera d'autres résultats.
1. « Que se passe-t-il en ce moment ? »
Trois sujets sortent nettement du bruit ces deux derniers jours :
- Roland-Garros — 9 articles récents (habituellement < 1/jour), emballement net depuis avant-hier.
- OpenAI — 6 articles, montée régulière sur une semaine.
- BCE — 4 articles concentrés hier après-midi.
Enchaînement : fornews_trends → fornews_timeline
sur chaque entité → fornews_search_articles pour illustrer.
2. « Fais-moi un dossier sur un sujet »
- récupère les articles du sujet (
search_articles/ entitéget_entity) ; - lit les plus significatifs (
get_article) ; - regroupe les articles liés (
related_articles) ; - mesure qui en parle le plus (
share_of_voice) et repère les angles morts (sujets couverts par une seule source) ; - rédige un dossier structuré, chaque affirmation reliée à son article.
Le tout à partir de votre corpus filtré selon vos centres d'intérêt — pas d'un web générique.
3. « Ajoute des sources » — sans connaître l'URL du flux
L'assistant appelle fornews_detect_feeds sur chaque
domaine, choisit le flux principal parmi les candidats confirmés, puis
fornews_create_source avec la bonne langue. Les nouveaux
articles arrivent au prochain rafraîchissement, traduits et résumés comme les autres.
4. « Crée une règle de veille »
# fornews_create_keyword groupes = [ ["IA", "AI", "intelligence artificielle"], ["éthique"] ] exclus = [ "jeu vidéo" ] # ⇒ (IA OU AI OU intelligence artificielle) ET (éthique) SAUF (jeu vidéo)
La règle filtre les prochains articles ingérés (comme dans l'app).
5. « Suis une histoire »
fornews_related_articles remonte les articles partageant
les mêmes entités, classés par proximité ; fornews_timeline
trace la montée du sujet. On obtient le fil d'une histoire, sources et angles
comparés.
6. Entretien & ménage
fornews_list_sources révèle le dernier passage et
l'intervalle de chaque source ; l'assistant vous propose la liste des inactives, puis —
après votre accord — fornews_update_source pour les
désactiver (ou delete_source pour retirer un doublon).
Écriture & prudence
Les outils d'écriture (create/update/delete_source et
…_keyword) agissent sur le store local du Mac
Data Provider, qui se synchronise via iCloud vers tous vos appareils. Ils
restent locaux et sans compte, mais ce ne sont pas des lectures anodines :
- une source ou une règle créée ici apparaît sur votre iPhone, iPad, Mac et Apple TV ;
- une suppression de source retire aussi ses articles (comme dans l'app) — sauf option contraire ;
- bonne pratique : laissez l'assistant vous proposer l'action et confirmez avant qu'il ne l'exécute.
fornews.ai & MCP — talk to your news
Your article corpus becomes a local knowledge base that Claude (or any MCP-compatible assistant) can query, analyse and extend in plain language. Here is the full inventory of tools and what you can do with them. 100 % on your Mac — no data leaves the device.
How it works
Day after day, fornews.ai builds a local corpus: hundreds of articles fetched, translated, summarised, time-stamped and linked to their entities (people, organisations, places…). The Mac running the app — ideally the Mac mini Data Provider — exposes this corpus over MCP (Model Context Protocol), the open standard spoken by Claude, GitHub Copilot and others.
So instead of scrolling a list, you ask. “What's happening around X?”, “build me a brief”, “add this feed”, “what's trending this week?” — the assistant composes the right tools to answer from your news, not the generic web.
localhost:5174). Nothing is published, nothing is sent to a
third party. To reach it from another device, use a private network (Tailscale, VPN) rather
than exposing it directly to the Internet.Connect in one command
The server starts with the macOS app and listens on port
5174 (SSE transport). On the Mac running the app:
Claude Code
claude mcp add --scope user --transport sse fornews http://localhost:5174/sse
From another device (the Mac mini runs the app, you work on your MacBook), replace
localhost with the dedicated Mac's address:
claude mcp add --scope user --transport sse fornews-macmini http://<mac-mini-ip>:5174/sse
Or per project, in an .mcp.json file:
{
"mcpServers": {
"fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
}
}
GitHub Copilot
copilot mcp add --transport sse fornews http://localhost:5174/sse
VS Code
The easiest way: in the VS Code chat (Copilot, agent mode), type this sentence — VS Code will offer to add the server:
add this mcp server to vs code : "fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
Or manually, in a .vscode/mcp.json file at the project root:
{
"servers": {
"fornews": { "type": "sse", "url": "http://localhost:5174/sse" }
}
}
Codex — direct connection new in 1.5
Codex only supports the newer "Streamable HTTP" transport.
Starting with fornews 1.5, the server exposes this transport
natively (a /mcp endpoint, alongside the legacy
/sse): Codex connects directly, no bridge, no Node.js.
Add fornews to Codex. Open — or create if it doesn't exist — the file
~/.codex/config.toml, and paste this block:
[mcp_servers.fornews]
url = "http://localhost:5174/mcp"
Keep localhost if Codex and the fornews app run on the
same Mac. If fornews runs on another Mac (e.g. a Mac mini server),
replace localhost with that Mac's address — e.g.
http://192.168.1.20:5174/mcp. Restart Codex: the
fornews_* tools (search articles, trends, entities…) show up — you're connected.
On a version earlier than 1.5? Temporary mcp-remote bridge
Before 1.5 the server only spoke SSE, while Codex requires Streamable HTTP (otherwise
HTTP 404). You inserted a small bridge that needs
Node.js (the npx command; check with
npx --version). Matching ~/.codex/config.toml block:
[mcp_servers.fornews] command = "npx" args = ["-y", "mcp-remote", "http://localhost:5174/sse", "--transport", "sse-only"]
ChatGPT — “Work” mode. ChatGPT’s Work mode supports the
same MCP connectors as Codex: point the connector at the same
http://localhost:5174/mcp endpoint (Streamable HTTP), and
fornews.ai works seamlessly from ChatGPT, with the same
fornews_* tools.
Step-by-step install: Getting started → Claude & MCP.
The toolbox
About twenty tools in four families. Reading and analysis change nothing; writing acts on the local corpus (and syncs to your devices via iCloud) — see “Writing & care”.
Read Explore the corpus
| Tool | Purpose |
|---|---|
fornews_corpus_stats | Totals, breakdown by status, active sources, watched entities |
fornews_list_articles | Recent articles (window in hours) or favourites |
fornews_search_articles | Full-text search (titles and summaries, any language) |
fornews_get_article | Full article detail: summary, entities, source, date, URL |
fornews_list_sources | Sources, last fetch, refresh interval |
fornews_list_entities · get_entity | Detected entities, their article counts, Wikidata description |
fornews_list_keywords | Keyword rules (AND/OR groups, EXCEPT exclusions) |
Analysis Read the dynamics
| Tool | Purpose |
|---|---|
fornews_trends | Surging entities: recent volume vs each entity's own history (z-score) → rising / falling / stable |
fornews_timeline | “Articles per day” for an entity, a source or the whole corpus, over N days |
fornews_share_of_voice | Distribution by source (“who covers what”), global or on a topic |
fornews_related_articles | Articles covering the same story (shared entities) — a story thread |
Detect Find sources
| Tool | Purpose |
|---|---|
fornews_detect_feeds | From a site URL, finds followable feeds: autodiscovery, footer links, common paths, YouTube channel, sitemaps — each candidate confirmed by a real parse |
Write Manage sources & rules
| Tool | Purpose |
|---|---|
fornews_create_source | Add a feed or a page to watch (URL de-duplicated as in the app) |
fornews_update_source · delete_source | Rename, change language, enable/disable, delete a source |
fornews_create_keyword | Create a watch rule (AND groups, OR variants, EXCEPT exclusions) |
fornews_update_keyword · delete_keyword | Modify or delete a keyword rule |
Your corpus, for real
A real snapshot of the fornews.ai developer's own corpus, queried through the MCP server — 24 July 2026. Your corpus will reflect your own sources and interests.
How it all connects
flowchart LR M["Mac mini · Data Provider
(fornews.app)"] -- exposes --> S["MCP server
localhost:5174"] S <-- SSE --> C["Claude / assistant"] M -. private iCloud .-> D["iPhone · iPad
Mac · Apple TV"]
Your 11 watched entities — articles collected
Watched entities drive notifications. Here, two tech giants dominate coverage; the followed musicians and actors stay quieter.
Your 68 sources
| Source | Lang | Type | Interval |
|---|---|---|---|
| Le Monde | fr | RSS | 49 min |
| RTS Info | fr | RSS | 33 min |
| The Verge | en | RSS | 49 min |
| Apple Newsroom | en | RSS | 49 min |
| Daring Fireball | en | RSS | 60 min |
| Darknet Diaries (podcast) | en | RSS | 49 min |
| Le Louvre | fr | web page | 49 min |
The interval is adaptive: it tightens for prolific sources and relaxes for the others.
The source landscape — value × feasibility
A “magic quadrant” of the source types fornews can — or could — follow, by value for monitoring and ease of fully on-device integration.
quadrantChart
title fornews.ai source types
x-axis Hard to integrate --> Easy to integrate
y-axis Low value --> High value
quadrant-1 Integrate
quadrant-2 Scope it
quadrant-3 Drop
quadrant-4 Bonus
"RSS / Atom": [0.90, 0.92]
"JSON Feed": [0.85, 0.55]
"Fediverse": [0.80, 0.68]
"YouTube": [0.68, 0.70]
"Podcasts": [0.30, 0.85]
"Newsletters": [0.45, 0.50]
"Bluesky": [0.50, 0.48]
"PDF": [0.55, 0.45]
"Sitemaps": [0.72, 0.28]
"X / Twitter": [0.15, 0.35]
RSS/Atom, JSON Feed, YouTube and Fediverse are already ingested; podcasts and documents are under study; X/Twitter stays out of scope (no open API).
One request, several tools
“Build me a brief on AI this week” becomes, on the assistant's side, a chain of calls:
flowchart TD Q["“Brief on AI
this week”"] --> A["fornews_search_articles"] A --> B["fornews_get_article"] A --> R["fornews_related_articles"] A --> V["fornews_share_of_voice"] B --> D["Structured brief
cited sources"] R --> D V --> D
Recipes — the full potential
The power of MCP is that the assistant chains several tools to answer a plainly-worded request. A few examples.
The responses below are illustrative examples based on the fornews.ai developer's own corpus — yours will yield different results.
1. “What's happening right now?”
Three topics clearly stand out over the last two days:
- Roland-Garros — 9 recent articles (usually < 1/day), sharp surge since the day before yesterday.
- OpenAI — 6 articles, steady rise over a week.
- ECB — 4 articles clustered yesterday afternoon.
Chain: fornews_trends → fornews_timeline per
entity → fornews_search_articles to illustrate.
2. “Build me a brief on a topic”
- fetches the topic's articles (
search_articles/get_entity); - reads the most significant ones (
get_article); - groups related articles (
related_articles); - measures who covers it most (
share_of_voice) and spots blind spots (topics covered by a single source); - writes a structured brief, each claim tied to its article.
All from your corpus, filtered to your interests — not the generic web.
3. “Add sources” — without knowing the feed URL
The assistant calls fornews_detect_feeds on each domain,
picks the main feed among the confirmed candidates, then
fornews_create_source with the right language. New articles
arrive at the next refresh, translated and summarised like the rest.
4. “Create a watch rule”
# fornews_create_keyword groups = [ ["AI", "artificial intelligence"], ["ethics"] ] excluded = [ "video game" ] # ⇒ (AI OR artificial intelligence) AND (ethics) EXCEPT (video game)
The rule filters the next ingested articles (as in the app).
5. “Follow a story”
fornews_related_articles surfaces articles sharing the
same entities, ranked by closeness; fornews_timeline traces
the topic's rise. You get the thread of a story, sources and angles compared.
6. Housekeeping
fornews_list_sources reveals each source's last fetch and
interval; the assistant proposes the inactive ones, then — after your go-ahead —
fornews_update_source to disable them (or
delete_source to remove a duplicate).
Writing & care
The write tools (create/update/delete_source and
…_keyword) act on the local store of the Mac
Data Provider, which syncs via iCloud to all your devices. They stay
local and account-free, but they are not innocuous reads:
- a source or rule created here shows up on your iPhone, iPad, Mac and Apple TV;
- deleting a source also removes its articles (as in the app) — unless you opt out;
- good practice: let the assistant propose the action and confirm before it runs.