mem MCP server
2026년 11월 3일 커밋AI agent이 세션 전반에 걸쳐 결정 사항, 작업 상태 및 파일을 저장하고 장기적으로 회상할 수 있도록 지원하는 휴대 가능한 셀프 호스팅 메모리 플레인을 제공합니다.
다른 이름 bytefolk/mem
- 스타
- 10
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 3일
- 라이선스
- Apache-2.0
mem MCP란?
mem은(는) MCP server입니다. AI agent이 세션 전반에 걸쳐 결정 사항, 작업 상태 및 파일을 저장하고 장기적으로 회상할 수 있도록 지원하는 휴대 가능한 셀프 호스팅 메모리 플레인을 제공합니다.
프로젝트 README에서 생성된 요약
mem MCP server 정보
mem은 AI agent가 서로 다른 세션 간에 정보를 영구적으로 저장하고 회상할 수 있도록 설계된 셀프 호스팅 메모리 플레인을 제공합니다. 일시적인 채팅 기록에 의존하는 대신, agent는 이 시스템을 사용하여 결정 사항, 작업 상태 및 파일을 저장할 수 있습니다. 이를 통해 사용자는 Claude Code와 같은 도구에서 수행하던 작업을 Codex나 다른 기기로 진행 상황 손실 없이 전달할 수 있습니다.
이 시스템은 MCP adapter, Go CLI, HTTP API 또는 React 기반 웹 애플리케이션을 통해 액세스할 수 있는 중앙 서비스로 작동합니다. 사용자는 일반적으로 Docker Compose를 사용하여 PostgreSQL, Redis, MinIO를 포함한 스택을 배포합니다. MCP 구현체는 파일 정리, 작업 체크포인트 생성, 어휘 또는 벡터 기반 검색 기능을 포함하여 메모리 수명 주기를 관리하기 위한 26개의 특정 도구를 제공합니다. 사용자가 직접 배포를 호스팅하므로 데이터와 권한 경계에 대해 완전한 제어권을 유지할 수 있습니다.
활용 사례
- 1agent 간 작업 전달Claude Code에서 진행 중인 작업을 다른 호스트나 기기로 전달합니다.
- 2중단된 작업 재개전체 대화 기록을 다시 구축하는 대신 안정적인 체크포인트에서 복잡한 작업을 다시 시작합니다.
- 3agent 메모리 수명 주기 관리정책이 변경될 때 오래된 정보를 아카이브하거나 콘텐츠를 명시적으로 삭제합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
구성
MEM_SERVERMEM_TOKEN
| 이름 | 설명 | 유형 |
|---|---|---|
| MEM_SERVER | — | |
| MEM_TOKEN | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능bytefolk/mem is public and reachablegithub.com/bytefolk/mem ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-03github.com/bytefolk/mem ↗통과
- OpenSSF ScorecardOpenSSF Scorecard 7.8 / 10; weakest: CII-Best-Practices 0, Vulnerabilities 0, Signed-Releases 0scorecard.dev/viewer/?uri=github.com/bytefolk/mem ↗통과
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기mem gives agents a durable place to write decisions, evidence, task state, and files, then recall them in a later session or from another agent. You keep the data and choose where it runs. mem does not run the agent or generate its answer.
mem 为 Agent 提供一块由用户掌控的长期记忆空间:保存决定、证据、任务状态和原始文件,并让另一段会话、另一个 Agent 或另一台设备继续使用。数据由你持有,部署位置由你决定;mem 不负责运行 Agent,也不替 Agent 生成答案。
Use it when you need to:
- hand work from Claude Code to Codex, another host, or another machine;
- resume a task from an immutable checkpoint instead of reconstructing chat history;
- recall a decision together with its source and scope;
- keep files and structured memory behind the same authorization boundary;
- export a workspace and restore it into another
memdeployment.
[!WARNING]
memis in active experimental development. Interfaces, storage schemas, and release artifacts can change. Do not use it as the only copy of important data. The current deployment profiles are for private self-hosting, not an Internet-facing multi-tenant service.
How it works
flowchart LR
A["Claude Code / Codex / Cursor / your agent"] -->|MCP| M["mem-mcp"]
C["Scripts and operators"] -->|CLI / HTTP| API["memd"]
U["People"] -->|Web| W["Web app"]
M --> API
W --> API
API --> P[("PostgreSQL + pgvector")]
API --> O[("S3-compatible objects")]
API --> Q["Redis / indexing worker"]
API --> R["Evidence-backed recall"]
The HTTP service owns the canonical behavior. MCP, CLI, and Web call the same API instead of maintaining separate memory models.
A typical agent loop looks like this:
remembera sourced observation, decision, preference, task state, or artifact reference.checkpointwork under a stable task key before switching sessions or agents.contextorresumelater to retrieve bounded, evidence-backed state.- Record feedback, archive stale memory, or explicitly forget content when policy allows it.
Model-independent structured memory and lexical recall work without an LLM or embedding provider. Optional indexing can add embeddings and extraction, but it is not a hidden dependency for remember, lifecycle control, checkpoint, or deterministic resume.
Quickstart
The supported first-run path uses Docker Compose. It starts the Web app, memd, the Worker, PostgreSQL, Redis, and MinIO on one machine.
Requirements: Docker Engine and Docker Compose v2.
git clone https://github.com/bytefolk/mem.git
cd mem/deploy/compose
./generate-env.sh
chmod 600 .env
docker compose --env-file .env -f compose.yaml up -d --build --wait
curl --fail http://127.0.0.1:8080/healthz
Open http://localhost:8080 and register the first user. The default first_user mode accepts one account, then disables registration.
For the CLI, build from source and sign in:
cd ../..
make build-mem
export PATH="$PWD/bin:$PATH"
export MEM_SERVER=http://localhost:8080
mem auth login
mem doctor
Now write and recall model-independent memory:
mem remember "Review auto-renewal before signing" \
--kind decision \
--path /Contracts \
--idempotency-key contract-renewal-v1 \
--agent-id claude-code
mem context "What should I check before signing?" \
--source memory \
--scope /Contracts
The detailed deployment guide covers TLS, secrets, backups, upgrades, production invariants, Helm, and the exact first-user/token flow: docs/DEPLOYMENT.md.
Connect an agent over MCP
mem-mcp is a stdio MCP adapter for the canonical memd API. Build it from the same revision as the server, then configure your host with the resulting executable:
make build-mem-mcp
{
"mcpServers": {
"mem": {
"command": "/absolute/path/to/mem/bin/mem-mcp",
"env": {
"MEM_SERVER": "http://localhost:8080",
"MEM_TOKEN": "mem_..."
}
}
}
}
Claude Code users can register the same executable from the command line:
claude mcp add --scope project --transport stdio \
--env MEM_SERVER=http://localhost:8080 \
--env MEM_TOKEN=mem_... \
mem -- /absolute/path/to/mem/bin/mem-mcp
The ByteFolk npm wrapper is not yet a supported installation path. Its release migration is tracked in issue #153.
The adapter currently exposes 26 tools. The main groups are:
| Need | MCP tools |
|---|---|
| Store and inspect files | mem_put, mem_get, mem_info, mem_list, mem_ls |
| Write and recall memory | mem_remember, mem_search, mem_context, mem_related |
| Resume work | mem_checkpoint, mem_task_list, mem_checkpoint_list, mem_checkpoint_get, mem_resume |
| Control lifecycle | mem_feedback, mem_archive, mem_restore, mem_forget |
| Manage file organization | mem_mkdir, mem_mv, mem_folder_tree |
See docs/mcp.md for every tool, permission requirement, response limit, and host-specific setup.
What ships today
| Capability | Current behavior |
|---|---|
| Structured memory | Idempotent writes for observations, decisions, preferences, task state, facts, notes, and artifact references, with source and producer provenance |
| Recall | Lexical structured-memory recall; file lexical/vector routes where the selected profile and index support them; bounded context packs with evidence and explicit partial-result warnings |
| Task continuity | Versioned immutable checkpoints, handoff payloads, task history, and deterministic resume |
| Files | Upload, download, folders, metadata, annotations, search surfaces, and scoped access |
| Memory lifecycle | Feedback, pin/unpin, archive, restore, and permissioned irreversible redaction after confirmation |
| Portability | Validated workspace export and conflict-safe fresh import |
| Interfaces | HTTP API, Go CLI, 26-tool MCP server, and React Web application over one service contract |
| Deployment | Private single-node Compose and a Helm profile that expects external PostgreSQL, Redis, and S3-compatible storage |
The specification is the source of truth for API semantics. The changelog records what landed in each release.
Trust boundaries
Memory is useful only when callers can tell what it is, where it came from, and who may read it. mem therefore keeps these rules in the core service:
- Tokens are workspace-bound and can restrict scopes and virtual paths.
- Structured memory carries source and producer provenance.
- Writes support idempotency keys; conflicting replay fails instead of silently changing history.
- Recall reports
partialresults and warnings when one source degrades. - Checkpoints are immutable; resuming an older checkpoint does not rewrite the task history.
- Workspace import fails on conflict in the current
freshmode rather than merging or overwriting silently. - Model stages are explicit. A profile does not silently fall back to another provider.
- Production examples keep PostgreSQL, Redis, object storage,
memd, and the Worker on private networks.
Read SECURITY.md before exposing a deployment, and use a private security advisory for vulnerabilities.
What mem is not
- An agent runtime. Your agent still owns planning, tool use, reasoning, and final answers.
- A chat product. The Web app is a file and memory control surface, not an assistant persona.
- A hosted public SaaS you can expose without additional work. Current deployment profiles target private environments.
- A claim that every modality or retrieval route is production-ready. Profiles advertise supported stages, and unsupported routes fail closed.
- A bidirectional sync drive.
mem put --watchis a one-way foreground watcher for new local files.
Current gaps and sequencing are documented in GOAL.md and docs/AGENT_MEMORY_DIRECTION.md. In particular, conservative merge restore, automatic consolidation and correction/supersede relationships, and fully evaluated versioned ranking remain follow-up work.
Choose your surface
| Surface | Best for | Start here |
|---|---|---|
| MCP | Agents that need memory tools inside an existing host | MCP guide |
| CLI | Imports, scripts, checkpoints, workspace transfer, and operations | make build-mem, then mem --help |
| HTTP API | Applications that need the canonical contract directly | SPEC.md |
| Web | Browsing files, reviewing memory, lifecycle controls, and workspace transfer | Compose quickstart |
Deployment options
| Profile | Shape | Intended use |
|---|---|---|
| Single-node Compose | Web, memd, Worker, PostgreSQL, Redis, and MinIO on one Linux host |
Personal, team, edge, and evaluation installations |
| Multi-node Helm | Replicated Web and Worker, one memd, external stateful services |
Private platforms that operate PostgreSQL, Redis, and S3 separately |
| Bare-metal development | Local processes and data under .dev/ |
Contributors changing Go, Python, or Web code |
Use docs/DEPLOYMENT.md for private deployment and docs/RUN_LOCAL.md only for source development.
Repository map
mem/
├── server/ Go HTTP service, CLI, and MCP server
├── worker/ Python extraction and embedding worker
├── web/ React/Vite control surface
├── deploy/ Compose and Helm deployment assets
├── benchmarks/ Offline recall fixtures and gates
├── docs/ Architecture, operations, acceptance, and integration docs
├── GOAL.md Product direction and migration boundary
└── SPEC.md Canonical product and interface contract
Develop and verify
Development requires Go 1.25, Python 3.11+ with uv, Node.js 24, Docker Compose, and the pinned protobuf toolchain when protobuf definitions change.
make bootstrap
make test
make lint
make build
Storage, authorization, migration, memory, handoff, and workspace-transfer changes also require the PostgreSQL integration and process-level acceptance suites. Use docs/TESTING.md for exact commands and disposable-database requirements.
Contributing
This repository uses an issue-first, pull-request-only workflow. A material change needs a ready issue with acceptance criteria before implementation. Every PR must link its tracking record, include a reproducible validation ledger, pass required CI, and receive independent approval before squash merge.
Read the ByteFolk contribution baseline, mem development contract, and governance rules. Report security issues through SECURITY.md, not a public issue.
Project status
mem is experimental and releases under a 0.x version line. The project is tightening its contracts, tests, and distribution paths before making broad compatibility guarantees.
License
Apache License 2.0. The self-hosted application is not a reduced open-source edition.
Copyright © 2026 mem contributors.
mem MCP 질문
mem은 실제로 어떤 역할을 하나요?
agent가 결정 사항, 근거, 작업 상태 및 파일을 기록할 수 있는 영구적인 공간을 제공하여, 이후 세션이나 다른 agent에서도 해당 정보를 다시 불러올 수 있게 합니다.
mem이 AI agent를 실행하나요?
아니요, mem은 agent runtime이 아닙니다. agent를 실행하거나 답변을 생성하지 않는 메모리 레이어입니다.
Claude Code와 함께 사용할 수 있나요?
네, Claude Code 사용자는 mem-mcp 실행 파일을 환경에 추가하여 agent에게 메모리 도구를 제공할 수 있습니다.
mem은 호스팅형 SaaS인가요?
아니요, 프라이빗한 셀프 호스팅을 위해 설계되었으며 인터넷에 공개된 멀티 테넌트 서비스가 아닙니다.