Patricia
oficialPatricia conecta tu cliente de IA a un espacio de trabajo de Patricia. Lee la memoria y los archivos del espacio de trabajo, inspecciona las integraciones conectadas y delega trabajo a Patricia con controles de aprobación humana.
¿Qué puedes hacer con Patricia MCP?
- Instala y configura el plugin — Pide a tu IA que instale el plugin
patriciaa través del marketplace e inicia sesión con OAuth o un token personal. - Integra proyectos automáticamente — El hook
SessionStartte saluda y ofrece la habilidad de integración una vez por proyecto cuando hay un token configurado. - Recupera memoria relevante — El hook
UserPromptSubmitañade memoria relevante a las indicaciones elegibles mediantesearch_memory, enviando hasta 300 caracteres. - Verifica las integraciones antes de ejecutar herramientas — El hook
PreToolUsecomprueba localmente las entradas deWebFetch,WebSearchyBashcontra un catálogo de proveedores conocido, sin llamadas de red. - Propone inserciones de memoria — Después de escrituras de memoria locales, el hook
PostToolUsesugiereremembercon un ámbito explícito, y el hookStopte lo recuerda tras sesiones sustanciales. - Gestiona ajustes y archivos — Usa
get_settings,update_settings,list_filesyget_brand_kitpara leer o cambiar la configuración del espacio de trabajo y los recursos de marca.
Documentación
[!NOTE] Este repositorio se genera desde
bettergroupinc/patricia-monorepoenplugins/patricia/. La automatización sincroniza este espejo público. Commit de origen:147037702592109a4944cdbfb94bdcabb33f490f. Abre pull requests e incidencias en el monorepo.
Plugin de Claude Code patricia
Instala esto una vez y un agente usará el servidor MCP de Patricia correctamente sin que se le vuelva a indicar.
Incluye tres cosas.
- Orientación. Cinco habilidades cubren los conceptos básicos de Patricia, la incorporación, el trabajo delegado, las integraciones y el puente de memoria.
- Una conexión MCP. La instalación configura el servidor Streamable HTTP de Patricia para el inicio de sesión con OAuth.
- Cinco hooks locales. Incorporan proyectos, recuperan memoria, verifican integraciones primero y proponen envíos de memoria. Nunca escriben en Patricia.
Este es un plugin distribuible de Claude Code. Una persona lo instala en su propia máquina y se ejecuta en la sesión de Claude Code de esa persona. No es el catálogo de habilidades del producto de Patricia, y nada de lo que contiene se ejecuta dentro de Patricia.
Instalación
claude plugin marketplace add patricia-app/patricia-plugin
claude plugin install patricia@patricia
Luego inicia una nueva sesión, o ejecuta /reload-plugins.
Ese marketplace es https://github.com/patricia-app/patricia-plugin.. La automatización genera cada archivo en él desde el monorepo de Patricia.
Nota para colaboradores: el monorepo es privado. Un colaborador con acceso puede añadir el propio monorepo como
marketplace, porque su .claude-plugin/marketplace.json raíz apunta el plugin patricia a
./plugins/patricia.
Instálalo. No lo cargues con --plugin-dir. Un plugin cargado desde un directorio obtiene sus habilidades y
no sus hooks, por lo que la orientación funcionaría y el puente de memoria nunca se activaría. Eso se midió
en lugar de asumirse: un hook de prueba cargado a través de --plugin-dir nunca se ejecutó, mientras que el mismo hook
declarado en la configuración del proyecto se ejecutó en la misma escritura en el mismo modo sin interfaz. Claude Code registra
el hooks/hooks.json de un plugin solo para un plugin instalado y habilitado.
claude plugin details patricia informa lo que se instaló:
Component inventory
Skills (5) delegating-work, integrations, memory-bridge, onboard, using-patricia
MCP servers (1) patricia
Hooks (5) SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop
Iniciar sesión en el servidor MCP
El plugin configura el servidor MCP sin un encabezado almacenado. En el primer uso, ejecuta /mcp y selecciona
Patricia. También puedes iniciar el flujo de OAuth desde una terminal:
claude mcp login plugin:patricia:patricia
El inicio de sesión OAuth de MCP y el token personal pat_mcp_ de los hooks son credenciales separadas.
OAuth por sí solo no activa los hooks que dependen del token.
Usa un token como alternativa cuando OAuth no sea adecuado:
claude mcp add --transport http patricia https://api.patricia.app/v1/mcp \
--header "Authorization: Bearer $PATRICIA_MCP_TOKEN"
Un token personal pat_mcp_ identifica a la persona responsable y puede escribir. Una clave de API de inquilino pat_live_
no identifica a nadie, por lo que solo puede leer, y no puede responder a list_skills ni list_integrations.
Proporciona un token personal a los hooks locales
Python 3 debe estar disponible a través del comando python3 para los hooks locales.
Crea una clave personal pat_mcp_ en Patricia en Configuración > Desarrollador > Claves personales. Luego
elige una configuración:
export PATRICIA_MCP_TOKEN="pat_mcp_..."
O escribe este archivo en ~/.claude/patricia.json:
{
"token": "pat_mcp_..."
}
PATRICIA_MCP_TOKEN tiene prioridad sobre el archivo. Un PATRICIA_MCP_TOKEN vacío desactiva la alternativa del archivo.
Este comportamiento es deliberado. Permite que una persona suspenda los hooks autenticados sin mover el archivo.
Hooks locales
Los cinco hooks están activados por defecto. Un archivo de configuración ausente o una clave de hook ausente los deja activados. Una
configuración malformada o ilegible los desactiva. Establece la clave indicada de un hook al valor literal false
en ~/.claude/patricia-plugin.json para desactivar solo ese hook.
Incorporación
- Cuándo y acción:
SessionStartse ejecuta para una sesión nueva o reanudada. Saluda a la persona conectada y ofrece la habilidad de incorporación una vez por proyecto. - Costo: Con un token, realiza una llamada a
whoami. El tiempo de espera de red es de 3 segundos, y el tiempo de espera del hook es de 10 segundos. - Interruptor de apagado:
hooks.onboarding.enabledestablecido enfalse. - Privacidad: Con un token, solo la solicitud
whoamiautenticada sale de la máquina. Ningún prompt, transcripción o contenido del proyecto sale a través de este hook.
Recuperación
- Cuándo y acción:
UserPromptSubmitse ejecuta antes de cada prompt enviado. Omite comandos, respuestas cortas, confirmaciones y entrada solo de código. Añade memoria relevante a los prompts elegibles. - Costo: Con un token y un prompt elegible, realiza una llamada a
search_memory. El tiempo de espera de red es de 3 segundos, y el tiempo de espera del hook es de 8 segundos. - Interruptor de apagado:
hooks.recall.enabledestablecido enfalse. - Privacidad: Envía hasta 300 caracteres del prompt colapsado a Patricia. Envía ese texto solo cuando hay un token configurado.
Integraciones primero
- Cuándo y acción:
UserPromptSubmitverifica un prompt.PreToolUseverifica la entrada deWebFetch,WebSearchyBashantes de que la herramienta se ejecute. Un catálogo local identifica proveedores conocidos. - Costo: No realiza llamadas MCP ni de red y no necesita token. El tiempo de espera del hook es de 8 segundos para un prompt y 5 segundos antes de una llamada de herramienta.
- Interruptor de apagado:
hooks.integrations_first.enabledestablecido enfalse. - Privacidad: Nada sale de la máquina. El hook verifica el prompt o la entrada de la herramienta localmente.
Puente de memoria
- Cuándo y acción:
PostToolUsese ejecuta después deWrite,EditoMultiEdit. Detecta una nota de memoria local guardada y proponeremembercon un alcance explícito. - Costo: No realiza llamadas MCP ni de red. El tiempo de espera del hook es de 5 segundos.
- Interruptor de apagado:
hooks.memory_bridge.enabledestablecido enfalse. El archivo heredado~/.claude/patricia-memory-bridge.jsontambién puede establecerenabledenfalse. - Privacidad: El script lee la nota guardada localmente y no envía nada por la red. Devuelve la ruta de la nota y el texto del recordatorio a Claude Code, sin el contenido de la nota.
Recordatorio de envío
- Cuándo y acción:
Stopse ejecuta cuando el agente termina. Proponerememberdespués de una escritura de memoria local o una sesión sustancial con uso de herramientas sin una escritura de memoria en Patricia. - Costo: No realiza llamadas MCP ni de red. El tiempo de espera del hook es de 8 segundos.
- Interruptor de apagado:
hooks.push_reminder.enabledestablecido enfalse. - Privacidad: Lee como máximo 5 MB de la transcripción local y no envía nada. Solo se ejecuta cuando hay un token configurado, para que la llamada de memoria propuesta pueda tener éxito después de que la persona acepte.
Red y credenciales
Este plugin se conecta a https://api.patricia.app/v1/mcp a través de Streamable HTTP.
Patricia usa OAuth 2.1 con PKCE S256. Un flujo de OAuth completado le da al cliente un token de portador personal pat_mcp_.
El manifiesto del plugin no contiene credenciales. El cliente envía el token de portador a api.patricia.app después del inicio de sesión.
Otros marketplaces
- Cursor lee
plugin.jsonymcp.jsonde este paquete. - OpenAI Codex y ChatGPT leen
.codex-plugin/plugin.json. - Una entrada de fuente remota no necesita manifiesto. xAI lee
.claude-plugin/plugin.jsoncuando está presente.
Todos los paquetes de marketplace apuntan al único árbol skills/ en este paquete.
assets/icon.png es un activo de marca de primera parte de Patricia.
El puente de memoria propone; nunca escribe
Un hook es un comando de shell. No contiene un cliente MCP, no tiene consentimiento de nadie y no puede leer una nota y distinguir un hecho de equipo de uno privado. Un hook que enviara cada nota local a un espacio de trabajo compartido pondría notas específicas de la máquina, desechables y privadas frente a todo el equipo, en silencio. Ese es el modo de fallo que el puente está diseñado para evitar, no una característica que pospuso.
Entonces el hook hace una sola cosa: inyecta hookSpecificOutput.additionalContext diciéndole al agente
que la nota es solo local y que remember necesita un scope. El agente decide el alcance, pregunta
a su persona y hace la llamada. El juicio y la escritura permanecen en el mismo lugar.
Cuatro compuertas lo mantienen en silencio:
| Compuerta | Efecto |
|---|---|
Cualquier configuración compatible establece el valor de enabled del puente en false | Silencioso. Sin ese valor, el puente está activado. |
| La ruta escrita está fuera de un directorio de memoria | Silencioso. |
| La escritura no se realizó, o el archivo está vacío | Silencioso. |
El front matter de la nota lleva patricia: skip | Silencioso. |
También ofrece una nota dada como máximo una vez por sesión, por lo que un Write seguido de una ejecución de llamadas Edit
produce un recordatorio en lugar de cuatro. Ese registro vive en
~/.claude/patricia-memory-bridge-state/, un archivo por sesión, podado después de siete días.
No usa CLAUDE_PLUGIN_DATA para esto. Esa variable está presente en el entorno de un hook, pero
no es de manera confiable el propio directorio del plugin en ejecución: un hook a nivel de proyecto en esta máquina la vio
establecida en ~/.claude/plugins/data/codex-openai-codex, un directorio de datos de un plugin no relacionado.
Qué herramienta usa realmente una escritura de memoria
Claude Code 2.1.238 declara herramientas llamadas memory_list, memory_read y memory_write. En las
máquinas contra las que se construyó esto, las notas de memoria no se escriben con ellas: un barrido de las 120
transcripciones de sesión más recientes encontró 49 llamadas Write y 35 Edit a
~/.claude/projects/*/memory/, y cero llamadas memory_write.
El comparador es por lo tanto Write|Edit|MultiEdit. memory_write se omite a propósito. Añadir un
comparador para una herramienta cuya forma de carga útil no se ha verificado compra un hook que silenciosamente nunca se activa
y se lee exactamente como uno que funciona. Añádelo cuando se haya leído una carga útil real de memory_write.
La orientación y la regla permanente del servidor son una copia, no dos
start_onboarding_import puede devolver un standing_rule_to_offer que lleva ask_first, instruction
y un bloque markdown dimensionado para caber en el CLAUDE.md de otra persona. La habilidad no reafirma ese bloque.
Le dice al agente que llame a la herramienta y use lo que devuelve, para que el servidor siga siendo el único
propietario de ese texto.
Obtenerlo en el momento de la instalación era la alternativa, y no funciona. El SKILL.md de un plugin es
texto estático en una caché direccionada por contenido, no hay un paso en el momento de la instalación que pueda reescribirlo, y
un plugin cuyo trabajo incluye configurar Patricia no puede depender de una conexión autenticada de Patricia que funcione
para renderizar sus propias instrucciones. Leer la herramienta en el momento de uso da la misma copia única
sin nada de eso.
Cada nombre de herramienta aquí es una herramienta real
Cada identificador de herramienta entre comillas invertidas en este plugin se contrasta con el propio registro de herramientas del servidor,
la lista que el servidor construye tools/list. La misma verificación asegura que encontró un conjunto no vacío
de identificadores, por lo que un extractor roto no puede pasar al no encontrar nada.
Nota para colaboradores: esa verificación es backend/api/tests/test_patricia_claude_plugin.py en el
monorepo de Patricia, y se ejecuta en cada cambio de este plugin.
Configuración y descubrimiento de archivos
| Herramienta | Uso |
|---|---|
get_settings | Listar configuraciones, o leer claves o grupos seleccionados con significados, valores y permisos. Cualquier credencial puede leer grupos de espacio de trabajo. |
update_settings | Cambiar un grupo permitido a través de la operación del panel. Se requiere un token personal. |
list_files | Listar archivos. La primera página incluye carpetas y recuentos filtrados por visibilidad. |
get_brand_kit | Leer colores de marca, tipografía y logotipos. |
Usa get_settings(keys=["company_profile"]) para el perfil de la empresa.
Las herramientas de configuración comparten el catálogo y las operaciones que Patricia usa en el chat.
Los cambios de configuración del chat requieren un clic de la persona que solicita.
Un cambio de política de aprobación afecta las ejecuciones de consola; las acciones críticas y requeridas por el proveedor conservan su piso de aprobación, y la audiencia y los pisos de solo clic conservan los suyos en cualquier acción sobre la que Patricia ya pregunta.
Las lecturas de integración esperan mientras otra tarea se ejecuta para la misma persona.
Consulta esa tarea con get_task_status, o espera a que termine.
Después de una aprobación directa de integración, sigue la frase next devuelta por decide_approval.
Nombra la herramienta a llamar de nuevo con el mismo tool_ref y argumentos.