MemPalace/mempalace · error · ValueError
TLS requires both --tls-cert and --tls-key (or the matching
Error message
TLS requires both --tls-cert and --tls-key (or the matching env vars)
What it means
Error "TLS requires both --tls-cert and --tls-key (or the matching env vars)" thrown in MemPalace/mempalace.
Source
Thrown at mempalace/mcp_server.py:6822
# bind is loopback (skip the network-exposure warning) and to pin the Host
# header against DNS rebinding when serving on loopback.
_HTTP_LOOPBACK_HOSTS = ("127.0.0.1", "localhost", "::1", "[::1]")
_HTTP_ALLOW_INSECURE_NO_TOKEN_ENV = "MEMPALACE_MCP_HTTP_ALLOW_INSECURE_NO_TOKEN"
def _resolve_tls_paths() -> tuple:
"""Resolve the TLS cert/key from --tls-cert/--tls-key or env, or (None, None).
Flags take precedence over ``MEMPALACE_MCP_TLS_CERT`` / ``MEMPALACE_MCP_TLS_KEY``.
Both must be given together; one without the other is a configuration error
(raised here, before any bind, so it fails loudly at startup).
"""
cert = (
getattr(_args, "tls_cert", None) or os.environ.get("MEMPALACE_MCP_TLS_CERT", "")
).strip()
key = (getattr(_args, "tls_key", None) or os.environ.get("MEMPALACE_MCP_TLS_KEY", "")).strip()
if bool(cert) != bool(key):
raise ValueError("TLS requires both --tls-cert and --tls-key (or the matching env vars)")
if not cert:
return None, None
for label, path in (("--tls-cert", cert), ("--tls-key", key)):
if not os.path.isfile(path):
raise ValueError(f"{label} file not found: {path!r}")
return cert, key
def _wrap_tls(sock, cert: str, key: str):
"""Wrap a server socket in a TLS 1.2+ context. Raises on bad cert/key."""
import ssl
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ctx.minimum_version = ssl.TLSVersion.TLSv1_2
ctx.load_cert_chain(certfile=cert, keyfile=key)
return ctx.wrap_socket(sock, server_side=True)
View on GitHub (pinned to 06cb6987f0)
Solutions
- Provide both --tls-cert and --tls-key (or set both matching env vars)
When it happens
Trigger: Thrown at mempalace/mcp_server.py:6822 when the library encounters an invalid state.
Common situations: Only one of the TLS certificate/key pair was configured.
Understand the failure class
- SSL/TLS and certificate errors — how TLS handshakes and certificate validation fail.
AI-assisted analysis of MemPalace/mempalace@06cb6987f0 (2026-08-15).
Data as JSON: /api/errors/dc2eae8861a95a1f.
Report an issue: GitHub.