MCP, MCP server
atlas
Open-source local-first cognitive memory — alpha. Implements AGM-compliant belief revision on a property graph.
Compatibility: Not stated.
Grade D
Two or more Medium findings, or a High. Only try it in a sandbox.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
INSTALL_REMOTE_SCRIPT
Why this grade
- INSTALL_REMOTE_SCRIPT High
Fetches a script from the network and runs it (a pipe to a shell, or an install hook with a URL).
laptop-setup/install.sh, line 351
curl -fsSL https://raw.githubusercontent.com/mediar-ai/screenpipe/main/install.sh | bash 2>&1 | tee -a "$LOG_FILE" || true
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
If you think this grade is wrong, email [email protected] with the entry link and your evidence. We aim to acknowledge within two working days and decide within seven. If we confirm an error, we aim to correct it within 24 hours of confirming it. These are aims, not guarantees.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
atlas_core/cli.py, line 212
completed = subprocess.run([str(script), *args.demo_args]) # noqa: S603
atlas_core/api/auth.py, line 19
subprocess.run(
benchmarks/business_mem_bench/adapters/atlas_system.py, line 70
shutil.rmtree(self._data_dir, ignore_errors=True)
Show more
benchmarks/business_mem_bench/adapters/atlas_system.py, line 533
shutil.rmtree(self._data_dir, ignore_errors=True)
integrations/hermes-atlas/atlas/cognitive_client.py, line 55
self._process: subprocess.Popen[Any] | None = None
integrations/hermes-atlas/atlas/cognitive_client.py, line 245
self._process = subprocess.Popen(command, **options)
scripts/doctor.py, line 80
out = subprocess.run(
scripts/doctor.py, line 98
out = subprocess.run(
scripts/doctor.py, line 214
out = subprocess.run(
scripts/qa_site.py, line 91
out = subprocess.run(
scripts/run_bmb.py, line 58
shutil.rmtree(args.corpus)
Install and update
Serious
install fetches a script from the network.
INSTALL_REMOTE_SCRIPT
laptop-setup/install.sh, line 351
curl -fsSL https://raw.githubusercontent.com/mediar-ai/screenpipe/main/install.sh | bash 2>&1 | tee -a "$LOG_FILE" || true
Network
Concern
can reach a host that is not written as a fixed address. can reach raw.githubusercontent.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
demo.sh, line 79
if curl -sf http://localhost:7474 >/dev/null 2>&1; then
demo.sh, line 85
curl -sf http://localhost:7474 >/dev/null 2>&1 && break
demo.sh, line 88
if curl -sf http://localhost:7474 >/dev/null 2>&1; then
Show more
atlas_core/cli.py, line 5
Cypher query, or a curl call, even though the underlying functions were all
atlas_core/api/http_server.py, line 4
web dashboard, programmatic curl access, integration tests).
atlas_core/retrieval/vault_search.py, line 76
response = httpx.post(
atlas_core/retrieval/vault_search.py, line 113
response = httpx.get(
integrations/cognitive-service/clients/node-client.mjs, line 42
const response = await fetch(`${baseUrl.replace(/\/$/, "")}${spec.path}`, {
integrations/cognitive-service/clients/python_client.py, line 65
with urllib.request.urlopen(request, timeout=step.get("timeout_seconds", 10)) as response:
integrations/hermes-atlas/atlas/cognitive_client.py, line 327
with urllib.request.urlopen(request, timeout=self.timeout_seconds) as response:
integrations/openclaw-atlas/src/cognitive-client.ts, line 170
response = await fetch(`${this.baseUrl}${path}`, {
laptop-setup/install.sh, line 156
if curl -sf http://localhost:7474 >/dev/null 2>&1; then
laptop-setup/install.sh, line 321
if curl -sf http://127.0.0.1:8384 >/dev/null 2>&1; then
laptop-setup/install.sh, line 458
if curl -sf http://127.0.0.1:8384 >/dev/null 2>&1; then
scripts/demo_loop.py, line 98
print(f" {DIM}curl http://localhost:7474 # should return 200{RESET}")
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
atlas_core/graphiti.py, line 31
api_key = os.environ.get("ANTHROPIC_API_KEY")
atlas_core/adapters/claude_code.py, line 67
password = os.environ.get("ATLAS_NEO4J_PASSWORD", "atlasdev")
atlas_core/api/api_app.py, line 43
os.environ.get("NEO4J_PASSWORD", "atlasdev"),
Show more
atlas_core/api/auth.py, line 55
configured = os.environ.get("ATLAS_HTTP_TOKEN")
atlas_core/ingestion/extractors/llm_base.py, line 94
# .env file work for both CLI entrypoints and direct Python API use.
atlas_core/ingestion/extractors/llm_base.py, line 98
api_key = os.environ.get("ANTHROPIC_API_KEY")
atlas_core/lineage/extractor.py, line 87
api_key = os.environ.get("ANTHROPIC_API_KEY")
atlas_core/resolution/llm_fallback.py, line 135
api_key = os.environ.get("ANTHROPIC_API_KEY")
atlas_core/working/auto_summarizer.py, line 69
api_key = os.environ.get("ANTHROPIC_API_KEY")
scripts/doctor.py, line 187
env_path = _REPO_ROOT / ".env"
scripts/doctor.py, line 192
".env not present (only needed for live ingestion with API keys)",
scripts/doctor.py, line 247
(".env file (optional)", check_env_file),
.env.example, line 2
# Copy to .env and fill in the secrets that aren't already in 1Password.
.gitignore, line 29
.atlas-laptop-setup.state
.gitignore, line 30
.env
docs/LAUNCH_BACKLOG.md, line 47
Bolt port, APOC version, `~/.atlas` writability, `.env`
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 229df544944f. can delete files. install fetches a script from the network. can reach a host that is not written as a fixed address. can reach raw.githubusercontent.com. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 229df544944ffb1dadf4d155bcb41334e850da0c
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.