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 ポリシーを共有 |
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues