Memex
Memex
ローカルファースト、プライバシーファーストのLLM向けパーソナルコンテキストエンジン。
TypeScript · Swift · MCP · OpenAPI 3.1.0 · Cloudflare Tunnel
ほとんどのAIアシスタントはあなたのことを何も知りません。新しい会話は毎回ゼロから始まります——あなたが何を読んでいるか、どんなリンクを保存したか、どんなメモを書いたか、どんなファイルをダウンロードしたかを知らないのです。
Memexはそれを解決します。MemexはMac上で動作するバックグラウンドデーモンで、あなたのデジタルアクティビティを受動的にインデックス化してローカルデータベースに保存します。そのデータベースは、標準インターフェースを通じてあらゆるLLM——デスクトップのClaude、スマートフォンのChatGPT——が利用できるようになります。クラウドストレージは不要。サードパーティのサーバーも不要。すべてはあなたのマシン上に留まります。
収集するもの
スクリーンショット — AppleのVisionフレームワーク(Swift)を使ってローカルでOCR処理
クリップボード — 継続的に監視。YouTubeのURLは自動でトランスクリプトを取得し、Twitterのリンクは投稿内容をスクレイピング
ダウンロード — PDF、マークダウンファイル、CSVを到着時に解析してインデックス化
Apple Notes — AppleScript経由で定期的に同期
ブラウザ履歴 — Safari、Chrome、Arc、Brave、Edgeの閲覧履歴(全プロファイル)、30分ごとに同期。検索・認証・localhostのノイズは除外
スマートフォンからのリンク — AndroidからHTTP Shortcuts経由でローカルAPIにPOSTして直接共有
シークレットがボールトに入ることは決してありません。 パスワードマネージャー(1Password、Bitwarden、KeePass、…)からのコピーは、アプリ検出とorg.nspasteboard.ConcealedTypeマーカーによってスキップされ、シークレットの形をしたコンテンツ——AWSキー、GitHub/Slack/Stripeトークン、JWT、秘密鍵ブロック、PASSWORD=代入、生成パスワードの形をした文字列——は保存前にフィルタリングされます。
クリップボードのノイズは自己洗浄式です。完全に重複するものは統合され、生のクリップボードエントリは30日で期限切れになります(OMNICONTEXT_CLIPBOARD_MAX_AGE_DAYS / OMNICONTEXT_CLIPBOARD_MAX_COUNTで設定可能)。リッチなアセット——メモ、ダウンロード、スクリーンショット、履歴——は削除されることはありません。
Related MCP server: memory-mcp
仕組み
[Screenshots / Clipboard / Notes / Downloads]
↓
Memex Daemon (Node.js)
↓
SQLite + FTS5 (db.sqlite)
↙ ↘
MCP Server HTTP Server :4322
(stdio) (Bearer auth)
↓ ↓
Claude Desktop Cloudflare Tunnel
↓
ChatGPT Mobile /
Android Share SheetデータベースはSQLite(Node組み込みのnode:sqliteを使用——ネイティブ依存関係なし)で、FTS5全文検索インデックスを備えています。検索はコンテンツ、タイトル、要約、ソースURLに対するBM25ランキングで、経過時間とドキュメントタイプの乗算ブーストを適用します——埋め込みなし、API呼び出しなし、完全にオフライン。WALモードにより、デーモンとMCPプロセスからの同時アクセスが安全になります。旧バージョンのdb.jsonは初回起動時に自動的に移行されます。
2つのインターフェースがデータベースを同時に提供します:
ローカルMCPサーバー(stdioトランスポート)— Claude DesktopおよびCursorなどのMCP対応エディタ用
HTTPサーバー — 無料のCloudflareトンネル経由で公開。ChatGPT Custom Actionsとモバイルからの取り込み用
セットアップ
要件: macOS(キャプチャはmacOSネイティブ: Vision OCR、AppleScript、launchd)およびNode.js ≥ 22.5(Memexは組み込みのnode:sqliteを使用。古いNodeでは明確なメッセージを表示して終了します)。
git clone https://github.com/arnavbee/memex
cd memex
npm install && npm run build
# Configure your API key
cp .env.example .env
# Edit .env and set OMNICONTEXT_API_KEY (only needed for the HTTP API/tunnel)
# Start the daemon once (foreground)
npm start
# ...or install it as a launchd agent: starts at login, restarts on crash
npm run install-daemon # logs land in ~/.omnicontext/daemon.log
npm run uninstall-daemon # stop + remove (database untouched)
# Expose to mobile (optional)
cloudflared tunnel --url localhost:4322権限(システム設定 → プライバシーとセキュリティ): nodeバイナリにフルディスクアクセスを許可してSafari履歴を読み取り、オートメーション → メモを許可してApple Notesを同期します。Chromium系ブラウザ(Chrome、Brave、Arc、Edge)はこれらなしで動作します。
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.jsonに追加して、Claude Desktopを再起動します:
{
"mcpServers": {
"memex": {
"command": "node",
"args": ["/path/to/memex/dist/mcp-standalone.js"]
}
}
}
index.jsではなくmcp-standalone.jsを使用してください——Claude Desktopはクエリインターフェースのみが必要です。index.jsは完全なキャプチャデーモンで、2回実行するとクリップボードを二重にキャプチャし、ポート4322を巡って競合します。同じ設定がCursorやあらゆるMCPクライアントでも機能します。
ChatGPT Custom Actions — リポジトリからopenapi.jsonをGPTのアクションスキーマにインポートし、サーバーURLをCloudflareトンネルに向け、Authorization: Bearer <あなたのOMNICONTEXT_API_KEY>を設定します。
Android共有シート — HTTP Shortcutsで、同じベアラーヘッダーと共有テキストをボディとしてhttps://<your-tunnel>/ingestへのPOSTを作成し、共有メニューに追加します。スマートフォンから共有したものはすべてボールトに保存されます。
使い方
覚えるべきコマンドはありません。デーモンが起動したら、あとは普通のデジタルライフを送るだけです——リンクをコピーし、スクリーンショットを撮り、PDFをダウンロードする——そして後でAIに平易な言葉で尋ねるだけです:
「先週読んだ注意に関するあの記事は何でしたか?」
「Python面接についてダウンロードしたPDFを探して」
「今朝コピーしたものは何?」
「あのKarpathyの動画はファインチューニングについて扱っていましたか?」(YouTubeリンクはトランスクリプトを自動インデックス化)
「私の住所が入ったクリップボードエントリを削除して」
ClaudeはMCP経由でこれらのツールを発見し、自ら呼び出します:search_vault、get_recent_assets、get_asset_by_id、delete_asset、sync_browser_history、sync_notes_now、sync_recent_files。ボールトを価値あるものにする唯一の習慣:後で必要になりそうなものを見たら、コピーする——それがファイルシステムのすべてです。
動作確認:npm testでテストスイートを実行。tail -f ~/.omnicontext/daemon.logでキャプチャの様子をリアルタイム表示。そして何かをコピーした直後にClaudeに*「今コピーしたものは何?」*と尋ねるのがエンドツーエンドの確認方法です。
解決に苦労した点
ChatGPTの1MBツール結果制限。 PDF全文を返すとResponseTooLargeErrorでアクションがクラッシュしました。サーバー側で返すコンテンツをすべて2,000文字に切り詰めることで修正しました。
Claude DesktopのMCP接続が起動時に切断される問題。 HTTPサーバーがMCPトランスポートの準備完了前に初期化されていたことが原因でした。起動順序を調整し、リトライログを追加することで修正しました。
スクレイピングをブロックする動的ページ。 cosmos.so、Instagram、ログイン必須のポータル——@mozilla/readabilityでは何も抽出できません。静かに失敗する代わりに、タイムスタンプとソースURL付きのURLスタブを書き込むことで、LLMがリンクが保存されたことを確認できるようにしました。
Androidにはユニバーサルクリップボードがない。 iCloudのクリップボード同期はAppleデバイスでのみ機能します。スマートフォンからの共有をHTTP Shortcuts → Cloudflareトンネル → ローカル取り込みAPI経由でルーティングすることで解決しました。
特定の設計を選んだ理由
フラットJSONではなくSQLite — v1は原子的にスワップされるdb.jsonを使用していましたが、2つのプロセス(デーモン + MCPサーバー)が読み取り-変更-書き込みで競合し、検索のたびにファイル全体を再解析する必要がありました。Node組み込みのnode:sqliteにはFTS5とWALが含まれているため、修正に依存関係を追加する必要はありませんでした。旧db.jsonファイルは自動的に移行されます。
埋め込みではなくBM25 — 埋め込みにはローカルGPUかAPIラウンドトリップが必要です。どちらもオフラインファーストの制約を破ります。FTS5のBM25はミリ秒単位で動作し、クエリが具体的になりがちなパーソナルコンテキスト検索に適しています。
ngrokではなくCloudflare Tunnel — サインアップ不要、アカウント不要、帯域幅制限なし、URLはセッション中持続します。無料のngrokは再起動時にURLが変わり、接続をスロットリングします。
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
- AlicenseAqualityDmaintenanceA universal, local-first MCP hub that indexes personal files (documents, code, etc.) and provides private semantic search via hybrid dense+BM25 retrieval, enabling agents like Claude Desktop to query your data without sending it to the cloud.176MIT
- AlicenseAqualityDmaintenanceA local-first MCP server that exposes personal notes and files as unified semantic context for AI agents via vector search and file monitoring.6MIT
- AlicenseNot gradedqualityDmaintenanceLocal-first MCP server that extracts structured knowledge from markdown notes into SQLite with full-text search, enabling AI coding tools to retrieve relevant context offline at zero cost.3MIT
- AlicenseAqualityAmaintenanceA local-first MCP server for shared memory across AI tools, enabling context capture and resume across sessions.26624Apache 2.0
Related MCP Connectors
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Person-owned AI memory that learns, not just stores — portable context for any MCP client.
Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.
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/arnavbee/memex'
If you have feedback or need assistance with the MCP directory API, please join our Discord server