Memory MCP Server
Memory MCP Server
AI 에이전트에 영구 메모리를 제공하는 Model Context Protocol (MCP) 서버입니다. 메모리는 로컬 SQLite 데이터베이스(자동 생성, 구성 불필요)에 저장되며, 도구 우선 아키텍처를 따르는 40개의 도구를 통해 노출됩니다. template-mcp-server 프로덕션 스캐폴드(FastMCP + FastAPI, 구조화된 로깅, 컨테이너, OpenShift 매니페스트, CI)를 기반으로 구축되었습니다.
기능
4개 도메인에 걸친 40개 MCP 도구: 메모리, 작업, 시간(리마인더/알림), 대시보드
7가지 메모리 도구: store, get, search, list, update, delete, projects
7가지 할 일 도구: create/search/list/get/update/complete/delete, 우선순위 및 기한 지원
8가지 칸반 도구: 구성 가능한 열이 있는 보드; card add/move/update/delete
7가지 트래커 도구: 항목이 진행 지표로 집계되는 상태 트래커
SQLite 영속성 — aiosqlite 기반, 단일 파일, 튜닝된 WAL 기준, 자동 생성
전문(full-text) 키워드 검색 — FTS5 인덱스에 대한 단어 단위, porter-stemmed 매칭, 관련성 순위(가장 일치하는 항목 우선)
태그 및 메타데이터 — 메모리와 할 일에 적용
FastMCP + FastAPI — 다중 전송 지원(HTTP, SSE, streamable-HTTP)
Pydantic 구성 — 환경 변수 기반
구조화된 JSON 로깅 — structlog 사용
OAuth 통합 (기본적으로 비활성화;
docs/authentication.md참조)컨테이너 지원 (Red Hat UBI 기본 이미지) 및 OpenShift 매니페스트 포함
검색 및 저장 동작
검색(memory_search, todo_search)은 porter-stemmed 전문(full-text) 인덱스에서 단어 단위 토큰을 매칭합니다. 부분 단어는 절대 일치하지 않으며(check로 검색해도 checklist는 일치하지 않음), 구두점과 연산자는 문자 그대로 처리되며, 결과는 bm25 관련성 순으로 정렬됩니다 — 가장 일치하는 항목이 먼저, 동률이면 최신 항목이 먼저입니다. unicode61 토큰화는 CJK 문장 전체를 단일 토큰으로 처리하므로, 단어 단위 매칭은 공백으로 구분된 스크립트를 가정합니다.
데이터베이스는 WAL 모드에서 synchronous=NORMAL로 실행됩니다. 최근 커밋된 트랜잭션은 OS 충돌이나 정전 시 손실될 수 있습니다(메모/작업용으로 허용되는 절충안 — 기록 시스템으로는 적합하지 않음). 정상 상태의 WAL 크기는 wal_autocheckpoint(약 1000페이지 ≈ 4MiB)로 제한됩니다. journal_size_limit(8MiB)은 체크포인트가 WAL 파일을 해제한 후에만 SQLite가 WAL 파일을 다시 잘라낼 수 있게 합니다. 유지보수(PRAGMA optimize + wal_checkpoint(TRUNCATE) 패스)는 리마인더 폴링 루프에서 10틱마다 인라인으로 실행되며 틱을 잠시 지연시킬 수 있습니다. 이는 후크별 타임아웃과 데이터베이스 busy 타임아웃에 의해 제한됩니다.
빠른 시작
git clone https://github.com/redhat-data-and-ai/memory-mcp-server
cd memory-mcp-server
make install # creates venv, installs deps + pre-commit hooks
make local # starts server on localhost:5001다른 터미널에서 확인:
curl http://localhost:5001/health수동 설정(Make 없이):
# Create venv and install
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pre-commit install
# Configure and run
cp .env.example .env
memory-mcp-server
# Verify
curl http://localhost:5001/health도구
메모리
도구 | 용도 |
| 새 메모리를 저장하고 해당 id를 반환합니다 |
| id로 메모리 하나를 가져옵니다 |
| 콘텐츠에 대한 단어 단위 키워드 검색, 관련성 순으로 정렬 |
| 최신순으로 메모리 목록을 탐색합니다 |
| 메모리를 부분 업데이트합니다 |
| id로 메모리를 삭제합니다 |
할 일
도구 | 용도 |
| 구조화된 작업을 추가합니다 |
| 제목/설명에 대한 단어 단위 키워드 검색, 관련성 순으로 정렬 |
| 필터를 적용해 할 일 목록을 탐색합니다 |
| 개별 할 일을 관리합니다 |
칸반
도구 | 용도 |
| 새 보드 생성; 기본값은 backlog/todo/in_progress/done |
| 보드 목록을 나열하거나 삭제합니다 |
| 열별로 그룹화된 전체 보드 상태 |
| 작업을 배치하고 순서를 변경합니다 |
| 카드를 편집하거나 삭제합니다 |
리마인더 및 알림
도구 | 용도 |
| 향후 알림을 예약합니다 (없음/매시간/매일/매주 반복) |
| 일정을 확인하거나 편집합니다 |
| 마감이 임박한 순서대로 |
| 일정을 관리합니다 |
| 발생한 알림을 검토하고 지웁니다 |
백그라운드 스케줄러가 만료된 리마인더를 서버 측에서 알림으로 변환합니다. 세션 시작 시 alert_list(acknowledged=false)로 조회하세요.
대시보드
도구 | 용도 |
| 도메인 전반의 개수, 미확인 알림, 다음 예정 항목 |
트래커
도구 | 용도 |
| 트래커를 관리합니다 |
| 항목을 추적합니다 (not_started/in_progress/blocked/done) |
| 진행률: 전체/완료/백분율 및 상태별 개수 |
모든 도구는 {status: "success" | "error", ...} 사전을 반환하며 도구 경계를 넘어 예외를 발생시키지 않습니다.
구성
변수 | 기본값 | 설명 |
|
| SQLite 데이터베이스 파일 (자동 생성, 상위 디렉터리 포함) |
|
| 만료된 리마인더를 발생시키는 백그라운드 스케줄러 간격 |
|
| 서버 바인드 주소 |
|
| 서버 포트 (1024-65535) |
|
| 전송 프로토콜 ( |
|
| HTTPS용 SSL 키/인증서 |
|
| OAuth 인증 ( |
|
| 로깅 수준 |
* ENABLE_AUTH는 .env.example에서 기본값이 False입니다. 항상 .env.example을 .env로 복사하여 인증을 비활성화한 상태로 시작하세요.
MCP 클라이언트 연결
MCP 클라이언트를 서버 엔드포인트로 지정하세요:
{
"mcpServers": {
"memory": {
"url": "http://localhost:5001/mcp"
}
}
}메모리를 저장하고 검색하는 작동 클라이언트는 examples/fastmcp_client.py를 참조하세요.
개발
make lint # ruff + mypy
make test # pytest with coverage
make pre-commit # run all pre-commit hooks문서
가이드 | 설명 |
시스템 다이어그램, 코드 구조, 핵심 구성 요소 | |
설정, 로컬 실행, 테스트, 코드 품질 | |
Podman, OpenShift, 컨테이너 구성 | |
OAuth 설정, 인증 모드, 문제 해결 |
라이선스
Apache 2.0 — redhat-data-and-ai/template-mcp-server에서 파생되었습니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent memory for AI agents. Search, store, and recall across sessions.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Universal memory for AI agents and tools. Save, organize and search context anywhere.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bsahane/memory-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server