mcpField
G
Go Docs Mcp

Go Docs Mcp

ローカル
github.com/drolosoftメモリ・ナレッジ115 週間前に更新

Go Docs Mcp について

Go-Docs MCP は、複数形式の文書を読み取り、検索する Go 製 MCP サーバーです。抽出、OCR、URL からの取得に対応し、単一バイナリでローカル文書にアクセスしたい MCP クライアント向けです。

主な機能

  1. 01PDF、TXT、MD、CSV、DOCX、画像の読み取り
  2. 02文書テキストの検索とメタデータ抽出
  3. 03スキャン PDF と画像の OCR
  4. 04表、画像、アウトラインの抽出
  5. 05URL からの文書取得と読み取り
  6. 06設定ディレクトリ内へのファイルアクセス制限

活用シーン

  1. 01ローカルのプロジェクト文書の検索
  2. 02OCR によるスキャン PDF や画像ファイルの読み取り
  3. 03レポートからの表と画像の抽出
  4. 04URL 文書からのテキスト取得

MCP 対応

MCP サーバーは stdio でクライアントと通信し、文書の一覧表示、読み取り、検索、分析、変換ツールを公開します。URL からの文書取得と、対応形式の OCR にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Go-Docs MCP

Go-Docs MCP

Go go-docs-mcp MCP サーバー GitHub リリース ライセンス:MIT

インストールしてすぐに使えます。 1つのコマンドで、単一のバイナリを実行できます。AI があらゆるドキュメント(PDF、テキスト、Markdown、DOCX、画像)を読み取ります。

Model Context Protocol を介して、複数形式のドキュメントにアクセスする MCP サーバーです。ドキュメントの読み取り、検索、画像の抽出、OCR、URL からのドキュメント取得に対応しています。13 個のツール、6 種類の形式、設定不要です。

go install github.com/drolosoft/go-docs-mcp@latest
# That's it. Single binary, starts in milliseconds.

MCP サーバーが直接的なツールより優れている理由について詳しくは、なぜ MCP なのか? をご覧ください。


🏆 Go-Docs MCP が選ばれる理由

他のドキュメント MCP サーバーは、どれも1つの形式しか扱えません。PDF サーバーは PDF 用、DOCX サーバーは DOCX 用です。3 種類の形式を読むには、サーバーが3つ必要になります。

Go-Docs MCPその他
単一バイナリ、ランタイム不要はいNode/Python が必要
go install のワンライナーはいnpm+依存関係、または pip+venv
複数形式(6 種類)はいそれぞれ1形式
全文検索はい一部対応、または非対応
OCR(スキャン PDF と画像)はいまれ
画像と表の抽出はい一部対応
ドキュメントのアウトラインはいまれ
URL からの取得はいまれ
ディレクトリ制限、読み取り専用はいさまざま
スマートキャッシュはいなし
完全オフラインはいはい

Go-Docs MCP は単一のバイナリですべての形式を読み取ります。高速で安全、ランタイム依存関係もありません。


📋 機能 — 13 個のツール

カテゴリツール説明
検出list_documentsメタデータ(形式、ページ数、サイズ)とともにすべてのドキュメントを一覧表示
検出list_formats対応形式と依存関係の状態を一覧表示
読み取りread_documentあらゆる形式の全文、特定のページ、またはページ範囲を読み取り
読み取りread_urlURL からダウンロードしてテキストを抽出(最大 50MB)
読み取りget_document_summary概要として最初の3ページを取得
検索search_document大文字と小文字を区別しない全文検索と、該当箇所の前後の文脈
分析get_document_metadataタイトル、作成者、日付、バージョン、ページ数を取得
分析get_document_outline目次/ブックマークを取得
分析extract_tables表を構造化データとして抽出
分析extract_images画像を base64 として抽出(1回の呼び出しで最大10件)
OCRocr_documentスキャン画像を含む PDF に OCR を強制実行
OCRread_imageOCR で PNG、JPG、TIFF からテキストを抽出
エクスポートconvert_to_markdownあらゆるドキュメントを整形済み Markdown に変換

主な特長:

  • 高速 — mtime ベースのインメモリキャッシュで、重複した抽出を回避します
  • 複数形式に対応 — 1つのサーバーで PDF、TXT、MD、CSV、DOCX、画像を扱えます
  • OCR — スキャン文書では tesseract に自動でフォールバックします
  • 安全 — パストラバーサル防止機能を備え、ディレクトリ内にアクセスを制限します
  • ポータブル — macOS と Linux で動作します

📄 対応形式

形式依存関係備考
PDFpoppler(pdftotext、pdfinfo、pdfimages、pdftoppm)完全対応 — テキスト、画像、メタデータ、OCR フォールバック
TXT、MD、CSVなしネイティブ対応、依存関係不要
DOCXpandoc(オプション)Word ドキュメントの抽出
画像(PNG、JPG、TIFF)tesseract(オプション)OCR によるテキスト抽出

📦 前提条件

  • Go 1.25+ (インストール)
  • poppler — PDF のサポートに必要です
  • tesseract (任意) — スキャンした文書や画像の OCR を有効にします
  • pandoc (任意) — DOCX のサポートを有効にします
# macOS
brew install poppler
brew install tesseract        # optional: OCR
brew install pandoc           # optional: DOCX

# Debian/Ubuntu
apt install poppler-utils
apt install tesseract-ocr     # optional: OCR
apt install pandoc            # optional: DOCX

# Fedora/RHEL
dnf install poppler-utils
dnf install tesseract         # optional: OCR
dnf install pandoc            # optional: DOCX

注: TXT、MD、CSV は依存関係なしですぐに使用できます。必要なものだけをインストールしてください。


🚀 インストール

ソースから
go install github.com/drolosoft/go-docs-mcp@latest
ローカルでビルド
git clone https://github.com/drolosoft/go-docs-mcp.git
cd go-docs-mcp
make build      # produces ./go-docs-mcp
make install    # installs to /usr/local/bin/

⚙️ 設定

Go-Docs MCP は、設定されたディレクトリから文書を読み込みます。ディレクトリを変更するには DOCS_MCP_DIR を設定します。

変数デフォルト説明
DOCS_MCP_DIR~/.docs-mcp/documents/提供する文書を格納するディレクトリ
PDF_MCP_DIR(旧エイリアス)DOCS_MCP_DIR と後方互換性のあるエイリアス

文書をディレクトリに配置すると、サーバーが自動的に検出します。サポートされているすべての形式が検出されます。


💡 使い方

Claude Code で使う

.claude/settings.json に追加します。

{
  "mcpServers": {
    "docs": {
      "command": "go-docs-mcp",
      "env": {
        "DOCS_MCP_DIR": "/path/to/your/documents"
      }
    }
  }
}
Claude Desktop で使う

~/Library/Application Support/Claude/claude_desktop_config.json に追加します(macOS)。

{
  "mcpServers": {
    "docs": {
      "command": "/usr/local/bin/go-docs-mcp",
      "env": {
        "DOCS_MCP_DIR": "/path/to/your/documents"
      }
    }
  }
}
任意の MCP クライアントで使う

サーバーは JSON-RPC 2.0 を使って stdio 経由で通信します。

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | go-docs-mcp

📖 ツールリファレンス

list_documents

設定されたディレクトリ内のすべての文書を、形式を検出して一覧表示します。

パラメーター: なし

出力例:

[
  {
    "filename": "architecture-guide.pdf",
    "format": "pdf",
    "title": "architecture-guide",
    "pages": 42,
    "size_bytes": 1048576
  },
  {
    "filename": "notes.md",
    "format": "markdown",
    "title": "notes",
    "size_bytes": 4096
  }
]

list_formats

サポートされているすべての文書形式と、その依存関係の状態を一覧表示します。

パラメーター: なし


read_document

文書から抽出したテキストを読み込みます。文書が画像ベースまたはスキャンされたもので、pdftotext が空のテキストを返す場合は、自動的に OCR にフォールバックします。

パラメーター:

名前型必須説明
filenamestringはい読み込む文書のファイル名
pagenumberいいえ単一ページの番号(1 始まり)。全文を取得する場合は省略します。
pagesstringいいえページ範囲。例:「1-5」、「10」、「1-3,7,10-12」。指定すると page より優先されます。

入力例:

{
  "filename": "architecture-guide.pdf",
  "pages": "1-3,10-12"
}

search_document

文書内でクエリに一致する行を検索します。一致箇所と前後 2 行のコンテキスト、およびおおよそのページ番号を返します。

パラメーター:

名前型必須説明
filenamestringはい検索する文書のファイル名
querystringはい検索クエリ(大文字と小文字を区別しません)

出力例:

Found 3 matches for 'microservice' in architecture-guide.pdf:

--- Match 1 (page ~2, line 45) ---
  The system is composed of several
> microservice components that communicate
  via gRPC and message queues.

get_document_summary

文書の最初の 3 ページのテキストを、簡易な要約として返します。

パラメーター:

名前型必須説明
filenamestringはい要約する文書のファイル名

get_document_metadata

文書のメタデータ全体を返します。

パラメーター:

名前型必須説明
filenamestringはいメタデータを取得する文書のファイル名

出力例:

{
  "title": "Architecture Guide",
  "author": "Jane Doe",
  "subject": "System Design",
  "creator": "LaTeX",
  "producer": "pdfTeX",
  "creation_date": "Thu May 15 10:30:00 2025",
  "modification_date": "Thu May 15 10:30:00 2025",
  "pages": 42,
  "file_size_bytes": 1048576,
  "pdf_version": "1.5"
}

get_document_outline

文書のアウトライン(目次/ブックマーク)を、構造化されたリストとして抽出します。

パラメーター:

名前型必須説明
filenamestringはいアウトラインを抽出する文書のファイル名

extract_tables

文書から表を構造化データとして抽出します。

パラメーター:

名前型必須説明
filenamestringはい表を抽出する文書のファイル名
pagenumberいいえ抽出元のページを指定します。すべてのページから抽出する場合は省略します。

extract_images

ドキュメントから画像を抽出し、base64 エンコードされたデータとして返します。1 回の呼び出しにつき、最大 10 枚の画像を返します。

パラメーター:

名前型必須説明
filenamestringはい画像を抽出するドキュメントのファイル名
pagenumberいいえ抽出する特定のページ。すべてのページから抽出する場合は省略します。

出力例:

[
  {
    "page": 1,
    "index": 0,
    "format": "jpeg",
    "width": 800,
    "height": 600,
    "data_base64": "/9j/4AAQSkZJRg..."
  }
]

read_url

URL からドキュメントをダウンロードし、テキストコンテンツを抽出します。ファイルサイズの上限は 50MB です。

パラメーター:

名前型必須説明
urlstringはいダウンロードして読み込むドキュメントの URL
pagesstringいいえ抽出するページ範囲。例:「1-5」。全文を抽出する場合は省略します。

入力例:

{
  "url": "https://example.com/report.pdf",
  "pages": "1-3"
}

ocr_document

tesseract を使用して PDF ドキュメントの OCR を強制的に実行します。スキャンされた PDF や画像ベースの PDF、または pdftotext が文字化けしたテキストを返す場合に便利です。tesseract と pdftoppm が必要です。

注: read_document は画像ベースの PDF を自動検出し、OCR に切り替えます。OCR を必ず実行したい場合や、英語以外の言語を指定する必要がある場合は、ocr_document を使用してください。

パラメーター:

名前型必須説明
filenamestringはいOCR を実行する PDF のファイル名
pagenumberいいえOCR を実行する特定のページ(1 始まり)。すべてのページを対象にする場合は省略します。
languagestringいいえTesseract の言語コード(デフォルト:eng)。spa、fra などを指定します。

入力例:

{
  "filename": "scanned-contract.pdf",
  "page": 1,
  "language": "spa"
}

read_image

OCR を使用して画像ファイルからテキストを抽出します。PNG、JPG、TIFF に対応しています。tesseract が必要です。

パラメーター:

名前型必須説明
filenamestringはい読み込む画像のファイル名(PNG、JPG、TIFF)
languagestringいいえTesseract の言語コード(デフォルト:eng)。

入力例:

{
  "filename": "receipt.png",
  "language": "eng"
}

🔒 セキュリティ

  • ディレクトリ制限 — DOCS_MCP_DIR 内のファイルのみアクセスできます
  • パストラバーサル防止 — ファイル名はサニタイズされ、../ は拒否されます
  • 拡張子フィルター — 対応形式のみを提供します
  • 読み取り専用 — 書き込み操作はありません
  • URL ダウンロード — 50MB の上限があり、Content-Type を検証し、一時ファイルは直ちに削除されます

🛠️ 開発

make build     # Build the binary
make test      # Run tests with race detector
make clean     # Remove build artifacts
プロジェクト構成
go-docs-mcp/
  main.go              # MCP server setup, 12 tool registrations
  internal/
    pdf/
      reader.go        # Document extraction, caching, search, metadata, images, OCR
  Makefile             # Build targets
  go.mod               # Module definition

🦙 Glama スコア

Glama の Go-Docs MCP


📄 ライセンス

MIT - Copyright 2026 Drolosoft


💛 サポート

コーヒーをごちそうしてください


Drolosoft — あったらいいなと思うツール

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。