Cosmos

tu exocórtex de IA

Documentación

Polarity

cosmos-mcp

Un exocórtex. Cada agente.
Servidor MCP para tu grafo de Cosmos.

npm license site glama


Cada IA que usas está construyendo su propio grafo privado sobre ti. Claude tiene uno. ChatGPT tiene uno. Cursor tiene uno. Ninguno se comunica con los demás, y ninguno es tuyo.

Cosmos invierte eso. Tu grafo de conocimiento vive en un solo lugar, y cualquier cliente compatible con MCP (Claude Code, Claude Desktop, Cursor, Codex, Zed, Continue) lee y escribe en el mismo. Cuando un agente nota algo duradero sobre ti, aterriza en el grafo. Cuando cambias de herramienta, el grafo te sigue. El usuario, no la plataforma, es dueño de la capa de integración.

Lo que llevas contigo es un archivo .polarity. Tuyo.

Instalación en una línea

curl -fsSL https://mcp.polarity-lab.com/install.sh | sh

En macOS, esto instala el servidor MCP, registra cosmos-mcp://, configura Claude Desktop, Claude Code, Cursor, Codex, Zed y Continue, y luego instala Cosmos Sync.app para que iMessage, el historial del navegador, el calendario, las transcripciones de Claude Desktop y el historial de shell puedan sincronizarse en segundo plano. En Linux y Windows, solo instala la ruta del servidor MCP.

Si quieres inspeccionar antes de cambiar nada:

curl -fsSL https://mcp.polarity-lab.com/install.sh -o install.sh
bash install.sh --dry-run
bash install.sh

Aprovisionamiento

Hay dos formas de obtener una clave pmk_… en tu Mac.

Automática. Inicia sesión en cosmos.polarity-lab.com/connectors, toca "abrir en cosmos-mcp". El sistema operativo abre un manejador de un solo uso que escribe la clave en tu llavero del sistema. Nunca ves la clave en bruto.

Para que ese enlace profundo funcione, registra el esquema de URL una vez:

npx -y @polarity-lab/cosmos-mcp install-handler

Esto coloca un pequeño .app en ~/Library/Application Support/cosmos-mcp/ y registra cosmos-mcp:// con Launch Services. Solo macOS.

Manual. Si ya tienes una clave pmk_…, o no quieres instalar el manejador:

npx -y @polarity-lab/cosmos-mcp provision pmk_xxx

La CLI valida la clave contra cosmos y luego la almacena en el llavero del sistema de macOS bajo el servicio cosmos-mcp-key. Las llamadas posteriores a imessage sync, browser sync, calendar sync leen desde el llavero. No se necesita variable de entorno.

Confirma el acceso a iMessage.

npx -y @polarity-lab/cosmos-mcp imessage probe

Verifica que se haya otorgado Acceso Total al Disco e informa cuántos chats son visibles. Si ves un mensaje EACCES, abre Configuración del Sistema, Privacidad y Seguridad, Acceso Total al Disco, y agrega Terminal (o la aplicación que ejecute la CLI).

CI. Establece COSMOS_TOKEN=pmk_… en el entorno. Tiene prioridad sobre el llavero, por lo que los pipelines existentes siguen funcionando sin cambios.

Configuración manual de MCP

El instalador maneja esto para clientes comunes. Si quieres conectar un cliente a mano, apúntalo al paquete.

npx -y @polarity-lab/cosmos-mcp init

Esto abre tu navegador. Inicia sesión en cosmos.polarity-lab.com, aprueba una clave por usuario, y el token aterriza en ~/.config/cosmos-mcp/token (0600). Luego apunta cualquier cliente MCP a él:

{
  "mcpServers": {
    "cosmos": {
      "command": "npx",
      "args": ["-y", "@polarity-lab/cosmos-mcp"]
    }
  }
}

Esa configuración se coloca en ~/Library/Application Support/Claude/claude_desktop_config.json para Claude Desktop, tu .cursor/mcp.json para Cursor, y el equivalente para el cliente que sea.

Lo que obtienes

Once herramientas, cuatro de lectura, siete de escritura.

Lectura

HerramientaLlamadasLo que devuelve
polarity_whoamiGET /api/polarity/whoamiUsuario vinculado + alcances. Sonda económica.
polarity_exportPOST /api/polarity/exportGrafo personal completo como JSON polarity/v1.
polarity_get_graphGET /api/polarityVista del grafo, limitada por entidad (user, cosmos, polarity).
polarity_askPOST /api/polarity/askPregunta en lenguaje natural sintetizada sobre el grafo.

Escritura

HerramientaLlamadasLo que hace
polarity_observePOST /api/polarity/observeObservación libre. Cosmos extrae.
polarity_record_eventPOST /api/polarity/observe (kind=event)Algo sucedió en un punto en el tiempo.
polarity_record_preferencePOST /api/polarity/observe (kind=preference)Un gusto, disgusto, regla de estilo de trabajo.
polarity_capture_turnPOST /api/polarity/capture-turnEntrega un intercambio completo usuario/asistente a cosmos. Extrae cada observación duradera en una sola llamada. Prefiérelo sobre múltiples llamadas a polarity_observe.
polarity_reconstruct_hoursPOST /api/polarity/reconstruct-hoursPersiste recibos de horas de vida en el mapa de habilidades (solo por usuario). Úsalo desde Cursor/IDE de Cosmos después de trabajo sustancial.
polarity_dumpPOST /api/polarity/dumpMensaje corto anclado a una ubicación.
polarity_checkinPOST /api/polarity/checkinRegistro en un punto de referencia. Activa la detección de co-presencia.
polarity_declarePOST /api/polarity/declareDeclara presencia futura en un punto de referencia.

Fuentes

El servidor MCP es una forma de escribir en el grafo. Cosmos acepta páginas fuente desde cualquier lugar donde guardes notas, y las herramientas de lectura de MCP ven todo a través de la misma vista.

FuenteCómo se conectaLo que aterriza
iMessageCLI local: npx -y @polarity-lab/cosmos-mcp imessage sync. Solo Mac. Otorga Acceso Total al Disco a Terminal primero.Turnos conversacionales de chat.db, con contenido de texto. Las personas aparecen como nodos de persona en tu grafo, dimensionados por peso conversacional, nombrados mediante tu AddressBook local, fechados por tus marcas de tiempo reales de mensajes.
Claude DesktopCLI local: npx -y @polarity-lab/cosmos-mcp claude-desktop sync. Lee transcripciones de sesiones de Claude Code en ~/.claude/projects/.Cada sesión de Claude Code se convierte en un nodo de hilo; los turnos de usuario y asistente aterrizan en conversation_turns con texto completo. La plomería de uso de herramientas se elimina del lado del cliente.
Historial de shellCLI local: npx -y @polarity-lab/cosmos-mcp shell-history sync. Lee ~/.zsh_history (con respaldo a bash/fish) con una marca de agua de desplazamiento de bytes.Cada ventana de sincronización aterriza como un source_page claveado por shell-history:<sync-iso>, cuerpo = comandos unidos por saltos de línea. Los comandos triviales (ls, cd .., caracteres individuales) y duplicados consecutivos se filtran del lado del cliente.
NotionOAuth en cosmos.polarity-lab.com/connectors. Elige las páginas y bases de datos que quieras compartir.Cada página de Notion se convierte en un nodo source_page, claveado por id de Notion, mantenido fresco por una sincronización diaria.
ObsidianPlugin de la comunidad: polarity-lab/obsidian-cosmos. Pega tu clave pmk_, apunta a tu bóveda.Cada nota se convierte en un nodo source_page claveado por ruta relativa a la bóveda. Las etiquetas y wikilinks se resuelven en aristas.
Clientes MCPEste paquete.Observaciones, eventos, preferencias, volcados de ubicación, registros, declaraciones.
API directaPOST /api/polarity/observe con tu clave.Cualquier cosa que puedas expresar como observación.

Las páginas sin cambios se omiten del lado del servidor, por lo que re-sincronizar una bóveda tranquila o un espacio de trabajo estable de Notion cuesta casi nada. La sincronización de iMessage también es incremental, con marca de agua en la última ejecución exitosa, por lo que re-ejecutarla es una no-operación hasta que lleguen nuevos mensajes.

Sincronización de iMessage

cosmos-mcp incluye un subcomando imessage que lee tu base de datos local de Messages y aterriza cada conversación en tu grafo.

# default: incremental sync, 90-day window on first run
npx -y @polarity-lab/cosmos-mcp imessage sync

# re-sync the original 90-day window regardless of watermark
npx -y @polarity-lab/cosmos-mcp imessage sync --backfill

# pull everything since a specific date
npx -y @polarity-lab/cosmos-mcp imessage sync --since 2024-01-01

# check what the last run did
npx -y @polarity-lab/cosmos-mcp imessage status

Un filtro de basura de tres reglas (remitentes sin respuesta, números de código corto, contactos de bajo volumen) mantiene limpio el grafo. Tu AddressBook resuelve números de teléfono y correos electrónicos en nombres de contacto reales. La lectura es local a tu Mac; solo los turnos extraídos y normalizados van a tu grafo de cosmos, que es tu cuenta.

Sincronización de Claude Desktop

cosmos-mcp incluye un subcomando claude-desktop que observa las transcripciones de sesiones de Claude Code y aterriza cada turno en tu grafo. La superficie de chat de escritorio en sí almacena conversaciones del lado del servidor, por lo que la fuente viva y observable en disco es ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl.

# default: incremental, watermarked per session
npx -y @polarity-lab/cosmos-mcp claude-desktop sync

# limit to recent activity
npx -y @polarity-lab/cosmos-mcp claude-desktop sync --since 2026-05-01

# scan and report without shipping
npx -y @polarity-lab/cosmos-mcp claude-desktop sync --dry-run

# see what the last run did
npx -y @polarity-lab/cosmos-mcp claude-desktop status

Los bloques de uso de herramientas, la plomería de hooks y los turnos de sub-agentes (sidechain) se eliminan del lado del cliente; solo se envía el texto visible que el usuario y el asistente intercambiaron. Cada id de sesión se convierte en su propio nodo de hilo, claveado por (user_id, "claude-desktop", session_id).

Sincronización en segundo plano (macOS)

cosmos-mcp daemon install coloca un LaunchAgent que se ejecuta cada cuatro horas y ejecuta las sincronizaciones de navegador, iMessage, calendario, claude-desktop e historial de shell de forma consecutiva. El agente dispara un paquete Cosmos Sync.app firmado y notarizado que viaja dentro del paquete npm y se copia en ~/Applications/Cosmos Sync.app en el momento de la instalación.

npx -y @polarity-lab/cosmos-mcp daemon install

Después de la instalación, otorga Acceso Total al Disco al paquete una vez:

  1. abre Configuración del Sistema → Privacidad y Seguridad → Acceso Total al Disco
  2. haz clic en +, luego arrastra ~/Applications/Cosmos Sync.app a la lista
  3. asegúrate de que la casilla junto a él esté activada
  4. ejecuta cosmos-mcp daemon kick para disparar un tick ahora

La sincronización del navegador funciona sin ese paso. iMessage y Calendario lo necesitan porque leen bases de datos SQLite protegidas por TCC del lado del usuario. cosmos-mcp daemon status informa el id del equipo de firma, las rutas del plist + runner, y si launchd tiene el agente cargado. cosmos-mcp daemon uninstall elimina el plist, el runner y ~/Applications/Cosmos Sync.app.

Configuración

Variable de entornoPredeterminadoCuándo la estableces
COSMOS_URLhttps://cosmos.polarity-lab.comSobrescribe el endpoint de la API de cosmos.
COSMOS_TOKEN(desde el llavero)Clave pmk_... por usuario para subcomandos de CLI. Tiene prioridad sobre la entrada del llavero de macOS. Establécelo en CI.
COSMOS_MCP_KEY(desde el archivo de token)Clave pmk_... por usuario. Se honra por compatibilidad inversa.
COSMOS_USER_ID(desde el archivo de token)Id de usuario de Polarity.
COSMOS_SYSTEM_KEY(sin establecer)Modo de un solo inquilino. Envía X-System-Key en lugar de X-MCP-Key. Requiere COSMOS_USER_ID. Para pruebas internas antes de que se implementen claves por usuario.

El discurso en tres líneas

Tus herramientas de IA conocen fragmentos de ti. No se les permite compartirlos. Cosmos es la capa que se los permite. Tú tienes la clave. El grafo es portátil. Cuando te vas, te llevas el entendimiento contigo.

Licencia

MIT.