Patricia
officielPatricia connecte votre client IA à un espace de travail Patricia. Lisez la mémoire et les fichiers de l’espace de travail, inspectez les intégrations connectées et déléguez du travail à Patricia avec des contrôles d’approbation humaine.
Que pouvez-vous faire avec Patricia MCP ?
- Installer et configurer le plugin — Demandez à votre IA d'installer le plugin
patriciavia le marketplace et de se connecter avec OAuth ou un jeton personnel. - Intégrer les projets automatiquement — Le hook
SessionStartvous salue et propose la compétence d'intégration une fois par projet lorsqu'un jeton est configuré. - Rappeler la mémoire pertinente — Le hook
UserPromptSubmitajoute la mémoire pertinente aux invites éligibles viasearch_memory, en envoyant jusqu'à 300 caractères. - Vérifier les intégrations avant l'exécution des outils — Le hook
PreToolUsevérifie localement les entrées deWebFetch,WebSearchetBashpar rapport à un catalogue de fournisseurs connu, sans appels réseau. - Proposer des ajouts en mémoire — Après les écritures en mémoire locale, le hook
PostToolUsesuggèrerememberavec une portée explicite, et le hookStopvous le rappelle après des sessions substantielles. - Gérer les paramètres et les fichiers — Utilisez
get_settings,update_settings,list_filesetget_brand_kitpour lire ou modifier la configuration de l'espace de travail et les ressources de marque.
Documentation
[!NOTE] Ce dépôt est généré à partir de
bettergroupinc/patricia-monorepoàplugins/patricia/. L'automatisation synchronise ce miroir public. Commit source :147037702592109a4944cdbfb94bdcabb33f490f. Ouvrez les pull requests et les issues dans le monorepo.
Plugin Claude Code patricia
Installez-le une fois et un agent utilise correctement le serveur MCP de Patricia sans qu'on ait à le lui redire.
Il contient trois éléments.
- Guidance. Cinq compétences couvrent les bases de Patricia, l'intégration, le travail délégué, les intégrations et le pont mémoire.
- Une connexion MCP. L'installation configure le serveur Streamable HTTP de Patricia pour la connexion OAuth.
- Cinq hooks locaux. Ils intègrent les projets, rappellent la mémoire, vérifient d'abord les intégrations et proposent des poussées mémoire. Ils n'écrivent jamais dans Patricia.
Ceci est un plugin Claude Code distribuable. Une personne l'installe sur sa propre machine, et il s'exécute dans la session Claude Code de cette personne. Ce n'est pas le catalogue de compétences produit de Patricia, et rien dedans ne s'exécute dans Patricia.
Installation
claude plugin marketplace add patricia-app/patricia-plugin
claude plugin install patricia@patricia
Ensuite, démarrez une nouvelle session, ou exécutez /reload-plugins.
Cette place de marché est https://github.com/patricia-app/patricia-plugin.. L'automatisation génère chaque fichier qu'elle contient à partir du monorepo de Patricia.
Note pour les contributeurs : le monorepo est privé. Un contributeur ayant accès peut ajouter le monorepo lui-même comme place de marché, car son .claude-plugin/marketplace.json racine pointe le plugin patricia vers ./plugins/patricia.
Installez-le. Ne le chargez pas avec --plugin-dir. Un plugin chargé depuis un répertoire obtient ses compétences mais pas ses hooks, donc la guidance fonctionnerait et le pont mémoire ne se déclencherait jamais. Cela a été mesuré plutôt que supposé : un hook de sonde chargé via --plugin-dir ne s'est jamais exécuté, tandis que le même hook déclaré dans les paramètres du projet s'est exécuté sur la même écriture dans le même mode sans tête. Claude Code n'enregistre le hooks/hooks.json d'un plugin que pour un plugin installé et activé.
claude plugin details patricia rapporte ce qui a été installé :
Component inventory
Skills (5) delegating-work, integrations, memory-bridge, onboard, using-patricia
MCP servers (1) patricia
Hooks (5) SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop
Connexion au serveur MCP
Le plugin configure le serveur MCP sans en-tête stocké. Lors de la première utilisation, exécutez /mcp et sélectionnez Patricia. Vous pouvez également démarrer le flux OAuth depuis un terminal :
claude mcp login plugin:patricia:patricia
La connexion OAuth MCP et le jeton personnel pat_mcp_ des hooks sont des identifiants séparés. OAuth seul n'active pas les hooks dépendant du jeton.
Utilisez un jeton comme alternative lorsque OAuth ne convient pas :
claude mcp add --transport http patricia https://api.patricia.app/v1/mcp \
--header "Authorization: Bearer $PATRICIA_MCP_TOKEN"
Un jeton personnel pat_mcp_ nomme la personne responsable et peut écrire. Une clé API de locataire pat_live_ ne nomme personne, donc elle ne peut que lire, et elle ne peut pas répondre à list_skills ou list_integrations.
Donnez un jeton personnel aux hooks locaux
Python 3 doit être disponible via la commande python3 pour les hooks locaux.
Créez une clé personnelle pat_mcp_ dans Patricia sous Paramètres > Développeur > Clés personnelles. Ensuite, choisissez une configuration :
export PATRICIA_MCP_TOKEN="pat_mcp_..."
Ou écrivez ce fichier à ~/.claude/patricia.json :
{
"token": "pat_mcp_..."
}
PATRICIA_MCP_TOKEN a priorité sur le fichier. Un PATRICIA_MCP_TOKEN vide désactive le repli sur le fichier. Ce comportement est délibéré. Il permet à une personne de suspendre les hooks authentifiés sans déplacer le fichier.
Hooks locaux
Les cinq hooks sont activés par défaut. Un fichier de configuration absent ou une clé de hook absente les laisse activés. Une configuration malformée ou illisible les désactive. Définissez la clé listée d'un hook à la valeur littérale false dans ~/.claude/patricia-plugin.json pour désactiver uniquement ce hook.
Intégration
- Quand et action :
SessionStarts'exécute pour une session nouvelle ou reprise. Il salue la personne connectée et propose la compétence d'intégration une fois par projet. - Coût : Avec un jeton, il fait un appel
whoami. Le délai réseau est de 3 secondes, et le délai du hook est de 10 secondes. - Interrupteur :
hooks.onboarding.enableddéfini àfalse. - Confidentialité : Avec un jeton, seule la requête
whoamiauthentifiée quitte la machine. Aucune invite, transcription ou contenu de projet ne quitte la machine via ce hook.
Rappel
- Quand et action :
UserPromptSubmits'exécute avant chaque invite soumise. Il ignore les commandes, les réponses courtes, les confirmations et les entrées uniquement de code. Il ajoute la mémoire pertinente aux invites éligibles. - Coût : Avec un jeton et une invite éligible, il fait un appel
search_memory. Le délai réseau est de 3 secondes, et le délai du hook est de 8 secondes. - Interrupteur :
hooks.recall.enableddéfini àfalse. - Confidentialité : Il envoie jusqu'à 300 caractères de l'invite réduite à Patricia. Il envoie ce texte uniquement lorsqu'un jeton est configuré.
Intégrations d'abord
- Quand et action :
UserPromptSubmitvérifie une invite.PreToolUsevérifie l'entréeWebFetch,WebSearchetBashavant que l'outil ne s'exécute. Un catalogue local identifie les fournisseurs connus. - Coût : Il ne fait aucun appel MCP ou réseau et ne nécessite aucun jeton. Le délai du hook est de 8 secondes pour une invite et de 5 secondes avant un appel d'outil.
- Interrupteur :
hooks.integrations_first.enableddéfini àfalse. - Confidentialité : Rien ne quitte la machine. Le hook vérifie l'invite ou l'entrée d'outil localement.
Pont mémoire
- Quand et action :
PostToolUses'exécute aprèsWrite,EditouMultiEdit. Il remarque une note mémoire locale enregistrée et proposerememberavec une portée explicite. - Coût : Il ne fait aucun appel MCP ou réseau. Le délai du hook est de 5 secondes.
- Interrupteur :
hooks.memory_bridge.enableddéfini àfalse. Le fichier hérité~/.claude/patricia-memory-bridge.jsonpeut également définirenabledàfalse. - Confidentialité : Le script lit la note enregistrée localement et n'envoie rien sur le réseau. Il renvoie le chemin de la note et le texte de rappel à Claude Code, sans le contenu de la note.
Rappel de poussée
- Quand et action :
Stops'exécute lorsque l'agent termine. Il proposerememberaprès une écriture mémoire locale ou une session substantielle utilisant des outils sans écriture mémoire dans Patricia. - Coût : Il ne fait aucun appel MCP ou réseau. Le délai du hook est de 8 secondes.
- Interrupteur :
hooks.push_reminder.enableddéfini àfalse. - Confidentialité : Il lit au plus 5 Mo de la transcription locale et n'envoie rien. Il ne s'exécute que lorsqu'un jeton est configuré, afin que l'appel mémoire proposé puisse réussir après l'accord de la personne.
Réseau et identifiants
Ce plugin se connecte à https://api.patricia.app/v1/mcp via Streamable HTTP.
Patricia utilise OAuth 2.1 avec PKCE S256. Un flux OAuth terminé donne au client un jeton porteur personnel pat_mcp_.
Le manifeste du plugin ne contient aucun identifiant. Le client envoie le jeton porteur à api.patricia.app après la connexion.
Autres places de marché
- Cursor lit
plugin.jsonetmcp.jsonde ce package. - OpenAI Codex et ChatGPT lisent
.codex-plugin/plugin.json. - Une entrée de source distante ne nécessite aucun manifeste. xAI lit
.claude-plugin/plugin.jsonlorsqu'il est présent.
Tous les packages de places de marché pointent vers l'arbre skills/ unique de ce package.
assets/icon.png est un actif de marque propriétaire de Patricia.
Le pont mémoire propose ; il n'écrit jamais
Un hook est une commande shell. Il ne contient aucun client MCP, il n'a le consentement de personne, et il ne peut pas lire une note et distinguer un fait d'équipe d'un fait privé. Un hook qui enverrait chaque note locale à un espace de travail partagé mettrait des notes spécifiques à la machine, jetables et privées devant toute l'équipe, silencieusement. C'est le mode de défaillance que le pont est conçu pour éviter, pas une fonctionnalité reportée.
Donc le hook fait une seule chose : il injecte hookSpecificOutput.additionalContext indiquant à l'agent que la note est uniquement locale et que remember nécessite un scope. L'agent décide de la portée, demande à sa personne et fait l'appel. Le jugement et l'écriture restent au même endroit.
Quatre barrières le maintiennent silencieux :
| Barrière | Effet |
|---|---|
L'une ou l'autre configuration prise en charge définit la valeur enabled du pont à false | Silencieux. Sans cette valeur, le pont est activé. |
| Le chemin écrit est en dehors d'un répertoire mémoire | Silencieux. |
| L'écriture n'a pas abouti, ou le fichier est vide | Silencieux. |
Le front matter de la note porte patricia: skip | Silencieux. |
Il propose également une note donnée au plus une fois par session, donc un Write suivi d'une exécution de Edit produit un rappel plutôt que quatre. Cet enregistrement vit dans ~/.claude/patricia-memory-bridge-state/, un fichier par session, purgé après sept jours.
Il n'utilise pas CLAUDE_PLUGIN_DATA pour cela. Cette variable est présente dans l'environnement d'un hook mais ce n'est pas de manière fiable le répertoire propre du plugin en cours d'exécution : un hook au niveau du projet sur cette machine l'a vue définie à ~/.claude/plugins/data/codex-openai-codex, un répertoire de données d'un plugin sans rapport.
Quel outil une écriture mémoire utilise réellement
Claude Code 2.1.238 déclare des outils nommés memory_list, memory_read et memory_write. Sur les machines contre lesquelles cela a été construit, les notes mémoire ne sont pas écrites avec eux : un balayage des 120 transcriptions de session les plus récentes a trouvé 49 appels Write et 35 appels Edit vers ~/.claude/projects/*/memory/, et zéro appel memory_write.
Le matcher est donc Write|Edit|MultiEdit. memory_write est laissé de côté intentionnellement. Ajouter un matcher pour un outil dont la forme de charge utile n'a pas été vérifiée achète un hook qui ne se déclenche jamais silencieusement et ressemble exactement à un hook qui fonctionne. Ajoutez-le lorsqu'une vraie charge utile memory_write a été lue.
La guidance et la règle permanente du serveur sont une seule copie, pas deux
start_onboarding_import peut renvoyer un standing_rule_to_offer portant ask_first, instruction et un bloc markdown dimensionné pour tenir dans le CLAUDE.md de quelqu'un d'autre. La compétence ne reformule pas ce bloc. Elle dit à l'agent d'appeler l'outil et d'utiliser ce qui revient, afin que le serveur reste le propriétaire unique de ce texte.
Le récupérer au moment de l'installation était l'alternative, et cela ne fonctionne pas. Le SKILL.md d'un plugin est un texte statique dans un cache à adressage par contenu, il n'y a aucune étape au moment de l'installation qui pourrait le réécrire, et un plugin dont le travail inclut la configuration de Patricia ne peut pas dépendre d'une connexion Patricia authentifiée fonctionnelle pour rendre ses propres instructions. Lire l'outil au moment de l'utilisation donne la même copie unique sans aucun de ces problèmes.
Chaque nom d'outil ici est un outil réel
Chaque identifiant d'outil entre backticks dans ce plugin est vérifié contre le registre d'outils du serveur lui-même, la liste que le serveur construit tools/list. La même vérification s'assure qu'elle a trouvé un ensemble non vide d'identifiants, donc un extracteur cassé ne peut pas passer en ne trouvant rien.
Note pour les contributeurs : cette vérification est backend/api/tests/test_patricia_claude_plugin.py dans le monorepo de Patricia, et elle s'exécute à chaque modification de ce plugin.
Paramètres et découverte de fichiers
| Outil | Utilisation |
|---|---|
get_settings | Lister les paramètres, ou lire des clés ou groupes sélectionnés avec significations, valeurs et permissions. Chaque identifiant peut lire les groupes d'espace de travail. |
update_settings | Modifier un groupe autorisé via l'opération de tableau de bord. Un jeton personnel est requis. |
list_files | Lister les fichiers. La première page inclut les dossiers et les comptes filtrés par visibilité. |
get_brand_kit | Lire les couleurs de marque, la typographie et les logos. |
Utilisez get_settings(keys=["company_profile"]) pour le profil de l'entreprise.
Les outils de paramètres partagent le catalogue et les opérations que Patricia utilise dans le chat.
Les modifications de paramètres de chat nécessitent un clic de la personne qui demande.
Un changement de politique d'approbation affecte les exécutions de console ; les actions critiques et requises par le fournisseur conservent leur plancher d'approbation, et le public et le plancher de clic uniquement conservent le leur sur toute action que Patricia demande déjà.
Les lectures d'intégration attendent pendant qu'une autre tâche s'exécute pour la même personne.
Interrogez cette tâche avec get_task_status, ou attendez qu'elle se termine.
Après une approbation d'intégration directe, suivez la phrase next renvoyée par decide_approval.
Elle nomme l'outil à rappeler avec le même tool_ref et les mêmes arguments.