Tundoc を Claude Code / Claude Desktop / Cursor などのエージェントから「あなた専属のコンテキストサーバー」として使うための手順です。 所要時間およそ 5 分。
Model Context Protocol (MCP) は、AI エージェントに外部の「知識」と「ツール」を渡すための標準プロトコルです。 Tundoc を MCP サーバーとして公開すると、Claude Code でコードを書きながら「自分が保存した記事の中から関連するものを探す」「過去に読んだ AI の論文要約を引用する」といったことが、Tundoc を開かずにできるようになります。
イメージ: Tundoc に貯まった知識を、ふだん使うエージェントが「あなたの脳の続き」として参照できる状態にする、という機能です。
以下の 3 点を確認してください。
get_collection_summary で必要ですAI 設定の embedding モデル: ⚙️ → AI 設定 ダイアログには「Embedding モデル」項目があります。「モデル取得」ボタンを押すと、AI プロバイダーから取得した一覧のうち名前に embed を含むものがハイライト表示されます。手入力にも切り替え可能です。未設定の場合は text-embedding-3-small がデフォルトです。OpenAI / Ollama (/v1 互換モード) / vLLM / LM Studio / Together / LiteLLM プロキシなど、OpenAI 互換 API なら何でも対応します。
tdoc_xxxxxxxxxxxx... を その場でコピーして保管 してください。
キーはこの一度しか表示されません。閉じる前に必ずコピーしましょう。万が一忘れたら、削除して再発行してください。
private にしたいメモがあれば、いったんキャンセル → メモを編集して「private(MCPから除外)」にチェック → もう一度有効化、の順で進めてください。後からも個別に切り替えできます。
これで /mcp エンドポイントが応答可能になります。OFF に戻すと全リクエストが即座に 403 で拒否されます。
~/.claude.json の mcpServers セクションに以下を追加:
{
"mcpServers": {
"tundoc": {
"type": "http",
"url": "https://tundoc.techswan.online/mcp",
"headers": {
"Authorization": "Bearer tdoc_ここに発行したキーを貼る"
}
}
}
}
Claude Code を再起動し、/mcp コマンドで tundoc が一覧に出ることを確認してください。
Cursor 設定の MCP 項目で「Add new MCP server」を選び:
tundochttp または streamablehttps://tundoc.techswan.online/mcpAuthorization: Bearer tdoc_...KEY='tdoc_あなたのキー'
curl -s -X POST https://tundoc.techswan.online/mcp \
-H "Authorization: Bearer $KEY" \
-H 'Accept: application/json, text/event-stream' \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
応答が SSE 形式の JSON で 19 個のツール定義を返せば成功です。
エージェントに以下のような質問を投げてみてください。MCP が正しく動いていれば、自然に Tundoc を参照してくれます。
search_memos or semantic_searchlist_recent + サマリget_user_interests や get_collection_summaryget_user_view_onfind_connectionsemantic 系(semantic_search, get_related_memos, get_user_view_on, recommend_to_read)は embedding が生成済みのメモ でしか動きません。新規ユーザーは数十分待つか、サーバー管理者にバックフィルを依頼してください。
外部に出したくないメモは 「private(MCPから除外)」 スイッチを ON にします。設定箇所:
private メモは MCP のあらゆる読み取りツールから除外されます。誤って公開状態にしてしまわないよう、MCP 経由でも 一度 private にしたメモは MCP からは編集できません(プライバシーの巻き戻しを防ぐため)。
仕事関連や個人情報を含むメモは、MCP 公開を有効化する前にざっと private にしておくのが安心です。
| 読み取り系 | |
| search_memos | キーワード検索 |
|---|---|
| get_memo | メモ単体取得 |
| list_recent | 最近の活動 |
| list_tags | タグ一覧(頻度順) |
| list_memos_by_tag | タグで絞り込み |
| get_user_interests | 重み付け上位タグ |
| get_collection_summary | 保存傾向サマリ(人物像ではなく収集パターン) |
| 意味検索(embedding) | |
| semantic_search | 意味で近いメモを探す |
| get_related_memos | あるメモに類似のメモ |
| get_article_text | 要約元の原文を取得 |
| get_user_view_on | 特定トピックでの収集傾向(引用付き) |
| テーマ(自動クラスタ) | |
| list_themes | 自動分類されたテーマ一覧 |
| get_theme | テーマ詳細+構成メモ |
| 書き込み | |
| create_memo | エージェントがメモ作成 |
| update_memo | メモ更新(private 巻き戻し不可) |
| summarize_url | URL を要約してメモ化 |
| 関係性・推薦 | |
| find_connection | 2 つのメモのつながりを LLM が説明 |
| recommend_to_read | 「今読むべき」メモを推薦 |
tdoc_)そのユーザーで MCP 公開トグルが OFF になっています。⚙️ → 「MCP公開」をもう一度確認してください。
embedding query failed を返すAI 設定(⚙️ → AI 設定)が未設定です。OpenAI 互換 API の Base URL / APIキー / モデルを保存してください。embedding には text-embedding-3-small 系を使います。
既存メモの embedding がまだ生成されていない可能性があります。サーバー側で 10 秒に 1 件のペースで自動バックフィル中です。1700 件あれば概ね 6〜10 分で完了します。
異なる次元のモデル間(例: 1536d → 1024d)で生成した embedding は混在させると意味のない類似度を返すので、切り替え時は再生成が必要です。サーバー管理者が以下を実行:
# 確認だけ(クリアしない)
node scripts/backfill-embeddings.js --user-email you@example.com --rebuild --dry-run
# 全 embedding を消して再生成
node scripts/backfill-embeddings.js --user-email you@example.com --rebuild --yes
# 特定モデルで埋めたものだけ消す(混在運用)
node scripts/backfill-embeddings.js --user-email you@example.com \
--rebuild-model text-embedding-3-small --yes
テーマ(クラスタリング結果)は embedding を元にしているので、リビルド時に自動的にドロップされます。バックフィル完了後、queue-worker が次の整時に再クラスタリングします。
初回クラスタリングはバックグラウンドで 1 時間に 1 回チェックされます。すぐに作りたい場合はログイン Cookie で:
curl -X POST https://tundoc.techswan.online/api/user/themes/recluster \
-H 'Content-Type: application/json' \
--cookie 'scrapbox-auth=...' \
-d '{}'
を叩くと即時にリビルドできます(数秒〜数十秒)。{"skipLlm": true} を付けるとフィクスチャ名で高速にできます。
⚙️ → 「APIキー管理」 → 該当キーの削除ボタン。即座にそのキーからの全アクセスが拒否されます。