Synapse Layer — Trust Infrastructure for AI Agents

MCP-native Trust Infrastructure for AI Agents. Persistent encrypted memory with Trust Quotient.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
86%
Integridad del esquema
93%
Calidad de los nombres
89%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • LOWTool 'save_to_synapse' description lacks action verben save_to_synapse
  • LOWTool 'store_memory' description lacks action verben store_memory
  • LOWTool 'neural_handover' description lacks action verben neural_handover
  • LOWTool 'slo_report' description lacks action verben slo_report

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,950Tokens (definiciones de herramientas)
~3.2 KBTamaño de respuesta típico
Impacto significativo en la atención (3.09% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "synapse-layer": {
      "url": "https://forge.synapselayer.org/api/mcp"
    }
  }
}

Puntos de conexión remotos

https://forge.synapselayer.org/api/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (13)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢recall(query, reason, scope, agent_id, limit, ...)

Retrieve relevant persisted memory using semantic, temporal, priority, or hybrid routing. Governance: requires reason (10–200 chars). Rate limit: 20/min.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to recall — natural language query for memory retrieval."
    },
    "reason": {
      "type": "string",
      "description": "REQUIRED (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Human-readable justification for retrieving PLAINTEXT memory. Without this parameter the call WILL fail with code -32602. Example: \"User asked me to summarize last week decisions.\""
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ],
      "description": "Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used (verified-token scope)."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    },
    "limit": {
      "type": "number",
      "description": "Maximum memories to return (1–50, default: 10)."
    },
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "temporal",
        "semantic",
        "priority",
        "hybrid"
      ],
      "description": "Recall routing mode. \"temporal\" = pure chronological, \"semantic\" = FTS + TQ ranking, \"priority\" = critical/high-TQ first, \"hybrid\" = weighted blend, \"auto\" = detect from query (default)."
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "query",
    "reason"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "similarity": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    },
    "count": {
      "type": "number"
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    }
  },
  "required": [
    "memories",
    "count",
    "scope"
  ]
}
🟡save_to_synapse(content, agent_id, project, type, importance, ...)

Persist memory with encryption at rest, sanitization, and deduplication controls.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The memory content to store securely."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier for memory isolation. Defaults to \"default\"."
    },
    "project": {
      "type": "string",
      "description": "Project identifier (e.g., SYNAPSE_LAYER)."
    },
    "type": {
      "type": "string",
      "description": "Event type: [MILESTONE], [DECISION], [ALERT], [AUTO-STRAT], [AUTO-OP], [AUTO-INSIGHT], [AUTO-DECISION], [AUTO-CONTEXT], [MANUAL]."
    },
    "importance": {
      "type": "number",
      "description": "Accepted for compatibility; not enforced by the API."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for categorization."
    },
    "force_intent": {
      "type": "string",
      "description": "MANUAL OVERRIDE ONLY — use apenas quando você (humano) quer forçar explicitamente a classificação de intenção. Valores reconhecidos: preference | fact | procedural | bio | critical | operational | strategic | compliance | security | system_directive | clinical | general | ephemeral. Se não tiver certeza, NÃO preencha este campo — o sistema classifica automaticamente. Valores não reconhecidos são ignorados silenciosamente e retornados em warnings."
    },
    "intent_reason": {
      "type": "string",
      "description": "Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.",
      "maxLength": 500
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "content"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memory_id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "trust_quotient": {
      "type": "number"
    }
  },
  "required": [
    "memory_id",
    "status"
  ]
}
🟢process_text(text, agent_id, project, source)

Extract candidate memories from free-form text with governance filters and sanitization.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "Free-form text to scan for auto-save triggers."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier. Defaults to \"default\"."
    },
    "project": {
      "type": "string",
      "description": "Force a specific project (e.g., SYNAPSE_LAYER, OFFLY). Auto-detected if omitted."
    },
    "source": {
      "type": "string",
      "description": "Source identifier (default: mcp)."
    }
  },
  "required": [
    "text"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "extracted": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "storedCount": {
      "type": "number"
    }
  },
  "required": [
    "extracted",
    "storedCount"
  ]
}
🟢search(query, reason, scope, agent_id, limit, ...)

Search persisted memory across agent scopes using full-text matching. Governance: requires reason (10–200 chars) because results contain plaintext content.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query — natural language or keywords."
    },
    "reason": {
      "type": "string",
      "description": "REQUIRED (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Human-readable justification for retrieving PLAINTEXT memory. Without this parameter the call WILL fail with code -32602. Example: \"Checking prior migration decisions for the user.\""
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ],
      "description": "Explicit search scope. \"agent\" (default, fail-closed) = limits search to the given agent_id (or the token agent). \"tenant\" = cross-agent search within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used (verified-token scope)."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    },
    "limit": {
      "type": "number",
      "description": "Maximum results to return (1–50, default: 20)."
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "query",
    "reason"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "count": {
      "type": "number"
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    }
  },
  "required": [
    "results",
    "count",
    "scope"
  ]
}
🟢health_check

Check service availability, engine version, and storage health. Public method.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "dbLatencyMs": {
      "type": "number"
    }
  },
  "required": [
    "status",
    "version"
  ]
}
🟢initialize_context(detail, reason)

Initialize a persistent memory context for a conversation or agent session. Returns REDACTED metadata by default (detail="summary"). Use detail="full" with a reason (10–200 chars) to retrieve plaintext content under MEMORY_EXPORT_GOVERNANCE_V1.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "detail": {
      "type": "string",
      "enum": [
        "summary",
        "full"
      ],
      "description": "Detail level. \"summary\" (default) = redacted metadata only, no plaintext. \"full\" = plaintext content; REQUIRES the reason parameter and is audit-logged."
    },
    "reason": {
      "type": "string",
      "description": "REQUIRED only when detail=\"full\" (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Human-readable justification for retrieving PLAINTEXT context. Without it, detail=\"full\" WILL fail with code -32602."
    }
  },
  "required": []
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    },
    "agent_id": {
      "type": "string"
    }
  },
  "required": [
    "scope"
  ]
}
🟡save_memory(content, agent_id, tags, force_intent, intent_reason, ...)

Save a memory entry to the persistent store. Alias of save_to_synapse.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The memory content to store securely."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier for memory isolation."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for categorization."
    },
    "force_intent": {
      "type": "string",
      "description": "MANUAL OVERRIDE ONLY — use apenas quando você (humano) quer forçar explicitamente a classificação de intenção. Valores reconhecidos: preference | fact | procedural | bio | critical | operational | strategic | compliance | security | system_directive | clinical | general | ephemeral. Se não tiver certeza, NÃO preencha este campo — o sistema classifica automaticamente. Valores não reconhecidos são ignorados silenciosamente e retornados em warnings."
    },
    "intent_reason": {
      "type": "string",
      "description": "Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.",
      "maxLength": 500
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "content"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "stored": {
      "type": "boolean"
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    }
  },
  "required": [
    "id",
    "stored",
    "scope"
  ]
}
⚪store_memory(content, agent_id, tags, force_intent, intent_reason, ...)

Store structured memory with metadata and trust scoring.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "The memory content to store securely."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier for memory isolation. Defaults to \"default\"."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for categorization."
    },
    "force_intent": {
      "type": "string",
      "description": "MANUAL OVERRIDE ONLY — use apenas quando você (humano) quer forçar explicitamente a classificação de intenção. Valores reconhecidos: preference | fact | procedural | bio | critical | operational | strategic | compliance | security | system_directive | clinical | general | ephemeral. Se não tiver certeza, NÃO preencha este campo — o sistema classifica automaticamente. Valores não reconhecidos são ignorados silenciosamente e retornados em warnings."
    },
    "intent_reason": {
      "type": "string",
      "description": "Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.",
      "maxLength": 500
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "content"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "stored": {
      "type": "boolean"
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    }
  },
  "required": [
    "id",
    "stored",
    "scope"
  ]
}
🟢recall_memory(query, reason, scope, agent_id, limit, ...)

Recall persisted memory by query. Alias of recall.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to recall — natural language query for memory retrieval."
    },
    "reason": {
      "type": "string",
      "description": "REQUIRED (10–200 chars). Audit policy: MEMORY_EXPORT_GOVERNANCE_V1. Without this the call WILL fail with code -32602. Example: \"Checking user project status.\""
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ],
      "description": "Explicit memory scope. \"agent\" (default, fail-closed) = limits recall to the given agent_id (or the token agent). \"tenant\" = cross-agent recall within the authenticated tenant. If omitted with agent_id present, \"agent\" is inferred; if both omitted, the token agent is used (verified-token scope)."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    },
    "limit": {
      "type": "number",
      "description": "Maximum memories to return (1–50, default: 10)."
    },
    "mode": {
      "type": "string",
      "enum": [
        "auto",
        "temporal",
        "semantic",
        "priority",
        "hybrid"
      ],
      "description": "Recall routing mode."
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  },
  "required": [
    "query",
    "reason"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "similarity": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    },
    "count": {
      "type": "number"
    },
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ]
    }
  },
  "required": [
    "memories",
    "count",
    "scope"
  ]
}
🟢list_memories(scope, agent_id, limit, subject)

List memory metadata with pagination and governance limits.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "scope": {
      "type": "string",
      "enum": [
        "agent",
        "tenant"
      ],
      "description": "Explicit memory scope. \"agent\" (default, fail-closed) = lists memories for the given agent_id (or the token agent). \"tenant\" = lists memories across all agents of the authenticated tenant."
    },
    "agent_id": {
      "type": "string",
      "description": "Agent identifier (canonical or alias). Used only when scope=\"agent\" or scope is inferred."
    },
    "limit": {
      "type": "number",
      "description": "Maximum memory metadata rows to return. Hard-capped: default 5, max 10. Values above 10 are silently reduced to 10."
    },
    "subject": {
      "type": "string",
      "description": "ESCOPO1 (optional): opaque 8-128 char token ([A-Za-z0-9._:-]) that isolates memory to a single person within a shared connect-token. Omit for token-scoped behavior. Never include PII/email."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memories": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "count": {
      "type": "number"
    },
    "total": {
      "type": "number"
    }
  },
  "required": [
    "memories",
    "count"
  ]
}
🟡memory_feedback(memory_id, memoryId, signal, session_id, sessionId)

Submit feedback to adjust trust scoring for stored memories.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "memory_id": {
      "type": "string",
      "description": "ID of the memory to provide feedback on (canonical snake_case name)."
    },
    "memoryId": {
      "type": "string",
      "description": "Deprecated camelCase alias of memory_id — still accepted for backward compatibility."
    },
    "signal": {
      "type": "string",
      "enum": [
        "used",
        "ignored",
        "helpful",
        "irrelevant"
      ],
      "description": "Feedback signal: used (auto), helpful (positive), irrelevant (negative), ignored."
    },
    "session_id": {
      "type": "string",
      "description": "Optional session identifier for tracking (canonical snake_case name)."
    },
    "sessionId": {
      "type": "string",
      "description": "Deprecated camelCase alias of session_id — still accepted for backward compatibility."
    }
  },
  "required": [
    "signal"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "memoryId": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "signal": {
      "type": "string"
    }
  },
  "required": [
    "memoryId",
    "success"
  ]
}
⚪neural_handover(token, reason, consuming_agent)

Transfer contextual state between agents with continuity controls.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "The handover token (64 hex chars). Generated by the source agent/user in Forge UI."
    },
    "reason": {
      "type": "string",
      "description": "REQUIRED (10–200 chars). Human-readable justification for consuming this handover. Example: \"Receiving project context from Claude session.\""
    },
    "consuming_agent": {
      "type": "string",
      "description": "Agent identifier consuming the handover (defaults to token agent)."
    }
  },
  "required": [
    "token",
    "reason"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "handoverId": {
      "type": "string"
    },
    "status": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ]
}
🟢slo_report(admin_token, window_hours)

Return uptime and SLO metrics for the MCP service.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "admin_token": {
      "type": "string",
      "description": "Admin authentication token. Must match ADMIN_TOKEN environment variable."
    },
    "window_hours": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Time windows in hours for the report. Default: [24, 168] (24h + 7d)."
    }
  },
  "required": [
    "admin_token"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "window": {
      "type": "string"
    },
    "uptime": {
      "type": "number"
    },
    "p50": {
      "type": "number"
    },
    "p95": {
      "type": "number"
    },
    "errorRate": {
      "type": "number"
    }
  },
  "required": [
    "uptime"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada13 herramientas
verificadoversión no registrada13 herramientas