メインコンテンツへスキップ

ツール概要

Linkly AI は MCP(Model Context Protocol)を通じて AI アシスタントに 3 つのツールを公開し、段階的なドキュメントアクセスワークフローを構成します:
search → outline → read
検索      アウトライン   読み取り

search

ドキュメントを検索し、関連する結果を取得

outline

ドキュメントのアウトラインを表示し、構造を把握

read

ドキュメントの内容を読み取り、詳細を取得
これら 3 つのツールを組み合わせることで、AI アシスタントがローカルドキュメントからコンテキスト情報を効率的に取得できます。

検索(search)

インデックス済みのローカルドキュメントを検索し、最も関連性の高い結果リストを返します。

パラメータ

パラメータ必須デフォルト値説明
querystringはい検索キーワードまたはフレーズ
limitnumberいいえ20最大返却結果数(1-50)
doc_typesstring[]いいえ全部ドキュメントタイプでフィルター、例:["pdf", "md", "docx"]
output_formatstringいいえmarkdownjson に設定すると構造化 JSON 出力を取得
ベクトルモデルのダウンロード中でも、検索は自動的にキーワードのみモードに降格し、利用に影響はありません。

返却フィールド

各検索結果には以下の情報が含まれます:
フィールド説明
doc_idドキュメントの一意識別子。後続の outline/read 呼び出しに使用
titleドキュメントタイトル
pathファイルパス
relevance関連度スコア(0-1)
word_countドキュメントの語数
total_linesドキュメントの総行数
has_outline利用可能なアウトラインがあるか
modified_at最終更新日時
keywords抽出されたキーワードリスト
snippetマッチした内容のスニペット

使用例

# CLI 方式
linkly search "プロジェクト管理ベストプラクティス" --limit 10

# ドキュメントタイプでフィルター
linkly search "四半期報告" --type pdf,docx --json

アウトライン(outline)

1 つまたは複数のドキュメントの構造化されたアウトラインとメタデータを取得し、ドキュメント構造の迅速な把握と対象セクションの特定に役立ちます。

パラメータ

パラメータ必須デフォルト値説明
doc_idsstring[]はいドキュメント ID リスト(検索結果から取得)
expandstring[]いいえ自動展開するノード ID(例:["2", "3.1"])、省略するとすべての階層を自動表示
output_formatstringいいえmarkdownjson に設定すると構造化 JSON 出力を取得

アウトラインを使うべきタイミング

シナリオ推奨
長いドキュメント(> 200 行)でアウトラインありまずアウトラインを確認し、対象セクションを読み取る
短いドキュメント(< 100 行)アウトラインをスキップし、read で全文を直接読む
has_outline: false のドキュメントアウトラインをスキップし、read でページごとに閲覧
アウトライン機能はブックマーク付きの PDFMarkdownDOCX のドキュメントで最も効果的です。大量のドキュメントや書籍を読む際に非常に効率的です。 プレーンテキストやブックマークのない PDF へのアウトラインサポートは、今後のイテレーションで提供予定です。

使用例

# 単一のドキュメントのアウトラインを表示
linkly outline abc123

# 複数のドキュメントを一括表示
linkly outline id1 id2 id3

# JSON 形式で出力
linkly outline abc123 --json

読み取り(read)

ドキュメントの内容を読み取ります。行番号での位置指定とページ分割をサポートし、長いドキュメントの特定部分の読み取りに適しています。Read ツールの動作は Claude AI SDK の動作と一致しているため、各種 Agentic AI モデルで最適な効果が得られます。

パラメータ

パラメータ必須デフォルト値説明
doc_idstringはいドキュメント ID(検索結果から取得)
offsetnumberいいえ1開始行番号(1 から開始)
limitnumberいいえ200読み取り行数(最大 500)
output_formatstringいいえmarkdownjson に設定すると構造化 JSON 出力を取得

コンテンツ形式

Read ツールは行番号付きの内容を返し、参照と位置特定が容易です:
  1	# プロジェクト要件ドキュメント
  2
  3	## 一、プロジェクト背景
  4
  5	本プロジェクトは効率的なナレッジ管理システムの構築を目指し...
  6	ターゲットユーザーは企業の研究開発チームと個人のナレッジワーカーです。

ページ分割戦略

長いドキュメントの場合、分割して読み取ることをお勧めします:
# 第 1 ページ:第 1-200 行
linkly read <DOC_ID> --offset 1 --limit 200

# 第 2 ページ:第 201-400 行
linkly read <DOC_ID> --offset 201 --limit 200

# 第 3 ページ:第 401-600 行
linkly read <DOC_ID> --offset 401 --limit 200
アウトラインとの併用がより効果的です。アウトラインで対象セクションの行範囲を特定し、read でその範囲の内容を正確に読み取れます。

使用例

# ドキュメントの冒頭を読み取り
linkly read abc123

# 特定の範囲を読み取り
linkly read abc123 --offset 120 --limit 80

# JSON 形式(プログラム処理に適しています)
linkly read abc123 --json

呼び出し例

完全なワークフロー:CLI 方式

以下の例は、CLI を使って完全なドキュメント検索を行う方法を示しています:
# ステップ 1:関連ドキュメントを検索
linkly search "マイクロサービスアーキテクチャ設計" --limit 5

# ステップ 2:対象ドキュメントのアウトラインを表示(doc_id が abc123 の場合)
linkly outline abc123

# ステップ 3:関心のあるセクションを読み取り(対象が第 80-150 行の場合)
linkly read abc123 --offset 80 --limit 70

完全なワークフロー:MCP 方式

AI アシスタントが MCP プロトコルでツールを呼び出す場合、リクエスト形式は以下の通りです:
// ステップ 1:検索
{
  "method": "tools/call",
  "params": {
    "name": "search",
    "arguments": {
      "query": "マイクロサービスアーキテクチャ設計",
      "limit": 5
    }
  }
}

// ステップ 2:アウトラインを表示
{
  "method": "tools/call",
  "params": {
    "name": "outline",
    "arguments": {
      "doc_ids": ["abc123"]
    }
  }
}

// ステップ 3:内容を読み取り
{
  "method": "tools/call",
  "params": {
    "name": "read",
    "arguments": {
      "doc_id": "abc123",
      "offset": 80,
      "limit": 70
    }
  }
}

よくある質問

Linkly AI は現在、以下の形式に対応しています:
形式拡張子アウトライン対応
Markdown.md, .mdx
Word.docx
PDF.pdf部分対応
プレーンテキスト.txt
HTML.html, .htm部分対応
ドキュメントに利用可能なアウトラインがない場合(has_outline: false)、以下の方法があります:
  1. read ツールを直接使用して、ドキュメントの内容をページごとに閲覧します
  2. まずドキュメントの冒頭(デフォルト 200 行)を読み取り、大まかな内容を把握してから続きを読むか判断します
推奨フロー:
  1. まず outline でドキュメントの構造を把握します(アウトラインがある場合)
  2. アウトライン内の行範囲に基づいて、readoffsetlimit パラメータで対象セクションを正確に読み取ります
  3. 1 回の読み取りは最大 500 行です。offset を調整してページごとに読み取ります
デフォルトポートは 60606 です。このポートが使用中の場合、アプリは自動的に他のポートを試行します。Linkly AI Desktop の設定で実際に使用されているポートを確認できます。
以下をお試しください:
  • より正確なキーワードを使用する
  • 自然言語での記述を使用する(ベクトルセマンティックマッチングを活用)
  • キーワードと同義語を組み合わせる(例:"認証 auth ログイン sign-in"
  • --type で特定のドキュメントタイプをフィルターし、検索範囲を絞り込む