Atlas / MCP servers / visterion / HiveMem

HiveMemSAFE

mcp/visterion/hivemem

Personal knowledge system — MCP server with PostgreSQL semantic search and temporal knowledge graph

Verdict
SAFE
Grade
B
Trust score
86 /100
Exposed tools
1 1r · 0w · 0d
Transport
—
License
NOASSERTION
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Your second brain — and it stays yours. Forever. Local. A sovereign personal knowledge system. The conversations, decisions, documents, and half-formed thoughts you produce across Claude, ChatGPT, Gemini, Copilot — and the files you accumulate in real life — all come home to one place that outlives any vendor and obeys only you.

Why HiveMem exists

When you think hard today, you often think with an LLM in the loop. School, work, authorities, court cases, taxes, family, health, relationships — these conversations contain your most private thinking. More intimate than any diary.

And then they evaporate:

  • Your subscription lapses or you switch providers → history gone
  • The provider retires a model or rewrites their ToS → answers no longer reproducible
  • An account ban, a provider going under, a country blocking the service → everything lost
  • The data sits on a vendor's servers, fed into training, served on subpoena, exposed in the next breach

HiveMem is built around the opposite stance:

  1. Sovereignty — Your data lives in your instance. Postgres + SeaweedFS,

on hardware you control. No vendor sees the contents unless you explicitly route a single LLM call through them.

  1. Persistence — Everything is append-only with valid_from/valid_until.

No subscription change can revoke access. No retention policy you didn't author can delete what's yours.

  1. Portability — A HiveMem instance packs into one encrypted archive

(Postgres dump + binary store + config) and restores anywhere. Vendor lock-in: zero.

  1. Aggregation — What you write in Claude.ai, ChatGPT, Gemini, Claude

Code, Copilot lands in HiveMem too. Those tools become front-ends; HiveMem holds the truth.

  1. Privacy by realm — Strict separation per life area

(legal, medical, `private

Read from source at commit d268cc6cd08eOBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add hivemem --env EMBEDDING_MAX_TOKENS=${EMBEDDING_MAX_TOKENS} --env TOKENIZER_FILE=${TOKENIZER_FILE} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "hivemem": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "EMBEDDING_MAX_TOKENS": "${EMBEDDING_MAX_TOKENS}",
        "TOKENIZER_FILE": "${TOKENIZER_FILE}"
      }
    }
  }
}
03

Exposed tools (1)

1 read · 0 write · 0 destructive.

ToolRiskDescription
HiveMemreadLocal-first knowledge graph — your second brain
04

Trust audit

SAFEgrade B · trust 86/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (8 observation(s))
Network
declared (4 observation(s))
Shell
declared (1 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (16)

MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
embedding-service/backend.py:22
_impl = importlib.import_module(_BACKENDS[select_backend(os.environ)])
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
knowledge-ui/src/components/graph/ForceGraphRoot.tsx:8
import type { GraphLink, GraphNode } from '../../graph/types'
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
knowledge-ui/src/components/graph/ForceGraphRoot.tsx:9
import { neighborIds, shouldShowLabel, idOf } from '../../graph/clusterForce'
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
knowledge-ui/src/components/readers/attachmentTabs.ts:1
import type { Attachment } from '../../api/types'
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
knowledge-ui/tests/unit/appAuthError.spec.ts:7
import App from '../../src/App.vue'
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
knowledge-ui/tests/unit/appAuthError.spec.ts:8
import { i18n } from '../../src/i18n'
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
cli/internal/auth/loopback_test.go:19
if !strings.HasPrefix(uri, "http://127.0.0.1:") {
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
java-server/src/test/java/com/hivemem/oauth/RedirectUriValidatorTest.java:17
assertTrue(RedirectUriValidator.isAcceptable("http://127.0.0.1:54321/callback"));
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
java-server/src/test/java/com/hivemem/oauth/RedirectUriValidatorTest.java:24
assertFalse(RedirectUriValidator.isAcceptable("http://192.168.1.1/callback"));
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
java-server/src/test/resources/fixtures/README.md:23
curl -sS -X POST http://127.0.0.1:8090/llm/complete \
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
knowledge-ui/package.json
@codemirror/commands, @codemirror/lang-markdown, @codemirror/state, @codemirror/view, @mdi/font, @tresjs/cientos, @tresjs/core, @vscode/markdown-it-katex
Why it matters. 49 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
documentation/architecture.md:514
| `POST /vistierie/tools/find_isolated_cells` | `hivemem.queen.webhook-token` | Returns cells that have no outbound tunnels |
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
documentation/architecture.md:515
| `POST /vistierie/tools/read_cell` | `hivemem.queen.webhook-token` | Returns full cell detail for a given cell ID |
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
documentation/architecture.md:516
| `POST /vistierie/tools/search_similar_cells` | `hivemem.queen.webhook-token` | Returns cells semantically related to the given cell across all realms (excluding the cell itself) |
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
documentation/architecture.md:517
| `POST /vistierie/runs/done` | `hivemem.queen.completion-webhook-token` | Receives the Queen's aggregated output and writes each proposal as a `pending` tunnel |
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
documentation/architecture.md:607
| `contradiction-webhook-token` | `HIVEMEM_QUEEN_CONTRADICTION_WEBHOOK_TOKEN` | `""` | Bearer token HiveMem expects Vistierie to present on both `POST /vistierie/contradiction/done` and `POST /vistier
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha d268cc6cd08efull audit observations/trust-audit/mcp-server/visterion__hivemem.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11d268cc6cd08eSAFEB86first audit
06

Questions

What is the HiveMem MCP server?

Personal knowledge system — MCP server with PostgreSQL semantic search and temporal knowledge graph

What tools does HiveMem expose?

1 in total: 1 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is HiveMem safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (86/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does HiveMem need?

It reads EMBEDDING_MAX_TOKENS and TOKENIZER_FILE from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How current is this page?

The grade is for one exact copy of the source (d268cc6cd08e), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement