Persistent local plaintext cache of HubSpot CRM data — no encryption, 7-day window, undocumented retention
The package caches every CRM record the LLM accesses to local disk as plaintext JSON, including the full record content (not just IDs or summaries). The cache rolls over after 7 days but the README doesn't disclose this retention behavior or warn that records are stored unencrypted. For organizations with data residency requirements, encryption-at-rest mandates, or audit controls on CRM data, this places that data outside the control plane those policies cover. The cache is a feature — it enables the vector-search context retention the package markets — but the privacy implications aren't surfaced.
Evidence (6 references)
pyproject.toml:7— production dependencies includefaiss-cpu>=1.7.4,numpy>=1.24.0,sentence-transformers>=2.2.2,huggingface-hub==0.14.1. The vector-storage stack is unconditional.src/mcp_server_hubspot/utils.py:25-71(store_in_faiss) — receives a list of CRM data items and stores both the embedding and the full record content in metadata:metadata = {"type": data_type, "data": item}(line 58-61). Thedatafield is the unmodified HubSpot record (contact properties, company details, message bodies, etc.).src/mcp_server_hubspot/faiss_manager.py:15—def __init__(self, storage_dir: str = "/storage", max_days: int = 7, embedding_dimension: int = 384)— the rolling window is hardcoded at 7 days.src/mcp_server_hubspot/faiss_manager.py:208-214— vector index serialized toindex_YYYY-MM-DD.faiss, metadata serialized as plain JSON tometadata_YYYY-MM-DD.json. Plaintext at rest, no encryption.src/mcp_server_hubspot/core/storage.py:46-50(ThreadStorage.save_cache) — separate plaintext JSON cache for conversation threads atstorage/conversation_threads.json. Conversation message bodies, including customer support exchanges, written verbatim.README.md:47— claim: "Data persists between sessions in configurable storage directory." No mention of: what data, what format (plaintext JSON), what retention period (7 days), or encryption posture (none).