Synapse Layer — Trust Infrastructure for AI Agents
MCP-native Trust Infrastructure for AI Agents. Persistent encrypted memory with Trust Quotient.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- LOWin save_to_synapse
- LOWin store_memory
- LOWin neural_handover
- LOWin slo_report
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"synapse-layer": {
"url": "https://forge.synapselayer.org/api/mcp"
}
}
}Remote-Endpunkte
https://forge.synapselayer.org/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (13)
🟢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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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": []
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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."
}
}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"window": {
"type": "string"
},
"uptime": {
"type": "number"
},
"p50": {
"type": "number"
},
"p95": {
"type": "number"
},
"errorRate": {
"type": "number"
}
},
"required": [
"uptime"
]
}Community
Nachweis