Skip to main content
Glama

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_vaultget_recent_assetsget_asset_by_iddelete_assetsync_browser_historysync_notes_nowsync_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が変わり、接続をスロットリングします。

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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