memocean-mcp
Provides tools for searching and managing knowledge stored in Obsidian vaults, including full-text search, BM25/INSTR hybrid search, and file ingestion into Obsidian.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@memocean-mcpsearch my notes about machine learning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
memocean-mcp — Local-first AI Memory MCP Server

A local MCP server for AI agents to search and manage knowledge stored in Obsidian vaults. Built for CJK (Chinese/Japanese/Korean) developers — 94.4% Hit@5 on Chinese queries with zero AI components required.
Core features:
BM25/INSTR hybrid search — CJK-optimized, pure SQLite, no embeddings needed
CLSC sonar compression — 92.5% token reduction (13x compression) on Obsidian notes
Temporal knowledge graph — entity-relationship store with non-destructive invalidation
Cross-agent memory sharing — multiple agents share one
memory.dbFATQ task queue — File-Atomic Task Queue for agent coordination
Quick Start
pip install memocean-mcpAdd to Claude Desktop / Claude Code .mcp.json:
{
"mcpServers": {
"memocean": {
"command": "memocean-mcp",
"env": {
"MEMOCEAN_VAULT_ROOT": "/path/to/your/obsidian/vault"
}
}
}
}Or register with Claude Code CLI:
MEMOCEAN_VAULT_ROOT=/path/to/vault claude mcp add memocean memocean-mcpRelated MCP server: obsidian-hybrid-search
Environment Variables
Variable | Default | Description |
|
| Root of your Obsidian vault |
|
| Data directory (databases, task queue) |
|
| Ocean subdirectory for full-text search |
|
| Skills markdown directory |
|
| Enable GBrain hybrid search delegate |
|
| Enable BGE-m3 KNN vector search |
| unset | Enable Haiku query expansion (requires |
| unset | Enable Haiku LLM reranker |
| unset | Required only for AI-assisted features above |
Backward-compat: CHANNELLAB_BOTS_ROOT → MEMOCEAN_DATA_DIR, CHANNELLAB_OCEAN_VAULT_ROOT → MEMOCEAN_VAULT_ROOT.
Available Tools
Tool | Description |
| Unified search across Radar (sonar index) + message history. Default entry point. |
| Search CLSC sonar index — fast keyword search, ~13% of verbatim token cost. |
| Retrieve full content by slug (verbatim or sonar mode). |
| Full-text search over Ocean vault |
| BM25 search over cross-agent message history. |
| Query the temporal knowledge graph by entity name. |
| List or retrieve approved skills from the skill library. |
| Create a task in the FATQ pending queue (agent coordination). |
| Ingest local file (PDF/DOCX/PPTX/XLSX/HTML/CSV/JSON) into Radar via MarkItDown. |
| Store a verbatim markdown report into Ocean vault Reports folder. |
File-ingest dependency note
memocean_ingest_file depends on the PDF, DOCX, and PPTX extras from
MarkItDown. They are pinned in pyproject.toml; install the project dependencies
(for example, pip install .) rather than installing bare markitdown, which
omits the PDF and DOCX converters.
Production deployment and drift guard
This host intentionally uses a normal package install, not an editable install.
Changing memocean_mcp/ in this repository therefore does not change the
code imported from user site-packages. This separation prevents an uncommitted
worktree from silently becoming production behaviour.
After a reviewed memocean-mcp change is merged, an authorized production runner must use the single operator-facing deployment entry:
MEMOCEAN_PIP_BREAK_SYSTEM_PACKAGES=1 \
/home/oldrabbit/.claude-bots/shared/bin/memocean-deploy.shThe deploy command refuses dirty package sources, performs a non-editable,
idempotent reinstall, runs the canonical content drift gate, and atomically
records the deployed repository commit in
logs/memocean-mcp-deployment.json. The deployment is successful only when
the final check reports OK. ops/deploy.sh remains the package-local
implementation used by the canonical entry and isolated fixture; it is not the
operator runbook entry.
Debian marks its base interpreter as externally managed (PEP 668), so pip also
requires the explicit MEMOCEAN_PIP_BREAK_SYSTEM_PACKAGES=1 opt-in shown above.
The script applies pip's --break-system-packages only to the existing --user
install path; target-directory installs do not receive it. This does not write
into Debian's system package directory, but a user-site package can still
shadow a distro package for this account. Use this opt-in only on the reviewed
production host and interpreter. A dedicated virtual environment would avoid
that override, but adopting one also requires moving the service runtime and is
therefore a separate migration.
After review, install or refresh the recurring drift check with:
bash ops/install-drift-cron.shThe installer creates one marked cron entry. The guard runs daily at 04:15
Asia/Taipei and appends a timestamped trigger=cron result to
/home/oldrabbit/.claude-bots/logs/memocean-mcp-drift.log. Immediately after
installation, run the check once with MEMOCEAN_DRIFT_TRIGGER=cron to verify
the cron-path output format, then retain the crontab entry and a fresh
scheduler-produced trigger=cron log line after the next scheduled run as
activation evidence. The manual run and crontab entry alone do not prove that
the scheduler is alive.
ops/check-deploy-drift.sh is a compatibility shim for the already deployed
daily cron; it delegates to shared/bin/memocean-drift-check.sh, the same
canonical gate used by deploy and the FATQ live probe. When drift exists, the
guard also uses the existing mm_post path to notify
Anya's Mattermost channel. An unchanged drift signature is sent once across
consecutive daily runs; a changed signature is sent again, and a clean run
resets the deduplication state. Notification failure is printed explicitly and
never changes the drift result from exit 1. Host activation evidence must
include an injected-drift message that was actually received, not only script
configuration or a log line.
The drift guard compares only .py source files. It deliberately ignores
__pycache__, .pyc, build metadata, and generated bytecode. A missing, extra,
or changed .py file is listed and makes the command exit nonzero.
Search Architecture
Two-path retrieval, zero AI dependency by default:
CJK query → SQLite INSTR on radar.clsc → ranked by match_count
EN query → FTS5 BM25 → fallback to INSTR on missBenchmark (pure BM25/INSTR, no AI):
Dataset | Language | Hit@5 |
Internal corpus | Chinese (mixed) | 94.4% |
DRCD | Traditional Chinese | 91.9% |
CMRC | Simplified Chinese | 93.3% |
BEIR SciFact | English | 70.7% |
CLSC Sonar Compression
CLSC (Closet Lossy Summary for Chinese) extracts each document into a compact single-line sonar entry. Format:
[SLUG|ENTITIES|topics|"key_quote"|WEIGHT|EMOTIONS|FLAGS]Compression ratio: 1,716,211 raw tokens → 129,529 sonar tokens = 13x (92.5% reduction).
Requirements
Python 3.11+
SQLite 3.35+
Optional:
markitdown[all]for file ingestionOptional:
anthropicpackage for AI-assisted features (query expansion, reranking)
License
MIT — see LICENSE.
Acknowledgements
Built on MemPalace (dual-layer architecture, AAAK skeleton format) and inspired by GBrain (Compiled Truth + Dream Cycle design).
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 Servers
- AlicenseAqualityBmaintenanceMCP server that exposes a local Obsidian vault as persistent, searchable memory for AI agents, with hybrid retrieval, reranker, and PDF support.3480930MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that indexes Obsidian notes and enables hybrid search (full-text, fuzzy, semantic) for AI assistants to find and read notes.68098MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read and search your Obsidian vault through a local MCP server, keeping everything private and local.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA personal memory MCP server for Obsidian/markdown vaults that provides hybrid retrieval (semantic, keyword, tag, time-aware co-occurrence) and is shared across multiple AI clients.234MIT
Related MCP Connectors
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Cloud-hosted MCP server for durable AI memory
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/ChannelLabAI/memocean'
If you have feedback or need assistance with the MCP directory API, please join our Discord server