Quel est le meilleur MCP pour Obsidian ? Ce qui change quand l’IA écrit dans vos notes

Des notes Obsidian traversent une chaîne d’opérations gouvernées jusqu’à un résultat vérifié.

Il n’y a pas de réponse unique : le bon MCP Obsidian dépend de ce que vous laissez faire à votre IA. Pour lire, chercher et modifier quelques notes depuis Claude Code ou Codex, Obsidian ouvert, le serveur MCP intégré au plugin Local REST API suffit souvent ; depuis sa version 5.5, il peut même refuser d’écrire sur une note qui a changé, si l’agent lui transmet la version lue. Pour travailler sans lancer Obsidian, MCPVault et le serveur obsidian-mcp de Steven Stavrakis agissent directement sur les fichiers. Pour un agent qui enchaîne des modifications, regardez ce que chaque serveur fait quand la note a changé entre-temps, quand la réponse se perd après une écriture, et ce qu’il permet d’annuler. Cette page compare dix serveurs d’après leurs documentations au 23 octobre 2026. Un test sur un même coffre, dont le protocole a été publié avant les essais, a commencé le 23 octobre ; ses résultats compléteront cette page.

Transparence : je suis l’auteur d’Optimike Obsidian MCP, l’un des dix serveurs comparés, et je l’ai créé à partir d’obsidian-mcp-server de Casey Hand, un autre de ces dix (d’où vient Optimike). Je propose aussi Margelle, un coffre Obsidian déjà organisé : le test comparatif se joue sur une copie de ce coffre, et ses résultats seront aussi repris sur le site de Margelle. Pour le reste, cette page décrit ce que chaque projet documente ; elle ne mesure ni l’installation, ni les performances, ni le comportement réel des serveurs. Les quelques mesures et essais cités pour Optimike ont été faits chez moi, et sont signalés comme tels.

Dernière vérification : 23 octobre 2026 · Versions décrites : Local REST API 5.5.2, MCPVault 0.17.0, mcp-obsidian 0.2.3, cyanheads/obsidian-mcp-server 3.7.0, Semantic Notes Vault MCP 0.12.9, Storks/obsidian-mcp (aucune version publiée ; 0.1.0 dans son code), Optimike Obsidian MCP 3.13.0, obsidian-mcp de Steven Stavrakis 2.0.1, @huangyihe/obsidian-mcp 1.6.0, obsidian-claude-code-mcp 1.1.8 · Nature : documentations, paquets et dépôts publics · Limite : test en cours ; ses résultats bruts paraissent dans le dépôt au fil des essais et ne sont pas encore résumés ici · Prochaine revue : à la publication des résultats du test, puis au plus tard dans 30 jours, ou plus tôt si l’un des projets publie une version majeure ou un correctif de sécurité.

Réponse courte : quel MCP Obsidian pour quel besoin ?

Votre besoin principalServeur à regarder d’abordObsidian ouvert ?Niveau techniqueÀ savoir
Lire, chercher et modifier quelques notesMCP intégré au plugin Local REST APIOuiFaible à moyenUn plugin, Obsidian 1.13.1 minimum ; côté client, certificat local ou port HTTP à régler
Travailler sans lancer ObsidianMCPVault, ou obsidian-mcp de Steven StavrakisNonFaible à moyenAgissent sur les fichiers ; ne voient pas ce que les plugins ajoutent
Éditer notes, propriétés et tags avec des droits par dossiercyanheads/obsidian-mcp-serverOuiMoyenSuppression au premier appel par défaut, sans annulation par l’API ; confirmation à activer
Exploiter le graphe, Dataview et Bases depuis l’applicationSemantic Notes Vault MCPOuiFaible à moyenPlugin du catalogue communautaire ; Obsidian 1.13 minimum
Laisser un agent enchaîner des modificationsLocal REST API 5.5, obsidian-mcp de Steven Stavrakis, ou Optimike Obsidian MCP (le mien) : voir la règle ci-dessousSelon le serveurFaible à moyen pour les deux premiers, élevé pour OptimikeOptimike : compilation et extensions Obsidian (Obsidian 1.13.1 pour Local REST API, 1.13.7 avec Operon 3.12.0) ; tests automatiques sous Windows et Linux, Mac non vérifié ; suppression directe définitive, sans confirmation côté serveur, dans les profils operational et full ; pas pour un besoin simple

Trois précisions de vocabulaire. Un MCP (Model Context Protocol) est un standard qui permet à une application d’IA d’utiliser des outils externes, ici l’accès à votre coffre. Un serveur headless travaille directement sur les fichiers, sans l’application Obsidian ouverte ; un serveur live passe par l’application et profite de ses plugins. Une précondition est une condition vérifiée au moment d’écrire, par exemple : « n’écris que si la note est encore dans la version que j’ai lue ».

Si votre agent modifie des notes : une règle de choix

D’après leurs documentations, et en attendant le test :

  • Local REST API 5.5 si vos agents modifient surtout des notes et leurs propriétés, Obsidian ouvert. Ses outils d’écriture acceptent la version renvoyée par la lecture (paramètre ifMatch) : elle protège toute la durée entre la lecture et l’écriture, mais seulement si l’agent la passe dans son appel. Écrivez-le dans ses consignes permanentes, puis vérifiez.
  • obsidian-mcp de Steven Stavrakis si vous travaillez sans Obsidian et tenez à une corbeille, à un journal des écritures et à des instantanés restaurables. Même condition : l’agent doit transmettre l’empreinte lue (if_match).
  • Optimike Obsidian MCP si vous déléguez aussi des formules de Base, des Canvas ou des tâches Operon (un plugin de gestion de tâches), Obsidian ouvert, sous Windows ou Linux, et acceptez une installation technique. Le profil standard ne montre à l’agent que des écritures protégées. Deux réserves : son plan ne reçoit pas la version que l’agent a lue, il fige l’état de la note au moment où il est préparé ; et avec un gestionnaire de dates actif, il refuse une note qui n’a pas encore de date de création (ses limites).

Pour vérifier sur une copie de votre coffre que la protection joue avec votre agent : faites-lui lire une note par le serveur (avec Optimike, préparer le plan), modifiez cette note vous-même dans Obsidian et enregistrez, puis faites-lui écrire (avec Optimike, appliquer le plan). Seul un refus pour conflit de version prouve que la protection a joué ; une écriture acceptée qui efface votre modification prouve le contraire.

Les dix options pour connecter une IA à Obsidian

Le Model Context Protocol a rendu la connexion entre une IA et un coffre Obsidian relativement simple. Pour utiliser Obsidian avec une IA, dix serveurs publics sont décrits ici, au 23 octobre 2026, rangés par architecture : elle décide de ce que le serveur voit et de ce qu’il demande à l’installation. Cette liste n’est pas un recensement. Elle reprend les sept projets de la version précédente de cette page, dont Optimike, et ajoute les serveurs locaux de lecture et d’écriture qui atteignaient au moins 300 étoiles parmi les quinze premiers résultats de la recherche GitHub obsidian mcp in:name fork:false, triée par étoiles, le 23 octobre 2026. Optimike n’y figure pas : il est ici parce que c’est le mien et qu’il était déjà comparé. Les étoiles mesurent une visibilité, pas un usage.

Dans Obsidian, comme plugin

Le MCP intégré à Local REST API. Local REST API est un plugin communautaire très répandu, qui expose le coffre aux autres logiciels de la machine et intègre son propre serveur MCP, protégé par la même clé. Depuis la version 5.5 (17 octobre 2026), toutes ses écritures, propriétés comprises, acceptent une précondition : la lecture d’une note renvoie un jeton de version, et une écriture qui transmet ce jeton est refusée, sans rien écrire, si la note a changé entre-temps ; chaque écriture renvoie la nouvelle version. Il sait aussi créer une note seulement si elle n’existe pas, et il traite ses écritures une à une, fichier par fichier : deux clients munis de la même version ne peuvent pas passer tous les deux. Cette file d’attente ne voit pas les modifications faites dans l’éditeur ou par d’autres programmes : contre celles-là, seule la précondition protège, et elle n’est pas implicite. Les suppressions vont dans la corbeille par défaut et le dossier .obsidian reste inaccessible. Obsidian 1.13.1 minimum. La 5.4.0 du 6 octobre corrigeait une faille de gravité élevée : utilisez la 5.5.2 ou une version plus récente.

Semantic Notes Vault MCP. Semantic Notes Vault MCP est un plugin du catalogue communautaire qui fait tourner le serveur MCP dans Obsidian, sans programme à lancer à côté ; pour Claude Desktop, un paquet .mcpb s’installe par glisser-déposer. Il travaille sur le graphe, les liens, Dataview et Bases, avec des droits par opération et par chemin, un fichier d’exclusion et un mode lecture seule. Je n’ai pas trouvé de jeton de version dans sa documentation, dont la page sur l’édition renvoyait une erreur 404 le 23 octobre. Version 0.12.9 du 16 septembre 2026 ; Obsidian 1.13 minimum.

obsidian-claude-code-mcp. Ce plugin d’iansinnott expose sept outils : lister les fichiers, voir la note active ou une note, remplacer un passage, créer, insérer, et un accès direct à l’API d’Obsidian que sa propre description dit « sans restriction » et expérimental. Au moment d’écrire, il relit la note et exige une occurrence unique avant de remplacer, et vérifie qu’un fichier n’existe pas avant de le créer : cela peut épargner une retouche faite ailleurs dans la note, sans vérifier une version de façon atomique. Il utilise SSE, l’ancien transport de MCP. Version 1.1.8 du 23 juin 2025.

Au-dessus de Local REST API

Ces serveurs passent par le plugin Local REST API : Obsidian doit rester ouvert. Depuis la 5.5, un point compte : passer par un intermédiaire ne donne pas automatiquement accès aux préconditions du plugin. Il faut que l’intermédiaire les transmette.

mcp-obsidian de MarkusPfundstein. Ce pont Python léger lit et recherche des notes, ajoute du texte, modifie un passage sous un titre, un bloc ou une propriété, et supprime avec confirmation. Version 0.2.3 sur PyPI, du 20 août 2026 (le dépôt GitHub indique 0.2.2) ; Python 3.11 minimum. Je n’ai pas trouvé de précondition de version dans le schéma de ses outils.

cyanheads/obsidian-mcp-server. Le serveur de Casey Hand va plus loin sur l’édition structurée : écritures ciblées, propriétés et tags, droits par dossier, mode lecture seule, validation du YAML ; il refuse de réécrire une note entière sans option explicite, refuse un ajout dont le contenu est déjà présent à l’endroit visé, et chaque erreur indique comment s’en sortir. Ses écritures et suppressions exigent le chemin exact. Une suppression s’exécute au premier appel, sans annulation par l’API (seule la corbeille locale d’Obsidian peut aider), sauf si vous activez la demande de confirmation. Je n’ai pas trouvé de précondition de version transmise au plugin. Version 3.7.0 du 6 octobre 2026 ; Node.js 24 ou Bun. C’est aussi le projet dont est parti Optimike.

@huangyihe/obsidian-mcp. Ce serveur crée, remplace, supprime et déplace notes et dossiers par Local REST API. Version stable 1.6.0 sur npm, du 8 juillet 2025 ; la version bêta annoncée sur le dépôt n’est pas décrite ici. Je n’ai trouvé ni précondition de version ni relecture automatique dans sa documentation publiée.

Optimike Obsidian MCP. Mon serveur passe aussi par Local REST API en mode live, avec ses propres extensions Obsidian. Il couvre notes, propriétés, Bases, Canvas, tâches Operon et documents hors du coffre ; sans Obsidian, il travaille sur une copie, sans ses écritures protégées. Celles-ci passent par un plan, une application refusée si la note a changé depuis le plan, puis une relecture ; il garde aussi des écritures directes sans ces garanties. Version 3.13.0 du 18 octobre 2026 ; Node.js 22.12 et compilation locale (détail).

Directement sur les fichiers

MCPVault. MCPVault travaille sur les fichiers, sans plugin ni Obsidian ouvert ; il s’installe à la volée par npx (Node.js 20 minimum). Il confine les chemins, demande de confirmer le chemin avant une suppression ou un déplacement, propose un mode lecture seule et conserve le format des propriétés qu’il ne modifie pas. Ses suppressions sont définitives par défaut ; une option les envoie dans la corbeille du coffre ou du système. La version 0.17.0 du 22 octobre 2026 ajoute des exclusions de recherche et de listing ; elles masquent des chemins sans en interdire l’accès direct. Son outil write_note remplace la note par défaut ; je n’ai pas trouvé de précondition de version. Il ne voit pas ce que les plugins ajoutent au coffre.

obsidian-mcp de Steven Stavrakis. Ce serveur travaille aussi sur les fichiers, sans plugin. Sa documentation décrit des garanties d’écriture explicites : une empreinte SHA-256 renvoyée à la lecture, à transmettre (if_match) pour modifier, déplacer ou supprimer, avec un conflit de révision signalé au lieu d’un écrasement ; une création qui n’écrase pas une note existante ; une corbeille par défaut, la suppression définitive exigeant de confirmer le chemin exact ; des écritures journalisées et atomiques, avec transactions et instantanés restaurables en ligne de commande, serveur arrêté. Je n’y ai trouvé ni outil dédié aux propriétés, ni statut MCP pour retrouver une écriture dont la réponse s’est perdue. Ces garanties sont documentées et non essayées ici, comme celles des autres serveurs. Version 2.0.1 sur npm, du 14 août 2026 ; Node.js 22 minimum.

Par la CLI d’Obsidian

Storks/obsidian-mcp. Ce serveur pilote Obsidian par sa CLI officielle, disponible depuis la version 1.12, application ouverte. Il demande Python 3.11, l’outil uv et l’activation de la CLI ; sous Windows, sa documentation mentionne encore un fichier réservé aux membres Catalyst, un passage peut-être daté. Il crée, réécrit, complète, déplace et supprime des notes, modifie des propriétés et gère des tâches. Je n’y ai trouvé ni précondition de version ni journal. Aucune version publiée ; dernier commit le 28 février 2026.

À ma connaissance, Obsidian ne publie pas de serveur MCP officiel (dernière recherche le 8 octobre 2026). MCP Tools for Obsidian, mon premier choix en 2025, est archivé : il n’est pas comparé.

Comment choisir : six critères appliqués à chaque projet

Le nombre d’outils exposés dit peu de chose. Les six critères ci-dessous décrivent ce que chaque documentation publique annonce au 23 octobre 2026. « Non trouvé » signifie que je n’ai pas trouvé la fonction dans la documentation lue, pas qu’elle est impossible. Avec tous ces serveurs, l’agent peut relire une note pour savoir si une écriture a eu lieu ; la colonne « Après une réponse perdue » indique ce qui est prévu en plus. Ce tableau ne mesure rien : il dit quoi vérifier.

ProjetObsidian ouvertObjets comprisContrôle des écrituresAprès une réponse perdueAnnuler ou restaurerInstallation et version
MCP de Local REST APIOuiNotes, sections, propriétés, recherche, commandes ObsidianPrécondition de version sur toutes les écritures, si l’agent la transmet ; création conditionnelle ; .obsidian inaccessibleChaque écriture renvoie la nouvelle version ; une relance qui transmet l’ancienne est refuséeCorbeille par défaut pour les suppressionsPlugin ; 5.5.2, 17 oct. 2026
Semantic Notes Vault MCPOui (plugin)Graphe, liens, Dataview, BasesDroits par opération et par chemin ; fichier d’exclusion ; lecture seuleNon trouvéNon trouvéPlugin du catalogue ; 0.12.9, 16 sept. 2026
obsidian-claude-code-mcpOui (plugin)Notes ; accès direct à l’API d’ObsidianRemplacement d’une occurrence unique, relue au moment d’écrire ; création si absenteNon trouvéNon trouvéPlugin, transport SSE ; 1.1.8, 23 juin 2025
mcp-obsidian (MarkusPfundstein)OuiNotes, titres, blocs, propriétésSuppression confirmée ; précondition non trouvéeNon trouvéNon trouvéPaquet Python + Local REST API ; 0.2.3, 20 août 2026
cyanheads/obsidian-mcp-serverOuiNotes, propriétés, tagsDroits par dossier ; lecture seule ; chemin exact ; réécriture complète sur option ; confirmation de suppression en optionUn ajout déjà présent est refusé ; chaque erreur indique la marche à suivreCorbeille locale d’Obsidian seulementPaquet npm (Node.js 24) + Local REST API ; 3.7.0, 6 oct. 2026
@huangyihe/obsidian-mcpOuiNotes, dossiersNon trouvéNon trouvéNon trouvéPaquet npm + Local REST API ; 1.6.0, 8 juil. 2025
Optimike Obsidian MCPOui pour les écritures protégéesNotes, propriétés, formules de Base, Canvas, tâches Operon, documents hors coffreÉcritures protégées : plan, refus si la note a changé depuis le plan, relecture ; à ouvrir fonction par fonction. Écritures directes, dont une suppression définitive sans confirmation : ouvertes par défaut dans les profils qui les proposentStatut pour les écritures protégées ; reprise exacte pour cinq famillesAucune annulation (reprendre n’est pas annuler)Clone, compilation, Node.js 22.12, Local REST API et extensions ; 3.13.0, 18 oct. 2026
MCPVaultNonFichiers Markdown, propriétés, tagsChemins confinés ; confirmation du chemin avant suppression ou déplacement ; lecture seuleNon trouvéCorbeille en option (coffre ou système) ; suppression définitive par défautnpx (Node.js 20) ; 0.17.0, 22 oct. 2026
obsidian-mcp (Steven Stavrakis)NonNotes, tagsEmpreinte SHA-256 comme précondition, si l’agent la transmet ; création sans écrasement ; confirmation du chemin exact avant suppression définitive ; journal, remplacement atomiqueUne relance qui transmet l’ancienne empreinte est refusée ; pas de statut MCP trouvéCorbeille par défaut ; transactions et instantanés restaurables, serveur arrêtéPaquet npm (Node.js 22) ; 2.0.1, 14 août 2026
Storks/obsidian-mcpOuiFonctions de la CLI, dont propriétés et tâchesNon trouvéNon trouvéNon trouvéClone, Python 3.11 et uv, CLI activée ; aucune version, dernier commit 28 févr. 2026

Pour lire, chercher et modifier quelques notes, commencez par le MCP intégré à Local REST API : rien d’autre à installer dans Obsidian, et le réglage côté client est décrit plus bas. mcp-obsidian, cyanheads et @huangyihe/obsidian-mcp rendent ce service de l’extérieur, sans transmettre la précondition du plugin d’après leur documentation.

Pour une édition plus structurée avec des droits par dossier, cyanheads/obsidian-mcp-server couvre beaucoup de terrain ; activez la confirmation de suppression. Pour travailler sans lancer Obsidian, MCPVault et obsidian-mcp de Steven Stavrakis répondent au besoin, le second avec des écritures conditionnelles, une corbeille par défaut, un journal et une restauration ; aucun des deux ne voit ce que les plugins ajoutent. Pour exploiter le graphe, Dataview et Bases, Semantic Notes Vault MCP s’exécute dans l’application et s’installe depuis le catalogue.

Pour qu’un agent enchaîne des modifications, le refus d’écrire sur une note qui a changé ne suffit plus à départager : Local REST API 5.5, obsidian-mcp de Steven Stavrakis et Optimike le documentent, chacun à sa façon et pas sur la même durée (voir le tableau des pannes plus bas), et chez tous l’agent doit utiliser l’outil ou le paramètre prévu. Comparez plutôt les objets que vous déléguez vraiment, ce que vous pourrez annuler, ce qui est prévu quand une réponse se perd, et le coût d’installation sur votre système. Optimike documente un statut pour ses écritures protégées et une reprise pour cinq familles ; le test dira si cela change quelque chose face aux autres. Avec Optimike, choisissez un profil sans suppression directe (standard ou authoring).

Pourquoi agir n’est pas lire

Un agent enchaîne des opérations sur un état qui peut changer pendant qu’il travaille. Prenons une demande simple :

Dans la fiche du projet, remplace « essai prévu jeudi » par « essai prévu vendredi », puis mets à jour la prochaine action.

Trois situations font échouer cette demande. D’abord, la concurrence : l’agent lit la fiche, vous la retouchez dans Obsidian pendant qu’il réfléchit, puis il écrit à partir de l’ancien état et écrase votre retouche. Ensuite, l’incertitude : la connexion se coupe juste après une écriture réussie, et l’agent ne sait plus si l’action a eu lieu ; s’il la relance sans précondition ni vérification, il peut la faire deux fois. Enfin, la fraîcheur, pour les serveurs qui travaillent sur une copie ou un cache : une copie peut être lisible tout en étant trop ancienne pour justifier une écriture.

Voici ce que trois serveurs documentent face aux deux premières. Rien de cela n’a encore été essayé sur un même coffre.

SituationLocal REST API 5.5obsidian-mcp (Steven Stavrakis)Optimike Obsidian MCP
Vous retouchez la note pendant que l’agent prépare son écritureÉcriture refusée si l’agent transmet la version qu’il a lueÉcriture refusée si l’agent transmet l’empreinte qu’il a lueÉcriture refusée si la note change entre le plan et son application. Une retouche faite avant le plan n’est pas comparée à la lecture de l’agent : un remplacement ciblé échoue si le passage a changé, une note ou une propriété réécrite d’après l’ancienne lecture passe
La réponse se perd après l’écritureRelire la note ; une relance qui transmet l’ancienne version est refuséeRelire la note ; une relance qui transmet l’ancienne empreinte est refuséeDemander le statut de l’opération ; reprendre avec le même plan si besoin

Il faut aussi respecter les règles de l’outil qui gère l’objet. Une tâche Markdown peut porter un identifiant, des dates, des dépendances et des statuts personnalisés : le plugin Obsidian Tasks les gère. Modifier directement la ligne ne garantit pas que la transition respecte le workflow configuré. De même, le YAML d’un fichier .base définit ses filtres, ses formules et ses vues, mais l’éditer ne dit pas ce qu’Obsidian affichera : seule l’application évalue la Base. Le guide Obsidian et agents IA pose les autres garde-fous : ce que l’agent a le droit de lire, de proposer et de modifier.

Comment connecter Obsidian à Claude, Codex ou ChatGPT

Le principe est le même partout : votre client d’IA lance ou contacte un serveur MCP, et ce serveur accède au coffre. Le pas-à-pas pour chaque client est dans le tutoriel Connecter Obsidian à Claude, Codex ou ChatGPT avec MCP. Ses étapes pour Claude Code, Codex et Claude Desktop branchent le serveur MCP de Local REST API ; son étape ChatGPT passe par Optimike, qui s’installe à part (ce que ça demande).

  • Claude Code et Codex se configurent avec une commande locale (stdio) ou une adresse HTTP, ce qui couvre la plupart des serveurs de cette page. Pour l’adresse HTTPS de Local REST API, votre client doit faire confiance au certificat généré par le plugin ; sinon, activez son port HTTP local, désactivé par défaut.
  • Claude Desktop lance les serveurs locaux déclarés dans sa configuration. Pour un serveur HTTP local comme celui de Local REST API, il faut en général un petit pont comme mcp-remote, qui demande Node.js ; Semantic Notes Vault MCP fournit son propre paquet pour Claude Desktop.
  • ChatGPT fonctionne dans le cloud et ne joint pas une adresse locale de votre machine : le serveur MCP doit lui être accessible en HTTPS. J’utilise le tunnel MCP sécurisé d’OpenAI, qui évite d’exposer un serveur public ; il faut un compte ChatGPT éligible et le client de tunnel sur votre machine. Je ne l’ai essayé qu’avec Optimike. Un serveur MCP distant, correctement sécurisé, est une autre voie que je n’ai pas testée.

Essais sur mon coffre, avec ma version de travail : le 8 octobre 2026, une recherche lancée depuis ChatGPT a abouti par ce chemin, sur l’application ouverte et non sur le cache ; ce test portait sur la lecture. Le 20 septembre, avec une version antérieure, une modification protégée lancée depuis ChatGPT avait été appliquée, vérifiée par le serveur, puis contrôlée à part : l’ajout présent une seule fois, le reste de la note inchangé, à part sa date de modification. Le 21 octobre, un essai a lu un contenu vide : le serveur était en reconstruction. Ces essais sont dans mes fichiers, pas sur GitHub, et le refus d’une modification devenue ancienne n’a pas été essayé depuis ChatGPT.

Optimike, le serveur de l’auteur : ce qu’il ajoute à Local REST API

Cette section et les trois suivantes portent sur mon serveur ; elles sont séparées du comparatif pour que vous puissiez les sauter. Optimike Obsidian MCP est gratuit et open source, sous licence Apache-2.0 ; sa version 3.13.0 date du 18 octobre 2026. En mode live, il s’appuie sur Local REST API et ajoute ce que j’appelle un contrat d’action : il borne ce qu’un agent peut lire ou écrire selon le mode d’exécution, les autorisations accordées et l’état observé du coffre. Il couvre :

  • les notes, la recherche, les propriétés et les tags ;
  • les Bases (propriété d’une note choisie depuis une Base, formules) et les Canvas, avec des écritures bornées ;
  • la lecture des tâches au format Obsidian Tasks, et l’écriture de tâches seulement avec Operon, par 25 outils et l’API du plugin plutôt qu’en modifiant les lignes ;
  • la recherche sémantique dans l’index de Smart Connections, avec une requête calculée par Ollama, par un fournisseur compatible OpenAI ou, depuis la 3.13, par le modèle intégré de Smart Connections (dépendance facultative d’environ 470 Mo, puis 66 Mo de modèle au premier usage) ;
  • l’accès à des documents hors du coffre, refusé par défaut et ouvert dossier par dossier.

Cinq modes d’exécution

Le mode décrit les conditions réelles. En live, il passe par Obsidian Desktop et Local REST API ; en hybrid, un cache prend le relais pour lire si l’application se ferme, et les écritures s’arrêtent. Les trois modes headless travaillent sur le dossier que vous leur indiquez, une copie ou un coffre dédié, sans les écritures protégées : en lecture seule, avec quelques écritures prudentes, ou avec davantage d’écritures directes. Sans l’application, les fonctions qui dépendent des plugins sont absentes ou refusées, et le serveur le signale au lieu de simuler. Le détail est dans la matrice des capacités.

Schéma des cinq modes d’exécution d’Optimike Obsidian MCP : live, hybrid, headless readonly, headless guarded et headless filesystem, avec des capacités de lecture et d’écriture distinctes.
Les cinq modes ne promettent pas la même chose : la lecture et l’écriture dépendent de ce qui est réellement disponible.

Des écritures en deux temps

Pour remplacer une note, modifier son texte, changer ses propriétés, éditer une formule de Base ou un Canvas, l’agent prépare d’abord un plan : il donne la note visée et la modification voulue, et l’extension concernée (Atomic Write Bridge, ou Bases Bridge pour une formule) lit le fichier à cet instant, puis scelle son empreinte avec la modification, sans rien écrire. Il l’applique ensuite : l’extension relit le fichier et compare son empreinte SHA-256 à celle du plan ; s’il a changé depuis le plan, l’écriture est refusée. Le plan ne reçoit pas la version que l’agent a lue plus tôt : une retouche faite entre cette lecture et le plan n’est pas détectée par ce contrôle. Le serveur relit la note avant de déclarer l’écriture faite, et l’écriture n’est réussie que lorsque son statut indique qu’elle est enregistrée puis vérifiée. Ce que la documentation garantit dépend de l’opération :

  • texte d’une note (détail) : ajout en début ou en fin de corps, remplacement d’une occurrence exacte unique ; pas d’expression régulière ; les vraies lignes de tâches sont protégées ; les propriétés restent identiques à l’octet si aucune n’est demandée, à part la date posée par un gestionnaire de dates dans les conditions documentées ;
  • propriétés (détail) : ajout, remplacement ou suppression de clés de premier niveau ; le reste du fichier (corps, commentaires, autres clés, fins de ligne) reste identique à l’octet ; une forme YAML ambiguë est refusée plutôt que réécrite.

Depuis la 3.12, un même plan peut modifier le texte et les propriétés d’une note. Après une coupure, l’agent demande le statut avant toute nouvelle tentative. Pour cinq familles (remplacement de note, texte, propriétés, formules de Base, Canvas), un outil de reprise rejoue au besoin l’opération exacte avec le même plan et la même clé d’idempotence, un identifiant qui empêche de l’appliquer deux fois ; la création, le déplacement et la modification d’une ligne de Base n’ont que le plan, l’application et le statut. Reprendre n’est pas annuler, et le journal ne garde pas ces clés indéfiniment. Ces contrôles portent sur la note visée : ils n’annulent ni Sync, ni les effets d’autres plugins, ni ceux des programmes qui écrivent hors d’Obsidian. Pour les tâches, l’extension Operon Bridge exige la révision attendue, refuse d’appliquer deux fois une même requête et relit l’état après l’écriture (contrat MCP Operon).

Chaîne d’action gouvernée d’un agent : intention, capacité, plan, application, vérification et reprise exacte.
L’écriture n’a lieu que si les conditions observées sont toujours vraies, puis elle est vérifiée ; selon l’opération, elle peut être reprise à l’identique.

Moins d’outils visibles

Un profil choisit les outils que l’agent voit : standard par défaut (30 outils en mode live), authoring (44), tasks (36), operational (84) ou full (88), hors trois outils facultatifs d’import d’images. Il n’ouvre pas les écritures protégées : elles restent fermées tant que vous ne les ouvrez pas, fonction par fonction. Les écritures directes, elles, fonctionnent dès que leur outil est visible : choisir operational ou full donne donc à l’agent la suppression directe. Le profil standard n’en montre aucune ; authoring, operational et full en gardent, sans plan ni reprise (tags, création de Bases et lignes de Base, plus la suppression de note pour les deux derniers).

Installer Optimike Obsidian MCP : ce que ça demande

C’est une installation technique, à faire vous-même. Même pour lire et chercher, il faut Node.js, le code, une compilation et Local REST API ; pour les écritures protégées, il faut en plus des extensions dans Obsidian et des autorisations.

  1. Installer Node.js 22.12 ou plus récent et npm, puis récupérer le code par git clone ou par l’archive de la version.
  2. Dans un terminal, lancer npm install puis npm run build ; choisir le coffre, le mode d’exécution et le profil.
  3. Pour le mode live, ouvrir Obsidian sur le bon coffre, activer le plugin Local REST API et reporter son adresse locale et sa clé dans la configuration privée du serveur.
  4. Pour les écritures protégées, ajouter l’extension Atomic Write Bridge ; pour les Bases, Bases Bridge ; pour les tâches, Operon (sa version 3.12.0 demande Obsidian 1.13.7) et Operon Bridge. Le paquet de la version fournit ces trois extensions avec leurs empreintes ; elles se copient Obsidian fermé, et Obsidian reste ensuite ouvert pendant que l’agent travaille. L’installateur conserve vos réglages et n’ouvre aucune écriture.
  5. Ouvrir les écritures protégées fonction par fonction, et choisir le profil : les écritures directes du profil choisi sont ouvertes dès qu’il est actif.
  6. Déclarer le serveur dans votre client, le relancer, puis lui faire lire une note que vous connaissez avant de lui confier une modification.

En option : Smart Connections et un modèle compatible pour la recherche sémantique, des dossiers hors du coffre, l’import d’images, le module facultatif pour Frontmatter Date Manager. Le README et les options d’installation détaillent chaque étape.

Combien de temps ? Je ne l’ai pas mesuré pour une installation complète. Sur un poste déjà équipé, le 22 octobre 2026, npm install a pris 58 secondes, après un premier essai échoué dont la cause n’est pas établie, et la compilation 14 secondes ; cela ne compte ni la configuration, ni les extensions, ni un parcours ChatGPT. Les tests automatiques tournent sous Windows et Linux ; sur Mac, le fonctionnement n’est pas vérifié. Pour ChatGPT, ajoutez le tunnel sécurisé, un compte qui accepte les connecteurs et un ordinateur allumé pendant la conversation.

Les limites d’Optimike

Optimike est plus complexe qu’un plugin ou qu’un accès direct aux fichiers, et ce n’est pas le bon choix pour un besoin simple.

Il ne protège que ce qui passe par ses outils protégés, et seulement depuis le plan. Le plan fige l’état de la note au moment où il est préparé, pas la version que l’agent a lue. Ses écritures directes n’ont aucune de ces garanties. Son outil de suppression directe se décrit lui-même comme définitif, sans reçu ni annulation, et essaie le chemin exact puis un chemin qui ne diffère que par les majuscules ; je n’y ai pas trouvé de demande de confirmation. Un agent qui garde un accès au terminal ou aux fichiers peut aussi écrire par d’autres chemins. Optimike ne verrouille pas votre ordinateur et ne demande pas votre accord à la place du client d’IA.

Il refuse les notes sans date de création. Avec un gestionnaire de dates actif, comme Frontmatter Date Manager, ses écritures protégées refusent une note qui n’a pas encore sa propriété de date de création : c’est un comportement documenté de la 3.13.0. Dans le coffre que je vends, 218 notes sur 253 sont dans ce cas tant qu’elles n’ont pas été enregistrées une fois dans Obsidian, où le gestionnaire de dates les date.

Votre agent ne s’en sert que s’il voit ses outils, chargés à temps, et en a un pour le geste demandé. Le 22 octobre 2026, sur des copies de mon coffre vendu, dans sa version 1.0.5, Claude Code et Codex ont joué quatre tâches courantes avec Optimike 3.13.0 branché sur Local REST API 5.5.2. Trois tâches portaient sur les vues, les filtres et les colonnes d’une Base, qu’Optimike ne sait pas modifier de façon protégée : les agents ont modifié le fichier eux-mêmes. Ils n’ont appelé Optimike, pour quoi que ce soit, que dans 9 essais sur 34, et Codex commençait parfois avant que ses outils soient chargés. Toutes les tâches jouées ont réussi : 48 sur 48 sans MCP, 34 sur 34 avec Optimike ; cette seconde série s’est arrêtée à 34 essais sur 48 prévus, quand la mémoire libre de l’ordinateur d’essai est passée sous 1 Go. Aucun gain mesuré, aucun dégât observé, et aucune tâche ne faisait se croiser deux modifications, le cas pour lequel il est fait. Pour modifier une note, demandez à l’agent de passer par ses outils protégés.

Ce que je n’ai pas encore vu marcher. Hors des tests automatiques du dépôt, qui tournent sur des données d’essai, je n’ai observé le refus d’une modification devenue ancienne dans Obsidian qu’une fois, le 20 septembre, avec la version 3.8.2, une note changée par un script et le gestionnaire de dates suspendu ; jamais après une retouche faite dans l’éditeur.

Une couverture bornée. Bases : la propriété d’une note existante et les formules, pas les vues, les filtres ni l’ajout de lignes. Canvas : des nœuds et des liens validés, sans jugement de la mise en page. Déplacement : une note à la fois, au plus 16 notes qui la citent contrôlées, sans annulation. Création : seulement si la note n’existe pas, sans annulation. Documents hors du coffre : lecture, liste et empreintes ; leur déplacement reste désactivé. Pas d’extraction de texte des PDF, documents Office ou images : le fichier est transmis, l’extraction reste à la charge du client.

Sans Obsidian ou à distance. Les modes headless ne reproduisent pas Obsidian Desktop, et leurs écritures les plus larges se testent sur une copie ou un coffre dédié. L’accès HTTP depuis une autre machine reste expérimental : le serveur ne doit pas être exposé directement sur Internet. Les Skills publiées par Optimike (extension Skills over MCP, depuis la 3.10) ne sont prises en charge nativement que par les clients qui gèrent cette extension ; ChatGPT peut en revanche lire les fichiers SKILL.md par les outils documentaires.

Versions. À installer aujourd’hui : la 3.13.0 avec Local REST API 5.5.2 et les extensions de la version, la combinaison branchée le 22 octobre. Ma dernière série complète d’essais de compatibilité, faite par moi et non par un tiers, date de la 3.9.1, avec Local REST API 5.1.0, antérieure au correctif de sécurité de la 5.4.0, et Operon 3.9.3 ; depuis, Operon 3.12.0 est accepté par moi « à titre provisoire ». Chez moi tourne une version de travail, une 3.11.0 avec des correctifs locaux, dont le code des écritures protégées correspond à la version publique pour les fichiers comparés.

Vitesse. Avec Frontmatter Date Manager actif, Optimike attend que ce plugin ait fini avant de vérifier une écriture. Dans les essais publiés avec la 3.12.0, une modification vérifiée prenait alors environ 38 secondes, et 1,5 seconde en médiane avec un module facultatif qualifié pour la seule version 1.6.0 de ce plugin. Ce sont quelques essais sur une petite note, dans une seule installation : vos temps peuvent différer.

D’où vient Optimike

Optimike Obsidian MCP est gratuit et libre, sous licence Apache-2.0, et n’est pas inclus dans ce que je vends : Margelle le présente comme un add-on non inclus, gratuit, à installation technique, dont le support passe par GitHub. En juin 2025, ma question était simple : comment donner à une IA un accès utile à mon coffre ? J’avais retenu MCP Tools for Obsidian. Puis j’ai voulu que des agents gèrent aussi mes tâches avec Operon. Accéder au coffre restait simple ; y agir sans écraser un état, dépasser une permission ou perdre la trace d’une écriture l’était beaucoup moins.

Je l’ai créé à partir d’obsidian-mcp-server, le projet libre de Casey Hand (cyanheads), dont la licence garde le copyright. J’en suis parti en 2025, à sa version 2.0.7, qui comptait 8 outils. La version 3.13 en compte 88 dans son catalogue complet (un même geste en compte jusqu’à quatre : préparer, appliquer, vérifier, reprendre), avec huit fois plus de code, extensions comprises. Trois extensions Obsidian et les outils de modification protégée n’existaient pas au départ, pas plus que les 169 fichiers de tests automatiques. Ces chiffres se vérifient sur le code public des deux versions : obsidian-mcp-server 2.0.7 et Optimike 3.13.0.

De son côté, obsidian-mcp-server a continué d’évoluer : sa version 3.7.0, décrite plus haut, a ses propres tests et sa propre intégration continue. Les chiffres ci-dessus comparent Optimike à sa version de départ, pas au projet d’aujourd’hui.

Le test comparatif : protocole publié, campagne en cours

Comparer des documentations ne dit pas ce qui se passe quand un agent écrit vraiment. Le protocole d’un test ouvert, ses tâches, ses scripts de vérification et l’ordre des essais ont été publiés le 23 octobre 2026, avant tout essai de la campagne, dans le dépôt optimikelabs/obsidian-mcp-comparatif (commit e3477a8), puis amendés le même jour, avant la première mesure (amendement v1.1, commit 1e698f6). Ce qui est fixé d’avance :

  • Mêmes conditions pour les dix serveurs : le même agent (Codex CLI 0.160.1, modèle gpt-6.1-sol, effort high), un contexte neuf à chaque essai, une copie neuve du même coffre, préparée de la même façon (chaque fiche est enregistrée dans Obsidian avant l’essai, ce qui lui donne ses dates), la même consigne. Chaque serveur est joué dans le mode que documente son projet ; pour les tâches de concurrence, Obsidian est ouvert pour tous, puisque la retouche se fait dans son éditeur. L’agent mesuré n’a accès qu’au serveur testé : ni terminal, ni accès direct aux fichiers. Chaque serveur est installé par un agent de préparation, distinct de l’agent mesuré, en 30 minutes au plus.
  • Neuf tâches : lire un projet, modifier un passage, changer une propriété, créer une note, puis cinq incidents : une création en collision, deux écritures différentes dans la même note, deux intentions incompatibles sur un passage, les mêmes intentions avec une retouche faite entre la lecture de l’agent et sa première écriture (son plan, pour Optimike), et une écriture dont la réponse se perd. Pour les quatre premiers incidents, une requête de l’agent est retenue avant d’arriver au serveur, le temps qu’un script enregistre une retouche dans l’éditeur d’Obsidian ; pour le dernier, seule la connexion de l’agent est coupée.
  • Une vérification indépendante de l’agent, octet par octet, et des mesures séparées, sans note globale : tâche réussie et vérifiée, effets non voulus, interventions, refus et conflits, reprise, coût.
  • 190 essais : les huit premières tâches une fois par serveur, puis quatre incidents deux fois de plus, et le nouvel incident trois fois. Seules les tâches jouées trois fois pourront fonder une phrase de résultat ; un essai non joué reste visible, avec sa raison.
  • Un droit de réponse : les mainteneurs ne sont pas prévenus d’office ; ils ont sept jours après la publication des traces pour vérifier configuration et traces, et une réponse tardive va en annexe, sans effacer l’essai.

Ces choix ne sont pas neutres. Les seules tâches répétées portent sur le cas pour lequel Optimike est conçu ; l’amendement y a ajouté son point faible, une retouche faite avant son plan, que les autres incidents ne jouaient pas. Le coffre est une copie de Margelle 1.0.6, le produit que je vends, avec ses règles, écrites par moi, et son gestionnaire de dates : Optimike sait l’attendre, aucun autre serveur ne le documente dans ce que j’ai lu, mais le module qui accélère cette attente n’est pas installé dans ce coffre. Je fournis moi-même la configuration de mon serveur. Optimike a été essayé sur ce coffre avant la campagne, et son dépôt contient un banc d’essai du choix de ses outils par Codex, l’agent du test. Cet essai préalable a montré qu’il refuse une fiche sans date de création : c’est de là que vient la préparation commune décrite plus haut. D’autres biais restent, et l’amendement les dit : un seul agent ; le corpus libre fourni dans le dépôt, qui reproduit les notes de test mais pas les règles ni les automatismes du coffre, n’est pas rejoué ; une seule répétition des tâches courantes ; les mainteneurs ne sont pas prévenus avant le test. Un seul agent est mesuré : les résultats ne vaudront pas d’office pour Claude Code. Trois répétitions ne mesurent pas un risque rare, et une relecture du protocole par IA ne remplace pas une reproduction par un tiers.

Résultats : la campagne a commencé le 23 octobre. Les résultats bruts paraissent dans le dépôt essai par essai, avec les essais non joués et les incidents ; ils seront résumés ici, critère par critère, sans classement, une fois les séries terminées et relues.

Conclusion

Pour retrouver une information ou résumer un dossier, plusieurs serveurs peuvent suffire, et le plus simple est souvent le bon point de départ. Le choix devient plus exigeant quand l’agent modifie vos notes. Vérifiez alors, dans la documentation puis sur une copie de votre coffre : le serveur refuse-t-il une écriture sur une note qui a changé depuis que l’agent l’a lue, et votre agent transmet-il ce qu’il faut pour cela ? Que saurez-vous d’une écriture dont la réponse s’est perdue ? Que pourrez-vous annuler ou restaurer ? L’installation tient-elle sur votre système, avec ou sans Obsidian ouvert ?

Pour un agent qui modifie surtout des notes, Obsidian ouvert, commencez par Local REST API en 5.5.2, qui ne demande qu’un plugin dans Obsidian ; sans Obsidian, MCPVault ou obsidian-mcp de Steven Stavrakis ; pour des formules de Base, des Canvas ou des tâches Operon, Optimike, avec ses limites. Le test comparatif mesurera une partie de ces points, serveur par serveur ; suivez-le sur son dépôt, ses résultats viendront ici.

Si votre question porte d’abord sur la méthode, c’est-à-dire comment organiser notes, projets et travail avec l’IA, c’est l’objet de Margelle, le coffre Obsidian que je propose sur margelle.net ; Optimike Obsidian MCP n’en fait pas partie.

Questions fréquentes

Obsidian a-t-il un serveur MCP officiel ?

Je n’en ai trouvé aucun lors de ma dernière recherche sur ce point, le 8 octobre 2026. Obsidian fournit une CLI officielle depuis la version 1.12, mais pas de serveur MCP. Le serveur le plus proche de l’application est celui intégré au plugin communautaire Local REST API, qui demande qu’Obsidian reste ouvert.

Faut-il qu’Obsidian soit ouvert pour utiliser un MCP ?

Cela dépend du serveur. Ceux qui passent par Local REST API, par un plugin ou par la CLI exigent Obsidian Desktop ouvert. MCPVault et obsidian-mcp de Steven Stavrakis travaillent directement sur les fichiers et s’en passent. Optimike propose les deux : des modes live avec l’application, et des modes headless sur une copie du coffre, sans ses écritures protégées.

Local REST API suffit-il pour ne pas écraser une note ?

Depuis la version 5.5, oui, à trois conditions. Votre agent doit transmettre la version lue (paramètre ifMatch de ses outils d’écriture) ; un serveur intermédiaire doit la relayer ; et la protection ne vaut que contre ce qui a été enregistré avant l’écriture. L’écriture est alors refusée sans rien écrire si la note a changé. Après une réponse perdue, l’agent relit la note ; une relance qui transmet l’ancienne version est refusée.

Optimike suffit-il pour ne pas écraser une note ?

Seulement si votre agent passe par ses outils protégés, Obsidian ouvert, avec les extensions installées et les écritures ouvertes, et seulement pour les changements faits après le plan : il ne compare pas la note à ce que l’agent a lu avant. Il refuse aussi les notes qui n’ont pas encore de date de création quand un gestionnaire de dates est actif. Ses écritures directes n’ont pas cette protection, et le refus d’une modification devenue ancienne n’a pas encore été observé après une retouche faite dans l’éditeur.

Peut-on connecter Obsidian à ChatGPT avec un MCP ?

Oui, mais pas directement en local : ChatGPT fonctionne dans le cloud et doit joindre le serveur MCP en HTTPS. J’utilise le tunnel MCP sécurisé d’OpenAI avec Optimike, documenté dans son dépôt ; il demande un compte ChatGPT éligible et un client de tunnel sur votre machine. Je ne l’ai pas essayé avec les autres serveurs.

Optimike Obsidian MCP est-il gratuit ?

Oui. Le code est publié sur GitHub sous licence Apache-2.0. L’installation demande Node.js 22.12 ou plus récent et une compilation locale. Les plugins Obsidian nécessaires dépendent des fonctions activées, par exemple Local REST API pour le mode live ou Smart Connections pour la recherche sémantique. L’abonnement à votre agent et l’éventuel coût d’API restent à votre charge.

Le test comparatif désignera-t-il un gagnant ?

Non. Il publiera un tableau par tâche et par serveur, avec le nombre d’essais joués et ceux qui ne l’ont pas été, sans note globale. Une phrase de résultat ne portera que sur une tâche jouée trois fois, avec sa date, son protocole, ses amendements et ses limites.

Sources et périmètre de la comparaison

Comparaison fondée sur les documentations, paquets et dépôts publics consultés le 23 octobre 2026. Elle porte sur les contrats publiés, pas sur un essai des serveurs. Première version publiée le 9 août 2026 ; mises à jour le 9 octobre puis le 23 octobre 2026.

---

La lettre Optimike

Ce que je teste sur Obsidian et l’IA, avant que ça devienne un guide.

Ce qui marche, ce qui casse. Premier envoi en novembre. Vous vous désinscrivez quand vous voulez.

Votre email sert uniquement à l’envoi de la lettre d’Optimike. Données personnelles