github Python analyzed a117f92

jfr992/rekall-mcp

github

Persistent memory for AI assistants via MCP — semantic recall, knowledge graph, and a cockpit UI

maintainer
jfr992
license
Apache-2.0
first seen
2026-07-19
last seen
2026-07-19
releases · 30d
4
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in jfr992/rekall-mcp
capabilities 29 tools
transport stdio · streamable-http · http counts 29 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • agent_startup
  • backfill_lifecycle
  • close_loop
  • consolidate_memories
  • get_cached_context
  • get_hierarchical_context
  • get_telemetry_summary
  • handoff_summary
  • list_available_tools
  • memory_detail
  • memory_doctor
  • memory_kb
  • memory_lifecycle
  • memory_pressure
  • memory_pressure_snapshot
  • memory_stats
  • observe
  • proactive_context_summary
  • project_capsule
  • prune_plan
  • publish_memory
  • publish_team_memory
  • rebuild_knowledge_graph
  • recall_across_projects
  • recall_memories
  • reflex_recall
  • resume_packet
  • save_memory
  • skill_context
skills & danger signals github-tarball
code evidence vv1.12.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 435

filesystem 29

  • fs jfr992-rekall-mcp-a117f92/src/config.py :29 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/core/ownership.py :15 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/core/sparse_encoder.py :20 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/core/utils.py :8 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/crawler/pipeline.py :7 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/crawler/spider.py :45 with open(path) as f:
  • fs jfr992-rekall-mcp-a117f92/src/indexer/cli.py :10 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/cache_context.py :31 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/cleanup.py :26 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/cli.py :14 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/compact.py :33 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/demo_seed.py :14 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/doctor.py :5 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/events.py :10 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/insights.py :13 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/knowledge_graph.py :15 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/manager.py :33 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/migrate.py :38 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/migrate_hybrid.py :17 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/publish.py :14 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/reindex.py :12 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/reinforce.py :21 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/resparse.py :13 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/review_state.py :18 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/scope.py :14 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/sync.py :28 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/memory/trust.py :13 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/server.py :27 from pathlib import Path
  • fs jfr992-rekall-mcp-a117f92/src/tools/config.py :7 from pathlib import Path

shell / exec 2

  • shell jfr992-rekall-mcp-a117f92/src/memory/cli.py :7 import subprocess
  • shell jfr992-rekall-mcp-a117f92/src/memory/scope.py :11 import subprocess

network 6

  • net jfr992-rekall-mcp-a117f92/src/core/embeddings.py :206 import httpx
  • net jfr992-rekall-mcp-a117f92/src/core/ownership.py :18 import httpx
  • net jfr992-rekall-mcp-a117f92/src/core/utils.py :9 from urllib.parse import urlparse
  • net jfr992-rekall-mcp-a117f92/src/crawler/spider.py :10 from urllib.parse import urlparse
  • net jfr992-rekall-mcp-a117f92/src/memory/cli.py :10 import urllib.error
  • net jfr992-rekall-mcp-a117f92/src/memory/publish.py :323 import httpx

secrets 7

  • secrets jfr992-rekall-mcp-a117f92/src/config.py :205 if api_key := os.environ.get("QDRANT_API_KEY"):
  • secrets jfr992-rekall-mcp-a117f92/src/core/browser_guard.py :44 token = os.getenv("REKALL_API_TOKEN")
  • secrets jfr992-rekall-mcp-a117f92/src/core/embeddings.py :251 self.api_key = api_key or os.environ.get("GEMINI_API_KEY")
  • secrets jfr992-rekall-mcp-a117f92/src/indexer/qdrant.py :56 self.api_key = api_key or os.environ.get("QDRANT_API_KEY")
  • secrets jfr992-rekall-mcp-a117f92/src/memory/linker.py :232 if not os.getenv("ANTHROPIC_API_KEY"):
  • secrets jfr992-rekall-mcp-a117f92/src/memory/publish.py :346 token = os.getenv("ANTHROPIC_AUTH_TOKEN") or os.getenv("ANTHROPIC_API_KEY")
  • secrets jfr992-rekall-mcp-a117f92/src/server.py :122 token = os.getenv("REKALL_API_TOKEN")

tool registrations 29

  • list_available_tools jfr992-rekall-mcp-a117f92/src/server.py :188
  • get_telemetry_summary jfr992-rekall-mcp-a117f92/src/server.py :217
  • observe jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :488
  • recall_memories jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :540
  • close_loop jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :591
  • recall_across_projects jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :627
  • save_memory jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :658
  • get_cached_context jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :692
  • get_hierarchical_context jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :714
  • skill_context jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :740
  • memory_stats jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :759
  • consolidate_memories jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :779
  • proactive_context_summary jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :798
  • resume_packet jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :811
  • memory_lifecycle jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :820
  • memory_doctor jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :839
  • handoff_summary jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :852
  • memory_pressure jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :861
  • agent_startup jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :873
  • project_capsule jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :883
  • publish_team_memory jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :892
  • reflex_recall jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :905
  • prune_plan jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :925
  • rebuild_knowledge_graph jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :947
  • backfill_lifecycle jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :961
  • memory_pressure_snapshot jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :976
  • memory_kb jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :993
  • memory_detail jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :1020
  • publish_memory jfr992-rekall-mcp-a117f92/src/tools/builtin/memory.py :1033

declared dependencies 20

  • mcp@>=1.0.0
  • httpx@>=0.27.0
  • pydantic@>=2.0.0
  • pydantic-settings@>=2.0.0
  • qdrant-client@>=1.12,<1.18
  • fastembed@>=0.8,<0.9
  • networkx@>=3.0.0
  • click@>=8.0.0
  • pyyaml@>=6.0.0
  • sentence-transformers@>=3.0.0
  • ollama@>=0.1.0
  • google-generativeai@>=0.3.0
  • pytest@>=8.0.0
  • pytest-asyncio@>=0.23.0
  • pytest-cov@>=4.0.0
  • pytest-benchmark@>=4.0.0
  • ruff@>=0.4.0
  • mypy@>=1.10.0
  • pre-commit@>=3.7.0
  • tiktoken@>=0.7