MCP 서버

Synapse Layer — Trust Infrastructure for AI Agents

io.github.SynapseLayer/synapse-layer
MCP 및 에이전트 인프라 공개 · 연결 가능 MCP 2026-07-28

이 MCP로 할 수 있는 일

Provides encrypted persistent memory, semantic recall, memory governance, trust scoring, and contextual handover between agents.

health_check
Check service availability, engine version, and storage health. Public method.
읽기 전용
입력 스키마
{'type': 'object', 'properties': {}}
출력 스키마
{'type': 'object', 'required': ['status', 'version'], 'properties': {'status': {'type': 'string'}, 'version': {'type': 'string'}, 'dbLatencyMs': {'type': 'number'}}}
initialize_context
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', 'required': [], 'properties': {'detail': {'enum': ['summary', 'full'], 'type': 'string', '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.'}}}
출력 스키마
{'type': 'object', 'required': ['scope'], 'properties': {'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'agent_id': {'type': 'string'}, 'memories': {'type': 'array', 'items': {'type': 'object'}}}}
list_memories
List memory metadata with pagination and governance limits.
읽기 전용
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum memory metadata rows to return. Hard-capped: default 5, max 10. Values above 10 are silently reduced to 10.'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string', '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.'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier (canonical or alias). Used only when scope="agent" or scope is inferred.'}}}
출력 스키마
{'type': 'object', 'required': ['memories', 'count'], 'properties': {'count': {'type': 'number'}, 'total': {'type': 'number'}, 'memories': {'type': 'array', 'items': {'type': 'object'}}}}
memory_feedback
Submit feedback to adjust trust scoring for stored memories.
입력 스키마
{'type': 'object', 'required': ['signal'], 'properties': {'signal': {'enum': ['used', 'ignored', 'helpful', 'irrelevant'], 'type': 'string', 'description': 'Feedback signal: used (auto), helpful (positive), irrelevant (negative), ignored.'}, 'memoryId': {'type': 'string', 'description': 'Deprecated camelCase alias of memory_id — still accepted for backward compatibility.'}, 'memory_id': {'type': 'string', 'description': 'ID of the memory to provide feedback on (canonical snake_case name).'}, 'sessionId': {'type': 'string', 'description': 'Deprecated camelCase alias of session_id — still accepted for backward compatibility.'}, 'session_id': {'type': 'string', 'description': 'Optional session identifier for tracking (canonical snake_case name).'}}}
출력 스키마
{'type': 'object', 'required': ['memoryId', 'success'], 'properties': {'signal': {'type': 'string'}, 'success': {'type': 'boolean'}, 'memoryId': {'type': 'string'}}}
neural_handover
Transfer contextual state between agents with continuity controls.
입력 스키마
{'type': 'object', 'required': ['token', 'reason'], '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).'}}}
출력 스키마
{'type': 'object', 'required': ['status'], 'properties': {'status': {'type': 'string'}, 'handoverId': {'type': 'string'}}}
process_text
Extract candidate memories from free-form text with governance filters and sanitization.
입력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Free-form text to scan for auto-save triggers.'}, 'source': {'type': 'string', 'description': 'Source identifier (default: mcp).'}, 'project': {'type': 'string', 'description': 'Force a specific project (e.g., SYNAPSE_LAYER, OFFLY). Auto-detected if omitted.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier. Defaults to "default".'}}}
출력 스키마
{'type': 'object', 'required': ['extracted', 'storedCount'], 'properties': {'extracted': {'type': 'array', 'items': {'type': 'object'}}, 'storedCount': {'type': 'number'}}}
recall
Retrieve relevant persisted memory using semantic, temporal, priority, or hybrid routing. Governance: requires reason (10–200 chars). Rate limit: 20/min.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['query', 'reason'], 'properties': {'mode': {'enum': ['auto', 'temporal', 'semantic', 'priority', 'hybrid'], 'type': 'string', 'description': 'Recall routing mode. "temporal" = pure chronological, "semantic" = FTS + TQ ranking, "priority" = critical/high-TQ first, "hybrid" = weighted blend, "auto" = detect from query (default).'}, 'limit': {'type': 'number', 'description': 'Maximum memories to return (1–50, default: 10).'}, 'query': {'type': 'string', 'description': 'What to recall — natural language query for memory retrieval.'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string', '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).'}, '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."'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier (canonical or alias). Used only when scope="agent" or scope is inferred.'}}}
출력 스키마
{'type': 'object', 'required': ['memories', 'count', 'scope'], 'properties': {'count': {'type': 'number'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'memories': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'content': {'type': 'string'}, 'createdAt': {'type': 'string', 'format': 'date-time'}, 'similarity': {'type': 'number'}}}}}}
recall_memory
Recall persisted memory by query. Alias of recall.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['query', 'reason'], 'properties': {'mode': {'enum': ['auto', 'temporal', 'semantic', 'priority', 'hybrid'], 'type': 'string', 'description': 'Recall routing mode.'}, 'limit': {'type': 'number', 'description': 'Maximum memories to return (1–50, default: 10).'}, 'query': {'type': 'string', 'description': 'What to recall — natural language query for memory retrieval.'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string', '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).'}, '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."'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier (canonical or alias). Used only when scope="agent" or scope is inferred.'}}}
출력 스키마
{'type': 'object', 'required': ['memories', 'count', 'scope'], 'properties': {'count': {'type': 'number'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'memories': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'content': {'type': 'string'}, 'createdAt': {'type': 'string', 'format': 'date-time'}, 'similarity': {'type': 'number'}}}}}}
save_memory
Save a memory entry to the persistent store. Alias of save_to_synapse.
멱등성
입력 스키마
{'type': 'object', 'required': ['content'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags for categorization.'}, 'content': {'type': 'string', 'description': 'The memory content to store securely.'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier for memory isolation.'}, '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', 'maxLength': 500, 'description': 'Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'stored', 'scope'], 'properties': {'id': {'type': 'string'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'stored': {'type': 'boolean'}}}
save_to_synapse
Persist memory with encryption at rest, sanitization, and deduplication controls.
멱등성
입력 스키마
{'type': 'object', 'required': ['content'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags for categorization.'}, 'type': {'type': 'string', 'description': 'Event type: [MILESTONE], [DECISION], [ALERT], [AUTO-STRAT], [AUTO-OP], [AUTO-INSIGHT], [AUTO-DECISION], [AUTO-CONTEXT], [MANUAL].'}, 'content': {'type': 'string', 'description': 'The memory content to store securely.'}, 'project': {'type': 'string', 'description': 'Project identifier (e.g., SYNAPSE_LAYER).'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier for memory isolation. Defaults to "default".'}, 'importance': {'type': 'number', 'description': 'Accepted for compatibility; not enforced by the API.'}, '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', 'maxLength': 500, 'description': 'Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.'}}}
출력 스키마
{'type': 'object', 'required': ['memory_id', 'status'], 'properties': {'status': {'type': 'string'}, 'memory_id': {'type': 'string'}, 'trust_quotient': {'type': 'number'}}}
search
Search persisted memory across agent scopes using full-text matching. Governance: requires reason (10–200 chars) because results contain plaintext content.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['query', 'reason'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum results to return (1–50, default: 20).'}, 'query': {'type': 'string', 'description': 'Search query — natural language or keywords.'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string', '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).'}, '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."'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier (canonical or alias). Used only when scope="agent" or scope is inferred.'}}}
출력 스키마
{'type': 'object', 'required': ['results', 'count', 'scope'], 'properties': {'count': {'type': 'number'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object'}}}}
slo_report
Return uptime and SLO metrics for the MCP service.
읽기 전용
입력 스키마
{'type': 'object', 'required': ['admin_token'], '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).'}}}
출력 스키마
{'type': 'object', 'required': ['uptime'], 'properties': {'p50': {'type': 'number'}, 'p95': {'type': 'number'}, 'uptime': {'type': 'number'}, 'window': {'type': 'string'}, 'errorRate': {'type': 'number'}}}
store_memory
Store structured memory with metadata and trust scoring.
멱등성
입력 스키마
{'type': 'object', 'required': ['content'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags for categorization.'}, 'content': {'type': 'string', 'description': 'The memory content to store securely.'}, '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.'}, 'agent_id': {'type': 'string', 'description': 'Agent identifier for memory isolation. Defaults to "default".'}, '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', 'maxLength': 500, 'description': 'Auditable reason for forcing intent classification. Max 500 characters. Ignored if force_intent is absent.'}}}
출력 스키마
{'type': 'object', 'required': ['id', 'stored', 'scope'], 'properties': {'id': {'type': 'string'}, 'scope': {'enum': ['agent', 'tenant'], 'type': 'string'}, 'stored': {'type': 'boolean'}}}
추가됨
slo_report
2026년 9월 17일 12:52 PM
추가됨
neural_handover
2026년 9월 17일 12:52 PM
추가됨
memory_feedback
2026년 9월 17일 12:52 PM
추가됨
list_memories
2026년 9월 17일 12:52 PM
추가됨
recall_memory
2026년 9월 17일 12:52 PM
추가됨
store_memory
2026년 9월 17일 12:52 PM
추가됨
save_memory
2026년 9월 17일 12:52 PM
추가됨
initialize_context
2026년 9월 17일 12:52 PM
추가됨
health_check
2026년 9월 17일 12:52 PM
추가됨
search
2026년 9월 17일 12:52 PM
추가됨
process_text
2026년 9월 17일 12:52 PM
추가됨
save_to_synapse
2026년 9월 17일 12:52 PM
추가됨
recall
2026년 9월 17일 12:52 PM