Quel est le meilleur MCP pour Obsidian ? Le vrai critère n’est plus l’accès aux notes

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

Lire une note Obsidian depuis Claude, Codex ou un autre client MCP n’a plus rien d’extraordinaire.

Installer un serveur, lui donner accès au coffre, puis demander à l’IA de chercher une information ou de créer un brouillon est devenu relativement simple.

Le problème commence après.

Que se passe-t-il lorsque l’agent doit identifier le bon projet, retrouver une tâche précise, tenir compte de ses dépendances, refuser une donnée périmée, modifier l’état courant, vérifier que le résultat est bien celui attendu, puis reprendre proprement si la réponse se perd après l’écriture ?

À ce moment-là, on ne parle plus seulement de connexion.

On parle d’exploitation.

C’est le problème qu’Optimike Obsidian MCP a progressivement dû apprendre à résoudre.

Cette comparaison décrit Optimike Obsidian MCP v2.4.0, publiée le 9 août 2026.

Transparence éditoriale : je suis le créateur d’Optimike Obsidian MCP. Cette comparaison repose sur les documentations publiques étudiées et sur les contrats publiés de la version 2.4.0. Elle ne constitue pas un benchmark indépendant des performances, de l’installation ou de l’expérience utilisateur.

Le problème n’est plus seulement de connecter une IA à Obsidian. Il commence lorsqu’on veut laisser des agents y travailler sans perdre le contrôle.

La promesse est simple à formuler :

Optimike transforme Obsidian d’un coffre accessible aux IA en un système opérable par des agents.

Sa définition technique est plus précise :

Optimike MCP est une couche d’opérations agentiques gouvernées pour Obsidian.

Cette distinction change complètement la manière d’évaluer un MCP.

Le meilleur n’est pas forcément celui qui expose le plus d’outils. C’est celui dont le contrat correspond au niveau d’autonomie que vous voulez réellement donner à vos agents.

1. Connecter une IA à Obsidian est devenu relativement simple

Le Model Context Protocol standardise la manière dont une application d’IA peut se connecter à des sources de données et à des outils externes.

Pour connecter Obsidian à une IA, plusieurs approches coexistent déjà.

MarkusPfundstein/mcp-obsidian propose un pont léger au-dessus du plugin Local REST API. Il sait lister, lire, rechercher, modifier ou supprimer des notes. Pour demander à Claude de résumer une réunion puis d’ajouter le résultat dans le coffre, ce pont peut suffire.

cyanheads/obsidian-mcp-server va plus loin sur l’édition structurée. Il propose notamment des modifications ciblées, la gestion du frontmatter et des tags, des permissions par chemin, un mode lecture seule et, en option, l’accès à certaines commandes Obsidian.

MCPVault choisit une autre voie. Il travaille directement sur les fichiers du coffre, sans dépendre d’Obsidian Desktop. Son installation est simple, il couvre les opérations courantes du coffre et son approche headless reste centrée sur Markdown.

Semantic Notes Vault MCP s’exécute directement comme plugin Obsidian. Il met l’accent sur le graphe, les liens, Dataview, Bases et la sémantique native de l’application. Pour un usage fortement lié à Obsidian Desktop et à son index interne, c’est une proposition particulièrement intéressante.

Plus récemment, Storks/obsidian-mcp s’appuie sur la CLI officielle d’Obsidian. Cette approche donne accès à un ensemble large de fonctions natives, mais suppose qu’Obsidian Desktop soit en cours d’exécution.

Toutes ces solutions sont légitimes. Elles ne résolvent simplement pas exactement le même problème.

En juin 2025, j’avais moi-même identifié jacksteamdev/obsidian-mcp-tools comme le serveur Obsidian le plus intéressant à tester. Il associait plugin Obsidian, recherche sémantique et Templater. À l’époque, ma question était surtout : comment donner à une IA un accès utile et contextuel à mon coffre ?

Au départ, je ne cherchais pas à construire une couche de contrôle pour agents. Je voulais surtout une recherche sémantique locale, un pont simple et une intégration utile avec Obsidian. C’est en unifiant les notes, les tâches, le cache et les modes dégradés, puis en intégrant Operon, qui traite les tâches comme des objets durables, que le véritable problème est apparu : accéder au coffre était relativement simple ; y agir sans perdre l’état, les permissions et la possibilité de récupérer l’était beaucoup moins.

Le projet jacksteamdev/obsidian-mcp-tools a depuis été archivé. Mais surtout, ma question a changé.

Je ne cherchais plus seulement un accès aux notes. Je voulais permettre à Codex, Claude Code, Gemini CLI et d’autres agents compatibles MCP de travailler sur un système Obsidian vivant, sans leur donner un accès indistinct à tout.

2. Le problème change lorsque l’IA commence à agir

Le mot « agent » est souvent utilisé comme une étiquette marketing. Je préfère le définir par son comportement.

On passe du connecteur à l’agent lorsque le système doit :

  • enchaîner plusieurs opérations ;
  • tenir compte d’un état courant ;
  • distinguer une donnée fraîche d’un snapshot périmé ;
  • refuser une écriture devenue dangereuse ;
  • vérifier le résultat obtenu ;
  • reprendre après une issue incertaine sans rejouer aveuglément l’action.

Prenons un cas simple.

Vous demandez :

Retrouve la tâche qui bloque la publication de mon article, vérifie ses dépendances, passe-la à « En cours » et mets à jour la prochaine action dans la note projet.

Derrière cette phrase, l’agent doit résoudre plusieurs questions.

Quelle note projet est la bonne ? Quelle tâche correspond réellement à la demande ? Son statut visible est-il un simple libellé ou l’identifiant stable d’un workflow ? Une autre opération l’a-t-elle modifiée depuis la dernière lecture ? Le passage à « En cours » est-il autorisé ? La tâche possède-t-elle un bloqueur ? L’écriture a-t-elle été appliquée une seule fois ? L’index reflète-t-il bien le nouvel état ?

Une API peut répondre 200 OK alors que le problème métier n’est pas résolu.

Un timeout peut survenir alors que l’écriture a bien été appliquée.

Un retry automatique peut alors provoquer une seconde mutation.

Une copie headless peut être lisible tout en étant trop ancienne pour servir de preuve à une écriture live.

C’est là que le nombre brut d’outils devient un mauvais critère. Un serveur qui expose 50 fonctions mal bornées peut offrir moins de contrôle qu’un serveur plus limité dont chaque opération possède un contrat clair.

3. Ce que filesystem et REST ne fournissent pas automatiquement

Un accès filesystem ou REST donne à l’agent des opérations. Il ne lui donne pas automatiquement la sémantique, les permissions, les préconditions et la preuve de résultat nécessaires à une action gouvernée.

Le mot important est « automatiquement ».

Le filesystem est parfaitement adapté à de nombreux usages. Il permet de lire du Markdown, créer des fichiers, appliquer des remplacements ou déplacer des notes. Une API REST peut ajouter des opérations ciblées et exploiter certaines fonctions d’Obsidian.

Mais ces couches ne savent pas nécessairement ce que représente l’objet manipulé.

Une tâche Obsidian peut être stockée sous la forme d’une checkbox Markdown. Pour Operon, cette même tâche possède une identité durable, un état, des relations, des règles de transition, une récurrence éventuelle et un contexte projet.

Modifier la ligne et effectuer correctement l’opération métier ne sont donc plus la même chose.

La même limite apparaît avec Bases. Lire ou modifier le YAML d’un fichier .base est utile, mais cela ne reproduit pas automatiquement les formules, les vues, les filtres ou le comportement exact de l’interface Obsidian. Un mode headless honnête doit savoir le dire au lieu de simuler une parité qu’il ne possède pas.

La concurrence pose un autre problème.

Imaginez que l’agent lise une tâche à la révision 12. Pendant son raisonnement, vous la modifiez dans Obsidian. L’agent applique ensuite son changement à partir de l’ancien état.

Sans précondition, l’écriture peut écraser une décision plus récente.

L’incertitude est encore plus délicate. L’agent envoie une mutation. Le serveur l’applique, mais la connexion se coupe avant la réponse. L’agent ne sait plus si l’action a échoué ou réussi.

Rejouer « par sécurité » est précisément ce qu’il ne faut pas faire.

Un connecteur peut s’arrêter au succès de l’appel. Une couche d’opérations cherche à vérifier que l’état attendu a réellement été produit, dans les conditions prévues.

C’est ce déplacement qui structure Optimike MCP.

4. Optimike introduit un contrat d’action

Optimike MCP ne considère pas Obsidian comme une seule surface uniforme.

Il distingue les capacités disponibles, le runtime actif, la politique d’écriture et les garanties propres à chaque opération.

Son architecture couvre aujourd’hui plusieurs familles :

  • notes, recherche, frontmatter et tags ;
  • Bases et helpers Canvas bornés ;
  • lecture des tâches compatibles Obsidian Tasks ;
  • 23 outils Operon gouvernés ;
  • recherche sémantique à partir de l’index Smart Connections ;
  • état, cache, santé et maintenance du runtime ;
  • accès explicitement autorisé à certains documents hors du coffre ;
  • opérations headless bornées sur une copie ou un coffre dédié.

Cette étendue compte, mais elle n’est pas le vrai différenciateur.

Le vrai différenciateur est la manière dont le pouvoir est distribué.

Cinq contrats runtime au lieu d’un faux mode universel

Ici, le runtime désigne les conditions réelles d’exécution : Obsidian est-il ouvert, l’API live répond-elle et l’agent travaille-t-il sur le coffre courant ou sur une copie ? Optimike possède cinq profils principaux, documentés dans sa matrice des capacités runtime v2.4.0.

live utilise Obsidian Desktop et Local REST API pour les opérations liées à l’application et aux plugins.

hybrid conserve un cache durable et peut continuer à lire ou rechercher lorsque l’API live disparaît. Les écritures ne restent disponibles que lorsque la couche nécessaire répond réellement.

headless-readonly fonctionne sans Obsidian Desktop sur un coffre copié ou synchronisé. Il expose la lecture, la recherche, les tâches, la recherche sémantique, le runtime et un fallback Bases en lecture seule.

headless-guarded ajoute quelques écritures prudentes, comme l’ajout de contenu, le remplacement exact ou la modification bornée d’une propriété.

headless-filesystem ouvre une surface plus large, toujours explicite, pour les tags, certains mouvements, le frontmatter en lot, des opérations .base minimales et des helpers Canvas.

Schéma des cinq contrats runtime 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 profils ne promettent pas la même chose : la lecture et l’écriture dépendent du runtime réellement disponible.

Ces modes ne prétendent pas être équivalents.

Le headless ne charge pas les plugins communautaires, ne voit pas l’interface active et ne reproduit pas toutes les règles d’Obsidian Desktop. Les fonctions qui dépendent de ces couches sont absentes, limitées ou refusées.

Cette franchise est une garantie en elle-même.

Des mutations préconditionnées

Sur les opérations sensibles, Optimike peut exiger une révision, un hash ou une date de modification attendue.

L’intention est simple : l’agent ne doit pas écrire sur un état qu’il n’a pas réellement observé.

Avec Operon, une tâche existante exige une `expectedRevision`. Dans les modes filesystem appropriés, un déplacement ou une suppression peut exiger un expectedHash ou un expectedMtime.

Lorsque la précondition ne correspond plus, l’opération échoue au lieu d’écraser silencieusement le nouvel état.

Dry-run, idempotence et vérification

Le dry-run est utilisé par défaut sur plusieurs surfaces sensibles. L’agent peut donc obtenir un plan avant de l’appliquer.

Pour les mutations Operon, une idempotencyKey durable empêche qu’une même requête soit appliquée deux fois. Après l’écriture, le Bridge relit l’index live et vérifie le résultat attendu.

Si l’issue reste inconnue, Optimike ne retente pas au hasard. Il renvoie un `recoveryRef` permettant de reprendre le plan exact.

Cette chaîne peut se résumer ainsi :

intention de l’agent
        ↓
capacité disponible + runtime + politique
        ↓
prévisualisation + préconditions
        ↓
application idempotente
        ↓
vérification de l’état final
        ↓
reçu ou récupération exacte
Chaîne d’action gouvernée d’un agent : intention, capacité, prévisualisation, application, vérification et récupération exacte.
Le contrat d’action encadre l’application par le runtime et les préconditions, puis exige une vérification ou une récupération exacte.

Le MCP ne donne donc pas seulement une fonction à appeler. Il indique aussi quand elle est disponible, quelles conditions doivent être réunies et quelle preuve doit être obtenue après l’action.

5. Comprendre, agir, vérifier, récupérer : un scénario complet

Reprenons la demande précédente :

Retrouve la tâche qui bloque la publication de mon article, vérifie ses dépendances, passe-la à « En cours » et mets à jour la prochaine action dans la note projet.

Voici comment un workflow agentique gouverné peut la traiter.

Comprendre

L’agent commence par rechercher la note projet et les contenus liés. Il peut combiner recherche textuelle et recherche sémantique pour retrouver un projet même si la formulation exacte n’apparaît pas dans son titre.

Pour la tâche, il ne se contente pas de chercher une ligne qui ressemble à la demande. Les outils Operon peuvent résoudre une identité stable, retrouver les relations de blocage et construire un contexte borné autour de l’objet exact.

L’agent sait aussi d’où vient l’information. Une lecture Operon déclare si elle provient du live ou d’un cache, si le snapshot est périmé, son âge, les versions utilisées et les capacités réellement disponibles.

Un snapshot headless peut aider à comprendre. Il ne devient jamais la preuve d’une mutation live.

Décider

Avant de changer le statut, l’agent lit la configuration courante du workflow. Il utilise de préférence un statusId stable plutôt qu’un libellé visible susceptible de varier selon la langue ou la configuration.

Il vérifie les dépendances et les gardes de transition.

Il récupère également la révision courante de la tâche. Cette valeur deviendra la précondition de l’écriture.

Prévisualiser

La mutation commence en dry-run.

Operon produit un plan typé et scellé, c’est-à-dire un plan structuré que l’agent peut prévisualiser puis reprendre à l’identique pour l’appliquer. Il peut montrer l’opération prévue, la tâche concernée, le changement demandé et les conditions nécessaires.

À ce stade, aucune écriture n’est encore obligatoire.

Appliquer

L’application exige les autorisations prévues : mode d’écriture adapté, opt-in côté MCP et autorisation des mutations dans le Bridge Operon.

La requête porte une clé d’idempotence et la révision attendue.

Si la tâche a changé entre-temps, l’écriture est refusée.

Si la même requête est rejouée après un problème réseau, la clé permet de retrouver l’opération existante au lieu d’en créer une seconde.

Vérifier

Après l’application, le Bridge relit l’index live, c’est-à-dire l’état courant des tâches tel qu’Operon le voit.

Il ne se contente pas de constater que l’endpoint a répondu. Il vérifie que la tâche possède désormais l’état attendu et que les relations concernées restent cohérentes.

La mise à jour de la note projet peut ensuite être réalisée avec la couche adaptée, puis relue ou validée à son tour.

Ce scénario n’est pas une transaction atomique unique entre Operon et la note projet. Les deux écritures restent distinctes. L’agent doit vérifier chacune d’elles et s’arrêter si la première ne produit pas l’état attendu. Optimike ne prétend pas fournir une atomicité qu’il ne possède pas.

Récupérer

Supposons enfin que le serveur ait appliqué le changement, mais que la réponse soit perdue.

Le résultat est alors « inconnu », pas automatiquement « échoué ».

Optimike conserve une référence de récupération. L’agent peut interroger ou reprendre l’opération exacte sans réinventer le plan et sans rejouer aveuglément la mutation.

Operon est ici le cas de preuve le plus abouti, mais la logique est plus générale.

Une opération agentique fiable ne se résume pas à « appeler un outil ». Elle doit préserver l’identité de l’objet, l’état observé, la permission d’agir et la possibilité de prouver ou de récupérer le résultat.

6. Quel MCP Obsidian choisir selon le niveau d’autonomie agentique recherché ?

Il n’existe pas un meilleur MCP Obsidian pour tous les usages.

La bonne question est : quel niveau d’autonomie agentique voulez-vous réellement autoriser ?

Carte de décision reliant six besoins à six MCP Obsidian : notes simples avec MarkusPfundstein, REST et dossiers avec Cyanheads, coffre headless avec MCPVault, graphe Obsidian avec Semantic Notes, CLI officielle avec Storks, agir et vérifier avec Optimike.
Le bon choix dépend du besoin principal et de l’autonomie accordée à l’agent, pas d’un classement universel.

Vous voulez surtout lire, chercher et modifier quelques notes

Un pont Local REST léger comme mcp-obsidian de MarkusPfundstein peut être suffisant. Sa surface est lisible, son objectif est clair et l’installation reste raisonnable.

C’est souvent un meilleur choix qu’une architecture plus lourde lorsque le besoin se limite à quelques opérations ponctuelles.

Vous voulez une surface REST plus structurée et des permissions par dossier

cyanheads/obsidian-mcp-server est une option solide. Il propose des éditions ciblées, une politique de chemins, un mode lecture seule et une intégration HTTP plus développée.

Pour un agent local qui manipule surtout les notes, le frontmatter et les tags, il couvre déjà beaucoup de terrain.

Vous voulez travailler directement sur le coffre sans Obsidian Desktop

MCPVault est particulièrement adapté à ce cas.

Il ne dépend pas d’un plugin Obsidian, offre une installation simple via npx et traite le coffre comme une base de fichiers Markdown structurés.

Cette simplicité est un avantage réel. Elle devient une limite seulement lorsque vous avez besoin de la sémantique live d’un plugin ou de contrats métier plus riches.

Vous voulez exploiter le graphe et les fonctions natives d’Obsidian Desktop

Semantic Notes Vault MCP mérite une attention particulière.

Son exécution dans Obsidian lui donne accès au graphe, aux liens, à Dataview, à Bases et à l’index de l’application. Il propose également des contrôles de lecture, d’écriture et de chemins.

Pour un usage centré sur Desktop, il peut être plus naturel qu’un serveur externe polyvalent.

Vous voulez piloter Obsidian à travers sa CLI officielle

Storks apporte une piste intéressante, notamment pour accéder à des fonctions natives sans reconstruire chaque opération.

La contrepartie est claire : Obsidian Desktop doit être ouvert, et le périmètre suit celui de la CLI.

Vous voulez des agents capables d’agir sur plusieurs couches avec des garanties explicites

C’est le terrain d’Optimike MCP.

Il devient pertinent lorsque votre agent doit combiner notes, métadonnées, Bases, tâches, recherche sémantique, runtime headless et documents explicitement autorisés, tout en tenant compte de la fraîcheur, des préconditions, de l’idempotence, de la vérification et de la récupération.

Dans les documentations publiques étudiées pour cet article, Optimike est le projet qui va le plus loin sur ce contrat précis.

Je ne présente pas cette conclusion comme un classement scientifique universel. Je n’ai pas mesuré ici la vitesse d’installation sur une machine vierge, les performances sur des coffres identiques, la qualité de chaque expérience utilisateur ni tous les comportements internes non documentés.

La conclusion porte sur ce qui est effectivement décrit et vérifiable dans les contrats publics :

  • compréhension de plusieurs objets métier ;
  • adaptation explicite au runtime disponible ;
  • contrôle gradué des mutations ;
  • refus des états périmés ;
  • vérification post-opération ;
  • récupération après une issue incertaine.

Sur cette grille, Optimike ne gagne pas parce qu’il possède davantage de fonctions. Il se distingue parce qu’il assemble ces garanties dans une même surface opérationnelle.

7. Obsidian devient un système opérable par des agents

Optimike n’est pas le meilleur choix pour tout le monde.

Il est plus complexe qu’un petit pont REST ou qu’un accès filesystem direct. Ses modes headless ne reproduisent pas Obsidian Desktop. Les écritures filesystem avancées doivent être testées sur une copie ou un coffre dédié. Le HTTP distant reste une posture pilote derrière une frontière réseau revue, et le serveur Node ne doit pas être exposé directement sur Internet.

Le cœur du MCP n’intègre pas non plus de moteur PDF, Office ou OCR. Pour ces formats, il fournit un handoff gouverné : la demande est bornée, puis l’extraction reste à la charge du client appelant.

Enfin, l’intégration officielle conserve certaines limites héritées d’Operon. Le projet les documente et refuse l’opération lorsqu’il ne peut pas garantir le résultat, plutôt que de modifier directement le Markdown ou d’appeler une API privée.

Ces limites ne sont pas des notes de bas de page. Elles font partie du produit.

Une couche d’opérations sérieuse doit savoir ce qu’elle permet, mais aussi ce qu’elle ne peut pas prouver.

C’est précisément ce qui change avec les agents.

Pendant longtemps, nous avons cherché à connecter nos IA à nos notes. Nous voulions qu’elles retrouvent une information, résument un dossier ou produisent un texte à partir de notre contexte.

Cette étape reste utile, mais elle n’est plus la frontière.

La nouvelle question est :

Comment permettre à des agents de travailler sur notre système de connaissance et d’exécution sans leur abandonner le contrôle de ce système ?

Ma réponse n’est pas de donner plus de liberté indistincte à l’agent.

C’est de lui donner un territoire clair, des objets qu’il comprend, des capacités explicites, des conditions d’écriture et une preuve à produire.

Le meilleur MCP Obsidian n’est donc pas nécessairement celui qui fait le plus de choses.

C’est celui qui vous permet de choisir précisément ce que vos agents peuvent faire, dans quel état, avec quelles garanties et à quel moment ils doivent s’arrêter.

Pour un besoin simple, choisissez une solution simple.

Pour des workflows agentiques gouvernés, Optimike MCP a été conçu pour aller plus loin.

Découvrir Optimike Obsidian MCP sur GitHub

Sources et périmètre de la comparaison

Comparaison fondée sur les documentations publiques consultées et vérifiées le 9 août 2026. Elle porte sur les contrats publiés, pas sur un benchmark de performances ou d’expérience d’installation sur machine vierge.

Sources principales :