SERVIDOR MCP

Configuración

El servidor MCP le permite a Claude Desktop, Cursor, Windsurf, Hermes Agent, OpenClaw y cualquier cliente compatible con MCP usar ChainMemory como herramienta nativa.

Instalación

Agregá esta configuración a tu claude_desktop_config.json:

JSON
{
  "mcpServers": {
    "chainmemory": {
      "command": "npx",
      "args": ["-y", "chainmemory-mcp"],
      "env": {
        "CHAINMEMORY_API_KEY": "tu-api-key"
      }
    }
  }
}

Reiniciá el cliente después. Publicar una versión nueva en npm no actualiza a los clientes que ya están corriendo: el paquete se descarga cuando el cliente arranca.

Opciones

En el mismo bloque env, junto a la API key, pueden ir dos variables más:

VariableQué activa
CHAINMEMORY_SEED_PHRASETu frase de 12 palabras para la bóveda ciega. Con ella, chainmemory_remember con sealed: true cifra la memoria en tu máquina y calcula ahí su vector de búsqueda, y search_memories envía el vector de tu consulta en lugar de su texto. La frase nunca sale de tu máquina. Generá una con chainmemory_new_seed
CHAINMEMORY_ALLOW_FULLPoné 1 para que get_project_brief pueda devolver el nivel completo cuando lo pidas: direcciones, puertos, rutas de servidor y reglas de seguridad. Si la dejás vacía, todo brief queda en el nivel público, seguro para pegar en cualquier lado. Funciona solo con la clave del dueño, y ChainMemory registra cada pedido de nivel completo
Conseguir tu API Key En la extensión Chrome, click en "View key" para ver y copiar la clave completa. La pestaña Settings la muestra abreviada, sólo para identificarla.
Servicio externo ChainMemory es un protocolo independiente. No es parte de Claude, ChatGPT, Cursor ni de ningún proveedor de IA. Cualquier cliente compatible con MCP se conecta con una API key. Tus memorias son tuyas, no del proveedor de IA.

Herramientas disponibles

El servidor expone 37 herramientas. Leer es gratis; las operaciones que cuestan AIC están marcadas. Ver Costos para la tabla completa.

Memoria

HerramientaQué haceCosto
chainmemory_rememberGuarda una memoria vinculada a un proyecto, con tags, categoría e importancia (1–10). Con sealed: true y la bóveda configurada, se cifra en tu máquina y el servidor guarda un blob que no puede leer; igual se puede encontrar por su significado0.001 AIC + almacenamiento
chainmemory_recallDevuelve tus memorias más recientes, de la más nueva a la más vieja. No busca: lista. Devuelve vistas previas de 80 caracteresgratis
search_memoriesBúsqueda semántica sobre tus memorias, devolviendo el texto completo de cada coincidencia. Con la bóveda configurada, solo se envía el vector de tu consulta, y las coincidencias selladas se descifran en tu máquinagratis
get_memoryLee una memoria completa, descifrada desde la cadena, con verificación de integridad contra su hash ancladogratis
list_memories_filteredLista memorias por proyecto y estado de archivado. Devuelve vistas previas de 80 caracteresgratis
update_memory_tagsReemplaza los tags de una memoriagratis
archive_memory · unarchive_memoryOculta una memoria de listados e inyecciones, o la restaura. En los dos casos sigue en el registrogratis
chainmemory_new_seedGenera una frase nueva de 12 palabras para la bóveda ciega, en tu máquina. No se envía ni se guarda: anotala en papelgratis
chainmemory_open_sealedLee una memoria sellada: trae el blob cifrado y lo descifra en tu máquina con tu frasegratis
chainmemory_sealSella una memoria de forma permanente on-chain para que ya no pueda modificarse. Requiere clave de wallet0.001 AIC

Verificación

HerramientaQué haceCosto
get_memory_proofLa prueba de anclaje compartible de una memoria: su event_hash y sus coordenadas on-chain. Un tercero la verifica sin tu API key, y el contenido nunca se exponegratis
verify_project_statePrueba pública y sin autenticación de un Project State: cada versión anclada con su state_hash, id de ancla, transacción y bloque, más cómo verificarlo vos mismo en el contratogratis
audit_memoryAuditoría forense de una memoria: recomputa su hash desde el contenido guardado y lo compara contra el anclado0.1 AIC — gratis con dry_run
audit_stateAuditoría completa de un Project State: recomputa el state_hash con el motor determinista y devuelve el ancla más el historial de versiones5 AIC — gratis con dry_run

Project State

HerramientaQué haceCosto
get_project_briefEl Brain como un resumen listo para leer, ordenado por relevancia y recortado a un presupuesto de caracteres: qué cambió desde la última versión que leíste, los riesgos abiertos (los altos primero, con las prioridades que los mitigan y los riesgos altos que nadie mitiga), las prioridades activas con su criterio de cumplimiento, las reglas de trabajo del dueño, las decisiones e hitos recientes, las preguntas abiertas y las restricciones, encabezado por el anclaje on-chain. Con task y el id de una prioridad, devuelve todo lo necesario para trabajar en esa prioridad. Público por defecto: las direcciones, puertos, rutas de servidor y reglas de seguridad se reservan y se cuentan. Usalo para orientarte al empezar una sesióngratis
get_project_stateEl estado consolidado: visión, fase, foco actual, decisiones, riesgos, supuestos, preguntas abiertas, prioridades, constraints, métricas, vocabulario y entorno de trabajo — más su state_hash y su ancla on-chain. Con include_roles: false omite el texto de los contratos de rol. Es el JSON estructurado con ids y evidencia: usalo siempre antes de update_project_stategratis
update_project_statePropone operaciones de la gramática de 30 ops. El servidor valida, las aplica con el builder determinista, recomputa el hash y persiste0.05 AIC + 0.005 por op aplicada

Verifiable Role Contracts

HerramientaQué haceCosto
list_role_contractsLista los roles definidos en un proyecto con su versión y estado. Llamala primero: los ids de rol no se adivinangratis
get_role_contractLee el contrato de un rol: propósito, reglas con sus checks y severidad, protocolo de trabajo. Acepta version para auditar uno anteriorgratis
assume_roleAbre una sesión de rol auditada bajo un contrato activo. Fija el hash del contrato y el state_hash del Brain, y entrega el entorno de trabajo declarado por el dueño0.001 AIC
release_roleCierra una sesión con un resumen de lo hecho y lo pendiente. Las sesiones se auto-liberan a los 60 minutosgratis
list_role_sessions · get_role_sessionEl rastro de auditoría: quién asumió qué rol, cuándo, cómo cerró, y a qué hashes quedó atada la sesióngratis

Inyección

HerramientaQué haceCosto
quote_injectCotiza una inyección antes de pagarla: qué ids existen y cuáles no, total de caracteres, costo exacto con su reparto, y si tu saldo alcanzagratis
inject_memoriesInyecta hasta 50 memorias en la conversación actual. Optimista: el texto vuelve enseguida y el pago se confirma en segundo plano0.1 AIC por llamada
get_inject_balance · get_inject_historyTu saldo de AIC y para cuántas inyecciones alcanza; el historial de inyecciones con su costogratis
get_my_contextTu memoria reciente como contexto portable listo para inyectar, entre todas las plataformasgratis

Proyectos e identidad

HerramientaQué haceCosto
list_projects · create_project · delete_projectGestión de tus proyectos y sus palabras clave de auto-etiquetadogratis
list_project_templates · add_project_from_templatePlantillas incluidas: general, development, blockchain, business, personal, researchgratis
chainmemory_registerRegistra una identidad de IA en la cadena. Necesario una vez antes de escribir memoriasgratis
chainmemory_profile · chainmemory_statsEl perfil de tu identidad y las estadísticas de la redgratis

Consolidación autónoma

Cualquier cliente de IA puede consolidar el estado del proyecto de forma autónoma con update_project_state. Ésta es la arquitectura "el cliente consolida, la cadena verifica": el modelo propone, el servidor valida, y recién ahí se convierte en estado.

1

Leer el estado actual

Llamar a get_project_state para cargar el estado consolidado y su marca de agua consolidated_until_event.

2

Analizar lo nuevo

Con list_memories_filtered o search_memories, leer las memorias creadas después de la marca de agua para identificar qué cambió.

3

Proponer las operaciones

Armar un array de operaciones de la gramática de 30 ops y enviarlo por update_project_state.

4

El servidor valida y persiste

Cada operación se valida contra la gramática, se aplica con el builder determinista, se computa el nuevo state_hash (SHA3-256), se vincula la evidencia con árboles Merkle, y se persiste la versión. Las operaciones inválidas se rechazan individualmente — las válidas se aplican igual.

Gramática de operaciones (30 ops)

Cada operación tiene un tipo (op) y sus propios argumentos. Usá evidence_memory_ids — un array de números de memoria — para vincular la evidencia que la respalda; el servidor resuelve los event hashes automáticamente.

OperaciónCampos requeridosDescripción
add_decisiontitle, statementRegistra una decisión. Sin status se crea como proposed
set_decision_statusid, toCambia el estado: proposed → confirmed o rejected
supersede_decisionid, by_idMarca una decisión confirmada como reemplazada por otra. Es la única forma de llegar a superseded
add_milestonetitleRegistra un milestone
set_milestone_statusid, toActualiza su estado
add_risktitleDocumenta un riesgo. severity es low, med (por defecto) o high
set_risk_statusid, toCambia su estado: open → mitigated → closed (un riesgo abierto también se puede cerrar directamente)
add_assumptionstatementRegistra un supuesto
invalidate_assumptionidMarca un supuesto como inválido
add_open_questionquestionRegistra una pregunta abierta
answer_open_questionid, answerLa responde
add_prioritytitleAgrega un ítem priorizado. Opcionales: priority_score (100 por defecto) y mitigates, los ids de los riesgos abiertos que ataca
set_priority_statusid, toCambia su estado: active → done o dropped
set_priority_risksid, mitigatesReemplaza los riesgos que mitiga una prioridad activa; [] quita el vínculo. Un riesgo que no existe o que está cerrado se rechaza
reorder_priorityid, priority_scoreCambia su score
set_focusvalueActualiza el foco actual
set_phasevalueActualiza la fase del proyecto
set_visionstatementActualiza la visión
add_vocabulary · update_vocabularyterm, definitionDefine o redefine un término
add_constraintstatementAgrega una restricción
remove_constraintidQuita una restricción
set_metricname, valueFija o actualiza una métrica. No acepta evidence_memory_ids
add_env_host · add_env_service · add_env_repo · add_env_rulevarían según el tipoDescriben dónde y cómo trabaja el dueño: hosts, servicios, repositorios y reglas operativas
set_env_status · verify_env · supersede_envidActualizan, confirman como vigente, o retiran un ítem del entorno
Los nombres de campo son exactos La causa más común de rechazo es un nombre de argumento equivocado. set_metric usa name, no key. supersede_decision usa by_id, no superseded_by. Y set_metric rechaza evidence_memory_ids, que el resto de las operaciones aditivas sí acepta. Como el fee tiene una base fija por llamada, mandar todo en una sola llamada sale más barato que descubrir firmas de a una.
Entorno: topología, nunca credenciales Las siete operaciones *_env_* describen dónde trabaja el dueño para que una IA lo sepa desde su primer mensaje. Guardan sólo topología: hosts, puertos, rutas, reglas. El servidor rechaza credenciales, claves y contraseñas.

Ejemplo

JSON — llamada a update_project_state
{
  "project": "mi-proyecto",
  "ops": [
    {
      "op": "add_decision",
      "title": "Migrar a PostgreSQL",
      "statement": "SQLite no soporta escrituras concurrentes a la escala actual",
      "evidence_memory_ids": [142, 145]
    },
    {
      "op": "set_metric",
      "name": "db_migration_status",
      "value": "planning"
    },
    {
      "op": "add_milestone",
      "title": "Migración a PostgreSQL aprobada por el equipo",
      "status": "done",
      "evidence_memory_ids": [145]
    }
  ],
  "consolidated_until_event": 150
}
Procesamiento resiliente Las operaciones se aplican de a una. Si una falla la validación, se rechaza y el resto se aplica igual. La respuesta incluye applied_count y el detalle de cada rechazo. Sólo se cobran las operaciones aplicadas, y si el estado resultante es idéntico al anterior, no se cobra nada.

Flujo de trabajo

El flujo típico con MCP:

1

Inicio de sesión

Pedile a tu IA que cargue el contexto del proyecto. Llama a get_project_brief y arranca sabiendo en qué estás trabajando, qué cambió y qué está en riesgo. Nada se inyecta solo: el modelo decide cuándo usar las herramientas.

2

Trabajo normal

Trabajás con tu IA como siempre. Cuando pasa algo importante — una decisión, un descubrimiento, un cambio de arquitectura — guarda la memoria con chainmemory_remember.

3

Consolidación

Al final, la IA propone operaciones con update_project_state: qué se decidió, qué riesgo se abrió, qué prioridad cambió. Eso es lo que convierte una pila de conversaciones en estado.

4

Continuidad

En la sesión siguiente, en este modelo o en cualquier otro, el estado consolidado ya está. No se pierde nada en el medio.

Flujos avanzados

Claude Desktop — sesiones de arquitectura

Claude es muy bueno en diseño de alto nivel. Usá ChainMemory para preservar las decisiones de arquitectura entre sesiones:

Patrón de prompt — Claude Desktop
"Antes de empezar, cargá el estado de mi proyecto desde ChainMemory.
Después diseñemos el sistema de autenticación.

Cuando decidamos, guardá las decisiones clave con tags 'architecture'
y 'auth'. Usá importancia 9 para todo lo que afecte a otros
miembros del equipo, y después propone las operaciones para
consolidar el estado."

Claude lee el estado con get_project_state, trabaja con vos en el diseño, guarda las decisiones con chainmemory_remember, y propone la consolidación con update_project_state. En la sesión siguiente, la arquitectura de auth ya es parte del estado.

Cursor — código con memoria

La integración MCP de Cursor le permite a tu IA de código recordar por qué el código se escribió de cierta manera. La configuración es la misma que para Claude Desktop, en settings.json.

Un flujo efectivo:

  • Inicio de sesión — "Cargá el estado del proyecto": decisiones vigentes, riesgos abiertos y prioridades
  • Durante el desarrollo — "Guardá: implementé el handler de webhooks con reintentos, 3 intentos con backoff exponencial"
  • Corrección de bugs — "Guardá: arreglé la race condition en el procesamiento de pagos — el webhook de Stripe llegaba antes de que la transacción de DB commiteara"
  • Fin de sesión — "Consolidá lo que cambió hoy", que propone las operaciones y actualiza el estado

Patrón de memoria agéntica

El patrón más potente de MCP es la memoria agéntica, donde la IA gestiona su propio conocimiento:

System prompt para memoria agéntica
Tenés acceso a ChainMemory por MCP. Seguí estas reglas:

1. Al inicio de sesión: llamá a get_project_brief para orientarte,
   y a get_project_state antes de proponer cualquier cambio.
2. Cuando tomes una decisión significativa: guardala con
   chainmemory_remember.
   - Incluí POR QUÉ elegiste ese camino
   - Etiquetala con el dominio relevante
   - Importancia 1-10: usá 7 o más para decisiones, 5 para
     observaciones
3. Cuando completes un milestone: guardalo y decí qué sigue.
4. Cuando identifiques un riesgo: guardalo con su severidad.
5. Al cerrar la sesión: proponé la consolidación con
   update_project_state. No cierres ni supersedas ítems
   existentes sin aprobación del dueño: agregá en estado
   propuesto y dejá que un humano confirme.
Traspaso entre herramientas El mismo proyecto de ChainMemory funciona en Claude, Cursor, Windsurf, Hermes Agent, OpenClaw y cualquier cliente compatible con MCP. Diseñás en uno, implementás en otro, revisás en un tercero — todos compartiendo el mismo estado. Ver Sistemas multi-agente.
Trabajar bajo un contrato de rol Para equipos y trabajo auditado, ChainMemory soporta Verifiable Role Contracts: reglas escritas por humanos y firmadas por el dueño, que un modelo lee antes de trabajar. assume_role abre una sesión atada al hash del contrato y al hash del estado, y release_role la cierra con un resumen. El modelo lee el contrato; nunca lo escribe.