doc-lib-mcp MCP サーバー
ドキュメントの取り込み、チャンク化、セマンティック検索、メモ管理のためのモデル コンテキスト プロトコル (MCP) サーバー。
コンポーネント
リソース
以下を使用してシンプルなメモ保存システムを実装します。
個々のノートにアクセスするためのカスタム
note://URI スキーム各ノートリソースには、名前、説明、
text/plainMIMEタイプがあります。
プロンプト
プロンプトを表示します:
summary-notes : 保存されているすべてのメモの要約を作成します
詳細レベル(簡潔/詳細)を制御するためのオプションの「スタイル」引数
現在のすべてのメモをスタイルの好みに合わせて組み合わせたプロンプトを生成します
ツール
サーバーは幅広いツールを実装しています:
add-note : メモリ内のノートストアに新しいノートを追加する
引数:
name(文字列)、content(文字列)
ingest-string : メッセージ経由で提供されたマークダウンまたはプレーンテキスト文字列を取り込み、チャンク化する
引数:
content(文字列、必須)、source(文字列、オプション)、tags(文字列のリスト、オプション)
ingest-markdown : マークダウン (.md) ファイルを取り込んでチャンク化する
引数:
path(文字列)
ingest-python : Python (.py) ファイルを取り込み、チャンク化する
引数:
path(文字列)
ingest-openapi : OpenAPI JSON ファイルを取り込み、チャンク化する
引数:
path(文字列)
ingest-html : HTML ファイルを取り込み、チャンク化する
引数:
path(文字列)
ingest-html-url : URL から HTML コンテンツを取り込み、チャンク化する (動的コンテンツの場合はオプションで Playwright を使用)
引数:
url(文字列)、dynamic(ブール値、オプション)
smart_ingestion : Gemini を使用してファイルから技術的に関連するすべてのコンテンツを抽出し、堅牢なマークダウン ロジックを使用してチャンクに分割します。
引数:
path(文字列、必須): 取り込むファイル パス。prompt(文字列、オプション): Gemini で使用するカスタムプロンプト。tags(文字列のリスト、オプション): 分類用のタグのオプションのリスト。
Gemini 2.0 Flash 001 を使用して、コード、構成、マークダウン構造、および技術的な定義のみを抽出します (要約や解説は含まれません)。
抽出されたコンテンツを、コード ブロックとマークダウン/ナラティブ コンテンツの両方を個別のチャンクとして保存する mistune 3.x ベースのチャンカーに渡します。
各チャンクは、意味的な検索と取得のために埋め込まれ、保存されます。
search-chunks : 取り込んだコンテンツに対するセマンティック検索
引数:
query(文字列): セマンティック検索クエリ。top_k(整数、オプション、デフォルト 3): 返される上位結果の数。type(文字列、オプション): チャンクタイプ (例:code、html、markdown) で結果をフィルタリングします。tag(文字列、オプション): チャンク メタデータ内のタグで結果をフィルターします。
指定されたクエリに最も関連性の高いチャンクを返します。オプションでタイプやタグでフィルタリングできます。
delete-source : 指定されたソースからすべてのチャンクを削除する
引数:
source(文字列)
delete-chunk-by-id : IDで1つ以上のチャンクを削除する
引数:
id(整数、オプション)、ids(整数のリスト、オプション)idを指定して 1 つのチャンクを削除することも、idsを指定して複数のチャンクを一度に削除することもできます。
update-chunk-type : チャンクのtype属性をIDで更新する
引数:
id(整数、必須)、type(文字列、必須)
ingest-batch : 複数のドキュメントファイル(マークダウン、OpenAPI JSON、Python)を一括で取り込み、チャンク化する
引数:
paths(文字列のリスト)
list-sources : メモリに取り込まれ保存されたすべての一意のソース (ファイル パス) を一覧表示します。オプションでタグまたはセマンティック検索によるフィルタリングが可能です。
引数:
tag(文字列、オプション): チャンク メタデータ内のタグでソースをフィルターします。query(文字列、オプション): 関連するソースを見つけるためのセマンティック検索クエリ。top_k(整数、オプション、デフォルト 10): クエリを使用するときに返される上位ソースの数。
get-context : タグ、タイプ、意味的類似性でフィルタリングして、AI コンテキストとして使用するために関連するコンテンツ チャンク (コンテンツのみ) を取得します。
引数:
query(文字列、オプション): セマンティック検索クエリ。tag(文字列、オプション): チャンク メタデータ内の特定のタグで結果をフィルターします。type(文字列、オプション): チャンクタイプ (例: 'code'、'markdown') で結果をフィルタリングします。top_k(整数、オプション、デフォルト 5): 取得する上位の関連チャンクの数。
update-chunk-metadata : チャンクのメタデータフィールドをIDで更新する
引数:
id(整数)、metadata(オブジェクト)
tag-chunks-by-source : 指定されたソース(URLまたはファイルパス)に関連付けられたすべてのチャンクのメタデータに、指定されたタグを追加します。既存のタグとマージされます。
引数:
source(文字列)、tags(文字列のリスト)
list-notes : 現在保存されているすべてのメモとその内容を一覧表示します。
チャンク化とコード抽出
Markdown、Python、OpenAPI、HTML ファイルは、効率的な取得と検索のために論理的なチャンクに分割されます。
マークダウン チャンカーは、mistune 3.x の AST API と正規表現を使用して、すべての元の書式を保持しながら、コードをブロックと説明ごとに確実に分割します。
コード ブロックとマークダウン/説明コンテンツは両方とも個別のチャンクとして保存されます。
HTMLチャンクは、
readability-lxmlライブラリを使用してまずメインコンテンツを抽出し、次に<pre>タグからブロックコードスニペットを専用の「コード」チャンクとして抽出します。インライン<code>コンテンツはナラティブチャンクの一部として保持されます。
セマンティック検索
search-chunksツールは、取り込まれたすべてのコンテンツに対してベクトル ベースのセマンティック検索を実行し、指定されたクエリに最も関連性の高いチャンクを返します。セマンティックランキングの前に、チャンク タイプ (例:
code、html、markdown) および/またはチャンク メタデータ内のタグによって結果をフィルター処理するためのオプションのtypeおよびtag引数をサポートします。これにより、「'コストと使用量' に関連する 'langfuse' タグが付けられたすべてのコード チャンク」など、高度にターゲットを絞った検索が可能になります。
メタデータ管理
チャンクには、分類とタグ付けのための
metadataフィールドが含まれます。update-chunk-metadataツールを使用すると、ID によって任意のチャンクのメタデータを更新できます。tag-chunks-by-sourceツールを使用すると、特定のソースのすべてのチャンクに1回の操作でタグを追加できます。タグ付けでは、新しいタグと既存のタグがマージされ、以前のタグは保持されます。
Related MCP server: Docs MCP Server
構成
[TODO: 実装に固有の構成の詳細を追加する]
クイックスタート
インストール
クロードデスクトップ
MacOS の場合: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows の場合: %APPDATA%/Claude/claude_desktop_config.json
発達
建築と出版
配布用のパッケージを準備するには:
依存関係を同期し、ロックファイルを更新します。
パッケージディストリビューションをビルドします。
これにより、 dist/ディレクトリにソースとホイールのディストリビューションが作成されます。
PyPI に公開:
注: 環境変数またはコマンド フラグを使用して PyPI 資格情報を設定する必要があります。
トークン:
--tokenまたはUV_PUBLISH_TOKENまたはユーザー名/パスワード:
--username/UV_PUBLISH_USERNAMEおよび--password/UV_PUBLISH_PASSWORD
デバッグ
MCPサーバーはstdio経由で実行されるため、デバッグが困難になる場合があります。最適なデバッグ環境を実現するには、 MCP Inspectorの使用を強くお勧めします。
次のコマンドを使用して、 npm経由で MCP Inspector を起動できます。
起動すると、ブラウザでアクセスしてデバッグを開始できる URL がインスペクタに表示されます。