Synapse Layer — Trust Infrastructure for AI Agents

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

我該用這個嗎

品質與安全性

A
說明品質
86%
結構描述完整度
93%
命名品質
89%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(4)

  • LOWTool 'save_to_synapse' description lacks action verb在 save_to_synapse 中
  • LOWTool 'store_memory' description lacks action verb在 store_memory 中
  • LOWTool 'neural_handover' description lacks action verb在 neural_handover 中
  • LOWTool 'slo_report' description lacks action verb在 slo_report 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,950Token(工具定義)
~3.2 KB典型回應大小
顯著的注意力影響(128k 上下文的 3.09%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

遠端端點

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

它能做什麼

工具清單

工具(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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

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

輸出結構描述

{
  "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.

輸入結構描述

{
  "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": []
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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."
    }
  }
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

{
  "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.

輸入結構描述

{
  "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"
  ]
}

輸出結構描述

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

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本13 個工具
已驗證未記錄版本13 個工具