Doramagic Project Pack · Human Manual
memobase
User Profile-Based Long-Term Memory for AI Chatbot Applications.
Memobase Overview and System Architecture
Related topics: Backend Server: FastAPI, Controllers, and Data Models, Client SDKs: Python, TypeScript, and Go, MCP Server, Deployment, and Customization
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Backend Server: FastAPI, Controllers, and Data Models, Client SDKs: Python, TypeScript, and Go, MCP Server, Deployment, and Customization
Memobase Overview and System Architecture
1. Project Purpose and Design Goals
Memobase is a user profile-based memory system that brings long-term user memory to LLM applications such as virtual companions, educational tools, and personalized assistants. The system enables an AI to remember, understand, and evolve with its users by maintaining a structured user profile and a per-user event timeline (Source: readme.md:39-44).
The project is intentionally optimized against three competing metrics that are typically hard to satisfy together:
- Performance — Memobase achieves top-tier retrieval in the LOCOMO benchmark even though it is not built primarily as a RAG/search engine.
- LLM Cost — A built-in per-user buffer batches incoming chats so the per-message overhead is amortized. Workflows and prompts are hand-tuned to avoid "agent" loops. As of
0.0.40, a single flush now performs a fixed three LLM calls (down from 3–10), reducing token cost by ~40–50%. - Latency — Because a user profile and an event timeline are always precomputed, the online read path is a handful of SQL operations that complete in under 100 ms.
Source: readme.md:44-58, readme.md:23-25
2. High-Level System Architecture
Memobase is delivered as a FastAPI backend with versioned endpoints under /api/v1, an auxiliary MCP server that exposes the same memory features to AI agents, and a Python SDK consumed by client applications (Source: src/server/api/readme.md:3-9, src/mcp/README.md:24-32).
graph TD
Client[Client App / AI Agent] --> SDK[Memobase Python SDK]
Client --> MCP[MCP Server]
SDK --> API[FastAPI /api/v1]
MCP --> API
API --> Auth[Auth Middleware]
API --> Ctrls[Controllers]
Ctrls --> UserCtrl[user]
Ctrls --> BlobCtrl[blob]
Ctrls --> BufferCtrl[buffer]
Ctrls --> ProfileCtrl[profile]
Ctrls --> ModalCtrl[modal / chat]
UserCtrl --> DB[(PostgreSQL)]
BlobCtrl --> DB
BufferCtrl --> DB
ProfileCtrl --> DB
ProfileCtrl --> Cache[(Redis)]
ModalCtrl --> LLM[LLM Service]
LLM --> Prompts[Prompt Templates]The control plane routes every request through FastAPI middleware for authentication, then dispatches to one of the five controller groups. Persisted state lives in PostgreSQL while ephemeral state and caches are served by Redis. Memory-formation work is delegated to a "modal" layer that calls the LLM service using versioned prompt templates (Source: src/server/api/DEVELOPMENT.md:9-26).
3. Core Components and Data Model
The backend code is organized under memobase_server/ and is split into three layers (Source: src/server/api/DEVELOPMENT.md:28-47):
| Layer | Module | Responsibility |
|---|---|---|
| API | api.py | FastAPI routes, auth middleware, /api/v1 versioning |
| Controllers | user, blob, buffer, profile, modal | Business logic for each domain |
| Models | database.py, blob.py, response.py, utils.py | SQLAlchemy ORM, blob schema, Promise pattern |
| Connectors | connectors.py | PostgreSQL/Redis pools, health checks |
| LLM | llms | Model provider adapters, prompt loading |
The persisted data model is intentionally compact: User, GeneralBlob, BufferZone, and UserProfile. GeneralBlob is polymorphic and can carry any of the supported content kinds listed in the table below (Source: src/server/api/readme.md:11-30).
| Blob Type | Intended Use |
|---|---|
| Chat | Conversations between the user and an assistant |
| Document | Long-form text ingested for memory extraction |
| Image | Visual content associated with a user |
| Code | Snippets saved by developers building agents |
| Transcript | Audio/video transcripts of user interactions |
The modal layer wraps the LLM calls that turn blobs into structured profiles. As of __version__ = "0.0.42", the modal chat pipeline consists of three LLM invocations: profile extraction, sub-topic organization, and YOLO-style profile merging (Source: src/server/api/memobase_server/__init__.py:1, src/server/api/memobase_server/controllers/modal/chat/merge_yolo.py:1-35).
4. Memory Processing Workflow
The end-to-end flow is designed to keep online reads cheap while pushing all heavy work to a batched background flush:
- Insert — A client pushes messages into the user's
BufferZonevia theblobandbuffercontrollers. No LLM is invoked yet. - Flush (modal processing) — On a trigger, the modal layer runs the three-stage LLM pipeline:
- Extract —
extract_profile.pyemitsTOPIC{tab}SUB_TOPIC{tab}MEMOrows from raw text, guided by topic guidelines and few-shot examples. - Organize —
organize_profile.pyre-clusters memos under no more thanmax_subtopicssub-topics per topic. - Merge (YOLO) —
merge_profile_yolo.py/merge_yolo.pydecide for each existing memo whether toUPDATE,APPEND, orABORT, preserving any[mentioned on ...]time annotations.
- Store — The resulting structured rows are written into
UserProfileand the latest events into the user timeline. - Read — A
context(max_token_size=…, prefer_topics=[…])call renders a prompt-ready string in milliseconds, optionally filtering by topic or runningpick_related_profiles.pyto select only relevant memos for a given conversation.
Sources: src/server/api/memobase_server/prompts/extract_profile.py:3-58, src/server/api/memobase_server/prompts/organize_profile.py:30-72, src/server/api/memobase_server/prompts/merge_profile_yolo.py:1-26, src/server/api/memobase_server/prompts/pick_related_profiles.py:60-88
The same features are exposed to MCP-compatible agents through three tools — save_memory, get_user_profiles, and search_memories — so a tool-using LLM can persist and recall context against a Memobase backend in the same way a developer would via the SDK (Source: src/mcp/README.md:38-43).
See Also
Sources: src/server/api/memobase_server/prompts/extract_profile.py:3-58, src/server/api/memobase_server/prompts/organize_profile.py:30-72, src/server/api/memobase_server/prompts/merge_profile_yolo.py:1-26, src/server/api/memobase_server/prompts/pick_related_profiles.py:60-88
Backend Server: FastAPI, Controllers, and Data Models
Related topics: Memobase Overview and System Architecture, Client SDKs: Python, TypeScript, and Go, MCP Server, Deployment, and Customization
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Memobase Overview and System Architecture, Client SDKs: Python, TypeScript, and Go, MCP Server, Deployment, and Customization
Backend Server: FastAPI, Controllers, and Data Models
1. Purpose and High-Level Role
The Memobase backend is a FastAPI server that provides persistent user-memory services for LLM applications. According to src/server/api/readme.md, it exposes versioned endpoints under /api/v1 and centralizes four concerns: user identity, raw data blobs, a transient processing buffer, and the extracted user profile that downstream clients retrieve to enrich conversations.
The server is structured into four cooperating layers:
- API layer — FastAPI route handlers that parse requests and return
BaseResponseobjects. - Controllers — Business logic that orchestrates database, Redis, and LLM operations.
- Models — SQLAlchemy ORM entities and Pydantic-style response/dataclass types.
- Connectors — Connection pools for PostgreSQL and Redis, plus LLM/embedding clients.
Source: src/server/api/readme.md, src/server/api/DEVELOPMENT.md
2. Request Lifecycle and Middleware
Every incoming HTTP request flows through global_wrapper_middleware before reaching a route handler. The middleware (src/server/api/memobase_server/api_layer/middleware.py) performs several cross-cutting tasks:
- Generates or reads the
X-Request-IDheader and binds it tostructlogcontext. - Resolves
project_idfrom the bearer token viaparse_project_idandcheck_project_secretfromauth/token.py. - Records a per-project counter and latency histogram through
telemetry_manager. - Maps the matched path against
PATH_MAPPINGSto decide which business counters to increment. - Catches unhandled exceptions and returns a
JSONResponsewith the frameworkCODEenum.
Health and admin endpoints live alongside business routes in chore.py (src/server/api/memobase_server/api_layer/chore.py). healthcheck() verifies PostgreSQL via db_health_check, Redis via redis_health_check, embedding sanity via check_embedding_sanity, and LLM reachability via llm_sanity_check. root_running_status_check() is restricted to the DEFAULT_PROJECT_ID and rejects other callers with HTTP 405.
sequenceDiagram
participant Client
participant Middleware
participant API Route
participant Controller
participant DB/Redis/LLM
Client->>Middleware: HTTP request + bearer token
Middleware->>Middleware: parse_project_id, structlog bind, telemetry
Middleware->>API Route: Forward with request.state.memobase_project_id
API Route->>Controller: controllers.user/blob/buffer/profile
Controller->>DB/Redis/LLM: CRUD + LLM calls
Controller-->>API Route: Promise[result]
API Route-->>Middleware: BaseResponse / IdResponse / typed payload
Middleware-->>Client: JSON + X-Request-ID3. API Layer: Route Handlers
Route handlers are thin adapters that read project_id from request.state, call into controllers.full, and convert the resulting Promise to a typed response via .to_response(...). The user routes (src/server/api/memobase_server/api_layer/user.py) cover the full CRUD lifecycle:
| Endpoint group | Representative operations | Source |
|---|---|---|
/users | create_user, get_user, update_user, delete_user | api_layer/user.py |
/blobs | insert_blob, get_blob, list_blob_ids, delete_blob | api_layer/blob.py |
/users/buffer | flush_buffer, buffer_status for batched processing | api_layer/buffer.py |
/users/profile | Read / patch / overwrite user profile entries | api_layer/profile.py |
/users/context | Build a prompt-ready context block for an LLM | api_layer/context.py |
/users/event | Append and list timeline events | api_layer/roleplay.py |
The roleplay surface (src/server/api/memobase_server/api_layer/roleplay.py) extends profile reads with parameters such as prefer_topics, only_topics, max_subtopic_size, and a topic_limits_json override that are forwarded to proactive_topics inside controllers.modal.roleplay. The Go SDK mirrors these surfaces through User.Delete, User.Flush, and User.GetAll (src/client/memobase-go/core/user.go).
4. Controllers and LLM-Driven Modal Logic
Controllers in memobase_server/controllers/ host the business rules. The modal sub-package coordinates LLM work: controllers/modal/chat/merge_yolo.py merges incoming memos into existing profile slots by issuing a low-temperature llm_complete call with the merge_yolo prompt and then dispatching per-memo actions returned by the model. The prompt module (prompts/extract_profile.py, prompts/pick_related_profiles.py, and the Chinese variant prompts/zh_summary_entry_chats.py) supplies the extraction, selection, and summarization templates consumed by the chat modal. Source: src/server/api/memobase_server/controllers/modal/chat/merge_yolo.py, src/server/api/memobase_server/prompts/extract_profile.py
5. Data Models and Persistence
The persistence layer uses SQLAlchemy ORM with four core entities described in src/server/api/readme.md:
User— Core identity and metadata; mutated throughcreate_user,update_user,delete_userin api_layer/user.py.GeneralBlob— Polymorphic storage forchat,document,image,code, andtranscriptblob types, typed viaBlobType(api_layer/user.py).BufferZone— Per-user staging area where newly inserted blobs wait to be flushed into profiles by the LLM pipeline.UserProfile— Topic / sub-topic / memo triples that are produced by modal chat processing and exposed throughusers/profileandusers/context.
Response shaping is centralized in models/response.py (BaseResponse, IdResponse, UserDataResponse) and the Promise monad in models/utils.py so that controllers can return either success data or a CODE error without throwing across async boundaries.
6. Common Failure Modes
When integrating against this backend, watch for the following:
- Missing bearer token — Middleware leaves
request.state.memobase_project_idunset; handlers that depend on it will raiseAttributeError. - Health-check failures —
healthcheckreturns HTTP 500 withDatabase not availableorRedis not availableif the corresponding connector fails (chore.py). - LLM extraction gaps —
merge_yolologsNo Corresponding Merge Actionwarnings and skips memos when the model omits an action id; callers should expect occasional missing profile updates rather than a transactional guarantee. - Non-default project status —
root_running_status_checkrejects all projects other thanDEFAULT_PROJECT_ID, so admin probes must use the bootstrap credentials.
See Also
- Backend Architecture & Data Flow
- LLM Prompts and Modal Processing
- Authentication, Telemetry, and Middleware
- MCP Server Integration
Source: https://github.com/memodb-io/memobase / Human Manual
Client SDKs: Python, TypeScript, and Go
Related topics: Memobase Overview and System Architecture, Backend Server: FastAPI, Controllers, and Data Models, MCP Server, Deployment, and Customization
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Memobase Overview and System Architecture, Backend Server: FastAPI, Controllers, and Data Models, MCP Server, Deployment, and Customization
Client SDKs: Python, TypeScript, and Go
Overview and Scope
Memobase exposes a unified HTTP API for long-term user memory and ships official client SDKs that wrap the REST endpoints in idiomatic language bindings. The repository organizes these SDKs under src/client/memobase/ (Python) and src/client/memobase-go/ (Go); both target the same backend hosted by memobase_server Source: src/client/memobase/core/async_entry.py. The Python package offers a synchronous entry point (core/entry.py) and an asynchronous counterpart (core/async_entry.py) for asyncio-based applications, while the Go package provides a User-centric API in core/user.go. The author of the Python package states explicit design rules in core/__init__.py, including "Flat is better than nested", "Secretly handling errors for users is arrogant", and "Any single type should be fully functional on its own" Source: src/client/memobase/core/__init__.py — guiding the SDK toward transparent wrappers rather than opinionated abstractions.
Python SDK
Package Layout
The Python package at src/client/memobase/ is split into focused modules:
core/entry.py— synchronous high-level client.core/async_entry.py— asynchronous high-level client.core/user.py— per-user object representing a single Memobase user.core/blob.py— typed models for the various blob payloads (chat, summary, doc, code, image, transcript).network.py— shared HTTP transport, response unpacking, and error helpers.
Context Assembly
The most prominent API is User.context(...). It accepts a rich set of options for shaping the memory string that gets injected into a prompt Source: src/client/memobase/core/async_entry.py:
| Parameter | Type | Purpose |
|---|---|---|
max_token_size | int | Budget for the rendered context. |
prefer_topics | list[str] | Bias retrieval toward these profile topics. |
only_topics | list[str] | Restrict retrieval to these topics only. |
max_subtopic_size | int | Cap on memos per sub-topic. |
topic_limits | dict[str, int] | Per-topic memo caps, serialized as JSON. |
chats | list[OpenAICompatibleMessage] | Current conversation, used for relevance scoring. |
need_json | bool | Return structured JSON instead of a formatted string. |
These options are encoded into query parameters against /users/profile/{user_id}; the response is unpacked into UserProfile objects and (optionally) re-rendered as JSON. The readme.md quickstart demonstrates the typical call Source: readme.md:
print(u.context(max_token_size=500, prefer_topics=["basic_info"]))
On the server side, the same call triggers parallel retrieval of profile data and event gists, bounded by a profile_event_ratio and a max_profile_token_size Source: src/server/api/memobase_server/controllers/context.py.
Profile Updates and Errors
User.update_profile(profile_id, content, topic, sub_topic) issues PUT /users/profile/... to overwrite a single memo Source: src/client/memobase/core/async_entry.py. The client intentionally surfaces server errors rather than swallowing them, consistent with the "no silent error handling" guideline.
Blob Models
core/blob.py defines a tagged union of blob types using Literal discriminators Source: src/client/memobase/core/blob.py: ChatBlob (OpenAI-style messages), DocBlob (free-form text), SummaryBlob, CodeBlob (with optional language), ImageBlob (URL or base64), and TranscriptBlob (list of TranscriptStamp). A BlobData envelope carries the type, the underlying payload, optional fields, and timestamps, and to_blob() rehydrates the appropriate subclass — except for ImageBlob and TranscriptBlob, which currently raise NotImplementedError. The same schema is mirrored on the server in src/server/api/memobase_server/models/blob.py, ensuring a round-trippable contract Source: src/server/api/memobase_server/models/blob.py.
Go SDK
The Go client (src/client/memobase-go/core/user.go) exposes a User type bound to a project-scoped HTTP client. Three representative methods illustrate the pattern Source: src/client/memobase-go/core/user.go:
GetAll(blobType, page, pageSize) ([]string, error)— paginates/users/{id}/blobs/{blobType}and returns blob IDs. Response shapes are validated with explicit type assertions on the unpacked JSON, returning descriptive errors when the server deviates from the expected schema.Delete(blobID) error— issuesDELETE /blobs/{user_id}/{blob_id}.Flush(blobType BlobType, sync bool) error— triggers buffer flushing for a user, with a synchronous flag that lets callers ensure profile extraction completes before continuing.
The Go client follows the same "transparent error" philosophy: it returns errors directly and delegates decoding to network.UnpackResponse for a consistent envelope.
Common Architectural Flow
sequenceDiagram
participant App as Application
participant SDK as Client SDK
participant API as Memobase Server
participant LLM as LLM Provider
App->>SDK: u.context(max_token_size, prefer_topics, chats)
SDK->>API: GET /users/profile/{user_id}?...
API->>LLM: pick_related_profiles / summary prompts
LLM-->>API: ranked memos + event gists
API-->>SDK: profiles + events JSON
SDK-->>App: rendered context string or UserProfile list
App->>App: inject into LLM system promptTypeScript SDK Status
The retrieved source fragments do not include a TypeScript SDK under src/client/. The top-level readme.md links to "Memobase-Playground" and "Memobase-Inspector" as application examples rather than client libraries Source: readme.md. Until TS sources are added, applications targeting JavaScript runtimes should either call the HTTP API directly or wrap the Python SDK.
MCP Integration
src/mcp/README.md documents a Model Context Protocol server built on top of the Memobase Python SDK. It exposes three tools — save_memory, get_user_profiles, and search_memories — and demonstrates the canonical integration path: the SDK does the network work, the MCP server translates each tool into SDK calls, and any MCP-compatible client can drive it Source: src/mcp/README.md.
Common Failure Modes
- NotImplementedError on image / transcript blobs —
BlobData.to_blob()does not yet supportImageBloborTranscriptBlob; the server-side models insrc/server/api/memobase_server/models/blob.pycarry the same limitation Source: src/client/memobase/core/blob.py. - Invalid
chatspayloads — the async client validates each chat againstOpenAICompatibleMessageand raisesValueErrorwith the underlyingValidationErrorif it fails Source: src/client/memobase/core/async_entry.py. - Profile / event ratio misconfiguration — the server asserts
0 < profile_event_ratio <= 1; passing an out-of-range value raisesAssertionErrorSource: src/server/api/memobase_server/controllers/context.py.
See Also
- Server context assembly and
profile_event_ratio - Prompt system: topic / sub-topic configuration
- Profile extraction and
merge_yolocontroller - Event gisting and tagging pipeline
- Memobase MCP server (
src/mcp/)
Source: https://github.com/memodb-io/memobase / Human Manual
MCP Server, Deployment, and Customization
Related topics: Memobase Overview and System Architecture, Backend Server: FastAPI, Controllers, and Data Models, Client SDKs: Python, TypeScript, and Go
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Memobase Overview and System Architecture, Backend Server: FastAPI, Controllers, and Data Models, Client SDKs: Python, TypeScript, and Go
MCP Server, Deployment, and Customization
1. Purpose and Scope
The Memobase MCP Server is a template implementation of the Model Context Protocol (MCP) that connects AI agents to Memobase's long-term, persistent memory. It is forked from coleam00/mcp-mem0 and acts as a practical reference for engineers who want to expose Memobase storage, retrieval, and semantic search behind an MCP-compatible interface. Source: src/mcp/README.md.
The server itself does not host the memory backend. To function, it requires a reachable Memobase backend with a project URL and a project token. The two supported backends are:
- A self-hosted local instance exposed at
http://localhost:8019with the default tokensecret. Source: src/mcp/README.md. - Memobase Cloud, reachable at
https://api.memobase.devwith ask-proj-…token obtained from the cloud console. Source: src/mcp/README.md.
The wider Memobase project is described as a *user memory system for LLM applications that maintains persistent user context and memory*; the MCP server is the thin agent-facing adapter that lets any MCP client tap into that system. Source: src/server/api/DEVELOPMENT.md.
2. Exposed Tools and Runtime Architecture
The server exposes three essential memory-management tools to MCP clients. Source: src/mcp/README.md.
| Tool | Purpose |
|---|---|
save_memory | Store arbitrary information in long-term memory with semantic indexing. |
get_user_profiles | Retrieve the complete user profile set for a given user. |
search_memories | Find relevant context for a given query via semantic search. |
The server implements the best practices described by Anthropic for MCP servers, so it is compatible with any MCP-aware client (Cursor, Windsurf, Claude Desktop, n8n, or custom Python clients). Source: src/mcp/README.md.
Internally, the broader Memobase backend that the MCP server calls into follows a layered architecture: a FastAPI entry point routes requests through controllers (User, Blob, Buffer, Profile, Modal) backed by PostgreSQL, Redis, and an LLM service. The MCP server is the lightweight client-side layer that surfaces only the user-relevant operations to the agent. Source: src/server/api/DEVELOPMENT.md.
graph LR
A[MCP Client<br/>Cursor / Claude / n8n] -- MCP/JSON-RPC --> B[Memobase MCP Server]
B -- save / get / search --> C[Memobase Backend<br/>FastAPI + Postgres + Redis]
C -- LLM calls --> D[LLM Provider]
B -. context string .-> A3. Deployment Options
3.1 Local install with `uv` (Python 3.11+)
The recommended path for development is uv. The flow is: install uv, clone the repository, cd memobase/src/mcp, run uv pip install -e . to install in editable mode, then copy .env.example to .env and fill in the project URL and token. Source: src/mcp/README.md.
3.2 Docker (recommended for production-like use)
A Docker image can be built and run on port 8050 (the default MCP SSE port). The MCP server then runs as a long-lived SSE endpoint that any MCP client can connect to. Source: src/mcp/README.md.
3.3 Client wiring
The server can be reached in two transport modes:
- SSE transport (HTTP-based, used by Cursor and Windsurf). For Windsurf, the configuration key is
serverUrlinstead ofurl. For n8n, the host must behost.docker.internalbecause n8n reaches outside its own container. Source: src/mcp/README.md. - Stdio transport, used by Claude Desktop and other local clients. The configuration points at the Python executable inside the project's
.venv. Source: src/mcp/README.md.
3.4 Required environment variables
The .env file must contain the project URL and the project token that identify which Memobase backend the MCP server should talk to. Without them, the three tools will fail at request time. Source: src/mcp/README.md.
4. Customization
The MCP server is deliberately a *template*. The README describes four extension points. Source: src/mcp/README.md:
- Add new tools by defining methods with the
@mcp.tool()decorator on themcpinstance. - Add a custom lifespan function to inject additional dependencies (database connections, custom clients, telemetry, etc.) into each request.
- Add helper functions in
utils.pyto keep tool bodies small and readable. - Add prompts and resources using the
@mcp.prompt()and@mcp.resource()decorators.
4.1 Customizing user-profile schemas
The memory model is not hard-coded. The server-side prompt module profile_init_utils.py exposes two configuration knobs sourced from CONFIG:
overwrite_user_profiles— when set, *replaces* the default topic/sub-topic schema with the supplied list. Source: src/server/api/memobase_server/prompts/profile_init_utils.py.additional_user_profiles— when set, *extends* the default schema with extra topics. Source: src/server/api/memobase_server/prompts/profile_init_utils.py.
These two modes map to the example configurations shipped with the repository:
example_config/profile_for_assistant/config.yaml— a productivity-oriented schema with topics such astask_management(withpriorities,task_categories,deadline_buffer,recurring_tasks,task_format) andproductivity_settings(withfocus_mode,notification_prefs,automation_rules,report_frequency,tracking_metrics,tool_integrations). Source: src/server/api/example_config/profile_for_assistant/config.yaml.example_config/profile_for_companion/config.yaml— a companion-oriented schema includingpersonalization(withhumor_pref,response_len,tech_depth,learn_style) and a session-tracking topic that recordsconvo_count,favorite_topics,active_projects,saved_convos, andfeedback_hist. Source: src/server/api/example_config/profile_for_companion/config.yaml.
The extraction prompt is parameterized over the supplied schema: it asks the LLM to "consider using the same topic/subtopic if it's mentioned in the conversation again" and to fall back to creating new topics only when necessary, which keeps memories stable across runs. Source: src/server/api/memobase_server/prompts/extract_profile.py.
5. Common Failure Modes
- Missing or wrong
MEMOBASE_PROJECT_URL/ token — the three MCP tools will return auth or connection errors because the server cannot reach the backend. Source: src/mcp/README.md. - Wrong port in client config — the default is 8050; clients such as Cursor, Windsurf, and n8n must match the port the server was actually launched on. Source: src/mcp/README.md.
localhostinside n8n — n8n cannot reach the host's loopback; usehost.docker.internalinstead. Source: src/mcp/README.md.- Conflicting Windsurf config key — Windsurf expects
serverUrl; usingurlwill silently fail. Source: src/mcp/README.md. - Schema drift — if
overwrite_user_profilesis changed, previously stored profile entries under removed topics will be ignored by extraction until they are re-ingested. Source: src/server/api/memobase_server/prompts/profile_init_utils.py.
See Also
- Memobase-Playground — full-stack reference chatbot that demonstrates end-to-end memory usage.
- Memobase-Inspector — web UI for inspecting users, profiles, and test prompts.
- Profile customization docs — official guide for designing the profile schema.
get_contextAPI reference — the backend call that produces the context string the MCP server eventually returns to the agent.
Source: https://github.com/memodb-io/memobase / Human Manual
Doramagic Pitfall Log
Source-linked risks stay visible on the manual page so the preview does not read like a recommendation.
May increase setup, validation, or first-run risk for the user.
May increase setup, validation, or first-run risk for the user.
May increase setup, validation, or first-run risk for the user.
May increase setup, validation, or first-run risk for the user.
Doramagic Pitfall Log
Found 12 structured pitfall item(s), including 1 high/blocking item(s). Top priority: Installation risk - Installation risk requires verification.
1. Installation risk: Installation risk requires verification
- Severity: high
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/155
2. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/158
3. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/76
4. Configuration risk: Configuration risk requires verification
- Severity: medium
- Finding: Project evidence flags a configuration risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/159
5. Capability evidence risk: Capability evidence risk requires verification
- Severity: medium
- Finding: README/documentation is current enough for a first validation pass.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: capability.assumptions | https://github.com/memodb-io/memobase
6. Runtime risk: Runtime risk requires verification
- Severity: medium
- Finding: Project evidence flags a runtime risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/137
7. Maintenance risk: Maintenance risk requires verification
- Severity: medium
- Finding: Project evidence flags a maintenance risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: evidence.maintainer_signals | https://github.com/memodb-io/memobase
8. Security or permission risk: Security or permission risk requires verification
- Severity: medium
- Finding: no_demo
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: downstream_validation.risk_items | https://github.com/memodb-io/memobase
9. Security or permission risk: Security or permission risk requires verification
- Severity: medium
- Finding: no_demo
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: risks.scoring_risks | https://github.com/memodb-io/memobase
10. Security or permission risk: Security or permission risk requires verification
- Severity: medium
- Finding: Project evidence flags a security or permission risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/memodb-io/memobase/issues/153
11. Maintenance risk: Maintenance risk requires verification
- Severity: low
- Finding: issue_or_pr_quality=unknown。
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: evidence.maintainer_signals | https://github.com/memodb-io/memobase
12. Maintenance risk: Maintenance risk requires verification
- Severity: low
- Finding: release_recency=unknown。
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: evidence.maintainer_signals | https://github.com/memodb-io/memobase
Source: Doramagic discovery, validation, and Project Pack records
Community Discussion Evidence
These external discussion links are review inputs, not standalone proof that the project is production-ready.
Count of project-level external discussion links exposed on this manual page.
Open the linked issues or discussions before treating the pack as ready for your environment.
Community Discussion Evidence
Doramagic exposes project-level community discussion separately from official documentation. Review these links before using memobase with real data or production workflows.
- Your AI needs an identity — here's how to fix that - github / github_issue
- Community source 2 - github / github_issue
- Community source 3 - github / github_issue
- “add_user” and “update_user” handle additional data differently - github / github_issue
- When will RESTful API access be supported? - github / github_issue
- How to use it in Java? - github / github_issue
- Error in get_embedding: Failed to embed texts: 404 page not found Traceb - github / github_issue
- i need java sdk - github / github_issue
- Community source 9 - github / github_issue
- Capability evidence risk requires verification - GitHub / issue
- Runtime risk requires verification - GitHub / issue
Source: Project Pack community evidence and pitfall evidence