mcpField
P
Project Gutenberg MCP

Project Gutenberg MCP

ローカル
github.comゲーム・エンタメ031 週間前に更新

Project Gutenberg MCP について

Project Gutenberg MCPは、自前で運用するProject Gutenbergミラーに接続するMCPサーバーです。書籍を検索・閲覧するMCPクライアント向けに、タイトルや著者での検索、書籍情報の取得、全文または分割テキストの取得を提供します。

主な機能

  1. 01タイトルまたは著者で書籍を検索
  2. 02書籍のメタデータを取得
  3. 03プレーンテキスト書籍をダウンロード
  4. 04固定サイズの分割一覧を取得
  5. 05指定した分割を取得

活用シーン

  1. 01特定の著者の書籍を探す
  2. 02書名や形式を確認
  3. 03書籍の全文を取得
  4. 04長い書籍を分割して読む

MCP 対応

書籍検索、メタデータ照会、全文ダウンロード、分割テキスト取得のツールをMCPクライアントに公開します。自前のProject Gutenbergミラーが必要で、リポジトリにはミラーサーバーも含まれています。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bobbyhouse-project-gutenberg": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GUTENBERG_BASE_URL",
"-e",
"GUTENBERG_TOOLS",
"-e",
"GUTENBERG_BOOK_ID",
"-e",
"GUTENBERG_CHUNK_SIZE",
"-e",
"GUTENBERG_LANGUAGE",
"roberthouse224/project-gutenberg-mcp:1.2.0"
],
"env": {
"GUTENBERG_BASE_URL": "<GUTENBERG_BASE_URL>",
"GUTENBERG_TOOLS": "<GUTENBERG_TOOLS>",
"GUTENBERG_BOOK_ID": "<GUTENBERG_BOOK_ID>",
"GUTENBERG_CHUNK_SIZE": "<GUTENBERG_CHUNK_SIZE>",
"GUTENBERG_LANGUAGE": "<GUTENBERG_LANGUAGE>"
}
}
}
}
起動コマンドdocker run -i --rm -e GUTENBERG_BASE_URL -e GUTENBERG_TOOLS -e GUTENBERG_BOOK_ID -e GUTENBERG_CHUNK_SIZE -e GUTENBERG_LANGUAGE roberthouse224/project-gutenberg-mcp:1.2.0
設定が必要な環境変数
GUTENBERG_BASE_URLBase URL of your Gutenberg mirror. Run the mirror from the mirror/ directory and point this at it. See the README for setup instructions.
GUTENBERG_TOOLSComma-separated list of tools to expose. Available: search_books, get_book_metadata, fetch_book_text, list_passages, get_passage
GUTENBERG_BOOK_IDProject Gutenberg book ID to use as the default for all tools. Find IDs via search_books. Example: 2680 for Meditations by Marcus Aurelius.
GUTENBERG_CHUNK_SIZESize in bytes of each passage returned by get_passage.
GUTENBERG_LANGUAGEDefault ISO 639-1 language code filter for search_books. Used when the caller omits the language parameter.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ociroberthouse224/project-gutenberg-mcp:1.2.0

ツール

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

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

詳細

project-gutenberg-mcp

MCP Registry Docker Hub

Project Gutenberg の書籍を読むための MCP サーバーです。

Project Gutenberg の利用規約

Project Gutenberg のロボットアクセス方針には、サイトは人間のユーザー専用であると記載されています。自動アクセスを行うと、IP アドレスがブロックされる場合があります。

この MCP サーバーを使用するには、ご自身でミラーを実行する必要があります。Project Gutenberg はミラーリングを明示的にサポートし、推奨しています。詳細については、ミラーリングガイドをご覧ください。

このリポジトリには、すぐに実行できるミラーサーバーが mirror/ ディレクトリに含まれています。

ミラーのセットアップ

ミラーサーバーは起動時に Project Gutenberg のカタログ(圧縮時で約 5 MB)をダウンロードし、初回アクセス時に書籍ファイルをローカルにキャッシュします。この MCP サーバーが想定する URL 構造を公開します。

Docker Compose(推奨)

ミラーと MCP サーバーを一緒に実行します。MCP サーバーはポート 8081 で HTTP により公開されます。

docker compose up

ミラーは http://localhost:8080、MCP サーバーは http://localhost:8081/mcp で利用できます。

ミラーのみ(stdio)

ミラーだけをビルドして起動し、その後、stdio 経由で MCP クライアントに接続します。

task build:mirror
task start:mirror

ミラーは http://localhost:8080 で実行されます。MCP クライアント設定の例(stdio):

{
  "mcpServers": {
    "project-gutenberg-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "GUTENBERG_BASE_URL=http://host.docker.internal:8080",
        "-e", "GUTENBERG_TOOLS=search_books,get_book_metadata,list_passages,get_passage",
        "roberthouse224/project-gutenberg-mcp"
      ]
    }
  }
}

設定

すべての設定は環境変数で行います。

変数必須説明
GUTENBERG_BASE_URLはいGutenberg ミラーのベース URL(上記の「ミラーのセットアップ」を参照)
GUTENBERG_TOOLSはい公開するツールのカンマ区切りリスト(下記を参照)
GUTENBERG_BOOK_IDいいえデフォルトとして使用する Project Gutenberg の書籍 ID
GUTENBERG_CHUNK_SIZEいいえ文章のバイト単位のサイズ(デフォルト:4096)
GUTENBERG_LANGUAGEいいえsearch_books のデフォルトの ISO 639-1 言語コード(デフォルト:en)
ツール
ツール説明
search_booksタイトルまたは著者で書籍を検索します
get_book_metadata書籍のメタデータ(タイトル、著者、形式)を取得します
fetch_book_text書籍のプレーンテキスト全文をダウンロードします
list_passages書籍の固定サイズの文章キーを一覧表示します
get_passageキーを指定して特定の文章を取得します

GUTENBERG_BOOK_ID が設定されている場合、書籍 ID を受け取るツールはその値をデフォルトとして使用します。設定されていない場合は、エージェントが最初に ID を見つけられるよう、ツールのリストに search_books を含めてください。

実行

stdio
GUTENBERG_BASE_URL=http://localhost:8080 \
GUTENBERG_BOOK_ID=2680 \
GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \
./project-gutenberg-mcp --transport stdio
HTTP
GUTENBERG_BASE_URL=http://localhost:8080 \
GUTENBERG_BOOK_ID=2680 \
GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \
./project-gutenberg-mcp --transport http --addr :8081

Docker

ビルド済みイメージの取得
# MCP server
docker pull roberthouse224/project-gutenberg-mcp:1.2.0

# Mirror
docker pull roberthouse224/gutenberg-mirror:1.2.0
ローカルでのビルド

どちらの Dockerfile も、セキュリティを強化するために Docker Hardened Images(DHI) を使用しています。ビルドには Docker Hub の認証が必要です。

docker login

続いて、ビルドします。

# Build MCP server
docker build -t project-gutenberg-mcp .

# Build mirror
docker build -f mirror/Dockerfile -t gutenberg-mirror ./mirror
MCP サーバーの実行
# HTTP
docker run -p 8081:8081 \
  -e GUTENBERG_BASE_URL=http://host.docker.internal:8080 \
  -e GUTENBERG_BOOK_ID=2680 \
  -e GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \
  roberthouse224/project-gutenberg-mcp --transport http --addr :8081

# stdio
docker run -i --rm \
  -e GUTENBERG_BASE_URL=http://host.docker.internal:8080 \
  -e GUTENBERG_BOOK_ID=2680 \
  -e GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage \
  roberthouse224/project-gutenberg-mcp
ミラーの実行
# Create a named volume for cache persistence
docker volume create gutenberg-cache

# Run mirror (serves on http://localhost:8080)
docker run -d \
  -p 8080:8080 \
  -v gutenberg-cache:/data \
  --name gutenberg-mirror \
  roberthouse224/gutenberg-mirror:1.2.0

マルチアーキテクチャビルド

どちらのイメージも linux/amd64 および linux/arm64 アーキテクチャに対応しています。マルチアーキテクチャイメージをビルドしてプッシュするには:

# Create a builder instance
docker buildx create --name multiarch --use

# Build and push MCP server
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t roberthouse224/project-gutenberg-mcp:1.2.0 \
  -t roberthouse224/project-gutenberg-mcp:latest \
  --push \
  .

# Build and push mirror
docker buildx build \
  --platform linux/amd64,linux/arm64 \
  -t roberthouse224/gutenberg-mirror:1.2.0 \
  -t roberthouse224/gutenberg-mirror:latest \
  --push \
  -f mirror/Dockerfile \
  ./mirror

MCP クライアント設定(stdio)

{
  "mcpServers": {
    "project-gutenberg-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "GUTENBERG_BASE_URL=http://host.docker.internal:8080",
        "-e", "GUTENBERG_BOOK_ID=2680",
        "-e", "GUTENBERG_TOOLS=get_book_metadata,list_passages,get_passage",
        "roberthouse224/project-gutenberg-mcp:1.2.0"
      ]
    }
  }
}

ローカルビルド(Docker 以外)

task build         # outputs to build/project-gutenberg-mcp
task build:mirror  # outputs to mirror/build/mirror
task test

書籍 ID

便利な ID の例:

書籍ID
『自省録』— Marcus Aurelius2680
『国家』— Plato1497
『ツァラトゥストラはこう語った』— Nietzsche1998
『白鯨』— Melville2701
『高慢と偏見』— Austen1342

コメント

MCP は初めてですか?

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

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