Skip to main content
Glama
Koutaro-Hanabusa

home-memo-mcp

README.md
# home-memo-mcp

個人ナレッジノート ([`~/.nb/home/knowledge/*.md`](https://github.com/Koutaro-Hanabusa/home-memo)) を、Model Context Protocol (MCP) 経由で検索できるようにする Cloudflare Worker。

`search_knowledge` ツール 1 本を公開する薄いラッパー。実際の RAG は Cloudflare AI Search が担当し、Worker は MCP プロトコルへの変換と Cloudflare Access による認証境界の 2 役だけを持つ。

## 全体アーキテクチャ

```
┌──────────────────────────────┐
│ ~/.nb/home (ローカル)          │
│   knowledge/*.md              │
└──────────────┬───────────────┘
               │ git push
               ▼
┌──────────────────────────────┐
│ GitHub: Koutaro-Hanabusa/    │
│         home-memo (private)  │
└──────────────┬───────────────┘
               │ GitHub Actions
               │ (sync-ai-search.yml)
               │  ・rclone で *.md を R2 に sync
               │  ・AI Search を reindex キック
               ▼
┌──────────────────────────────┐
│ Cloudflare R2 bucket:        │
│   home-memo                  │
└──────────────┬───────────────┘
               │ (source binding)
               ▼
┌──────────────────────────────┐
│ Cloudflare AI Search:        │
│   instance = home-memo       │
│   embedding =                │
│     @cf/qwen/qwen3-          │
│         embedding-0.6b       │
└──────────────┬───────────────┘
               │ Workers binding (HOME_MEMO)
               │ ※ 内部認証、Bearer 不要
               ▼
┌──────────────────────────────┐
│ Worker: home-memo-mcp        │◄─ Durable Object
│   このリポ                     │   HomeMemoMCP (SQLite)
│   /mcp → HomeMemoMCP          │   MCP セッション状態
└──────────────┬───────────────┘
               │ custom domain
               ▼
┌──────────────────────────────┐
│ home-memo-mcp.burio16.com    │
│   Cloudflare Access で保護    │
│   (Service Token ポリシー)     │
└──────────────┬───────────────┘
               │ MCP over Streamable HTTP
               │ + CF-Access-Client-Id/Secret header
               ▼
┌──────────────────────────────┐
│ Claude Code                   │
│   ~/.mcp.json                 │
│   → mcp__home-memo__          │
│         search_knowledge      │
└──────────────────────────────┘
```

## コンポーネント一覧

| 層 | 名前 | 種別 | 補足 |
|---|---|---|---|
| ソース | [`Koutaro-Hanabusa/home-memo`](https://github.com/Koutaro-Hanabusa/home-memo) | GitHub repo (**private**) | ノート本体 (`knowledge/*.md`)。この repo (`home-memo-mcp`) の姉妹 |
| 同期 | `.github/workflows/sync-ai-search.yml` | GitHub Actions | 上記 repo 側に配置。rclone で R2 に sync → AI Search を reindex |
| ストレージ | `home-memo` | R2 bucket | markdown の実体置き場 |
| RAG | `home-memo` | Cloudflare AI Search instance | chunk / embed / retrieval を丸ごとマネージド (旧 AutoRAG) |
| 埋め込み | `@cf/qwen/qwen3-embedding-0.6b` | Workers AI モデル | AI Search が内部で使用 |
| 実行時 | `home-memo-mcp` | Cloudflare Worker (このリポ) | MCP サーバー本体 |
| セッション | `HomeMemoMCP` | Durable Object (SQLite) | McpAgent が要求するステートフル SSE 用 |
| ドメイン | `home-memo-mcp.burio16.com` | Custom domain | Worker のフロント |
| 認証 | Cloudflare Access | Zero Trust Application | Service Token ポリシーで CLI/Claude Code からアクセス |