Skip to main content
Glama
Koutaro-Hanabusa

work-memo-mcp

README.md
# work-memo-mcp

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

`search_knowledge` ツール 1 本を公開する薄いラッパー。実際の RAG は Cloudflare AI Search が担当し、Worker は MCP プロトコルへの変換と Cloudflare Access による認証境界の 2 役だけを持つ。姉妹リポ [`home-memo-mcp`](https://github.com/Koutaro-Hanabusa/home-memo-mcp) と同一構造。

## 全体アーキテクチャ

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

## コンポーネント一覧

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