これは何か

AIと人間が同じ場所でドキュメントを読み書きするためのナレッジベースです。

NotionやObsidianは人間が使いやすいことを優先して作られています。ContextMixerは、AIがアクセスしやすさも同じくらい重視して設計しました。人間とAIが協業するためのナレッジベースを目指しています。

作った動機

もともと個人プロジェクトのドキュメント管理にNotionを使っていました。NotionにMCPでアクセスすると、少しの追記にもトークンと時間がかかります。これはNotionの問題というより、AI前提の設計になっていないからで、NotionはAI登場以前からあるので当然です。

Notionのリッチなブロック構造は人間には便利ですが、AIが1段落のためにページ全体を取得しなければならないのは無駄が多い。ローカル管理のObsidianも候補でしたが、チャットアプリからアクセスしたかったので選択肢から外れました。

ならAI向きに作り直せばいい、というのが始まりです。

三本柱

ContextMixerの設計は3つの柱で成り立っています。

1. 粒度を選べるドキュメント取得(Progressive Retrieval)

ドキュメントを「どこまで読むか」を指定できるAPI設計になっています。

取得モード内容想定トークン
metaタイトルと概要だけ数十
outline見出し構造数百
section特定セクションだけ数百〜数千
full全文全量

AIはまず meta を見て、関係ありそうなら section で必要な部分だけ取る。全文を毎回読まないので、トークン消費が劇的に減ります。

Notion MCPとContextMixerの取得を比較すると、同じコンテキストを組み立てるのに必要なトークンが大きく違います。

操作Notion MCPContextMixer
プロジェクトの概要を知るページ全文取得(数千トークン)meta 取得(数十トークン)
設計判断を確認ページ全文取得 → AIが抽出section で該当箇所だけ
コンテキスト組み立て4ページ分を手動で取得bundle で一発取得(予定)

2. MCP対応

Claude DesktopやClaude.aiからMCP経由で直接ドキュメントを検索・取得・書き込みできます。OAuth 2.1認証、ツールは9個。

MCPを入れてから、プロンプトにコンテキストを手動で貼る作業がほぼなくなりました。「このプロジェクトの設計方針を確認して」と言えば、AIが勝手にContextMixerを検索してドキュメントを持ってきます。

3. セッションをまたぐ引き継ぎ(AI Cortex)

各プロジェクトに4つのドキュメントを置き、AIがセッションをまたいで文脈を引き継ぐ仕組みを運用しています。

  • context — 現在のフェーズ、直近の作業、次のエージェントへの引き継ぎ
  • spec — ゴール、要件、技術構成
  • decisions — 設計判断の理由と経緯
  • notes — ライブラリのクセ、バグ、実装Tips

エージェントが作業を始める時に context を読み、終了時に更新する。これで「前回どこまでやったか」を人間が説明しなくて済むようになります。

コスト構成

Cloudflareのプラットフォームを活用し、個人利用の範囲で課金されない構成にしました。

サービス無料枠
Workers10万req/日
D1500MB/DB・500万行read/日
R210GB・転送無料

※2025/06現在

ナレッジベースは一度作ったら何年も使うものなので、ランニングコストがかからない設計にこだわりました。

スタック

要素選択
RuntimeHono on Cloudflare Workers
DBD1(SQLite互換)
StorageR2
FrontendHTMX + 静的アセット
認証Clerk + APIキー + OAuth 2.1
検索FTS5 trigram

フロントエンドは当初Vueで設計していましたが、やることを考えればもっとシンプルでいいことに気づきHTMXに変えました。詳しくは開発記録に書いています。

今の状態

自分の個人プロジェクトのナレッジベースとして毎日活用しています。主な利用形態はClaude DesktopとClaude CodeからのMCPアクセス。30以上のプロジェクトコレクションが動いていて、Web UIは人間が確認用に使うイメージです。

人間向けのUIがまだ弱く、コレクションエクスポートなども未対応なので基礎的な機能のアップデートをもう少し続ける予定です。少し先の予定はまだ細かく決めてませんが、他のサービスのデータのインポート機能や、Googleが発表したOKF(Open Knowledge Format)対応ができるといいなと思ってます。