PluginBench
MCP Server
Maintained
MIT

Project Gutenberg MCP MCP Server

io.github.bobbyhouse/project-gutenberg-mcp

What is the Project Gutenberg MCP MCP server?

Read Project Gutenberg books via MCP. Search, fetch metadata, and retrieve text in passages.

How to install Project Gutenberg MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • GUTENBERG_BASE_URL
    required

    Base URL of your Gutenberg mirror. Run the mirror from the mirror/ directory and point this at it. See the README for setup instructions.

  • GUTENBERG_TOOLS
    required

    Comma-separated list of tools to expose. Available: search_books, get_book_metadata, fetch_book_text, list_passages, get_passage

  • GUTENBERG_BOOK_ID

    Project 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_SIZE

    Size in bytes of each passage returned by get_passage.

  • GUTENBERG_LANGUAGE

    Default ISO 639-1 language code filter for search_books. Used when the caller omits the language parameter.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "project-gutenberg-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "roberthouse224/project-gutenberg-mcp:1.2.0",
        "run",
        "-i",
        "--rm"
      ],
      "env": {
        "GUTENBERG_BASE_URL": "<YOUR_GUTENBERG_BASE_URL>",
        "GUTENBERG_TOOLS": "<YOUR_GUTENBERG_TOOLS>",
        "GUTENBERG_BOOK_ID": "<YOUR_GUTENBERG_BOOK_ID>",
        "GUTENBERG_CHUNK_SIZE": "<YOUR_GUTENBERG_CHUNK_SIZE>",
        "GUTENBERG_LANGUAGE": "<YOUR_GUTENBERG_LANGUAGE>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "project-gutenberg-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "roberthouse224/project-gutenberg-mcp:1.2.0",
        "run",
        "-i",
        "--rm"
      ],
      "env": {
        "GUTENBERG_BASE_URL": "<YOUR_GUTENBERG_BASE_URL>",
        "GUTENBERG_TOOLS": "<YOUR_GUTENBERG_TOOLS>",
        "GUTENBERG_BOOK_ID": "<YOUR_GUTENBERG_BOOK_ID>",
        "GUTENBERG_CHUNK_SIZE": "<YOUR_GUTENBERG_CHUNK_SIZE>",
        "GUTENBERG_LANGUAGE": "<YOUR_GUTENBERG_LANGUAGE>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "project-gutenberg-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "roberthouse224/project-gutenberg-mcp:1.2.0",
        "run",
        "-i",
        "--rm"
      ],
      "env": {
        "GUTENBERG_BASE_URL": "<YOUR_GUTENBERG_BASE_URL>",
        "GUTENBERG_TOOLS": "<YOUR_GUTENBERG_TOOLS>",
        "GUTENBERG_BOOK_ID": "<YOUR_GUTENBERG_BOOK_ID>",
        "GUTENBERG_CHUNK_SIZE": "<YOUR_GUTENBERG_CHUNK_SIZE>",
        "GUTENBERG_LANGUAGE": "<YOUR_GUTENBERG_LANGUAGE>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "project-gutenberg-mcp": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "roberthouse224/project-gutenberg-mcp:1.2.0",
        "run",
        "-i",
        "--rm"
      ],
      "env": {
        "GUTENBERG_BASE_URL": "<YOUR_GUTENBERG_BASE_URL>",
        "GUTENBERG_TOOLS": "<YOUR_GUTENBERG_TOOLS>",
        "GUTENBERG_BOOK_ID": "<YOUR_GUTENBERG_BOOK_ID>",
        "GUTENBERG_CHUNK_SIZE": "<YOUR_GUTENBERG_CHUNK_SIZE>",
        "GUTENBERG_LANGUAGE": "<YOUR_GUTENBERG_LANGUAGE>"
      }
    }
  }
}
Claude Code
claude mcp add project-gutenberg-mcp --env GUTENBERG_BASE_URL=<YOUR_GUTENBERG_BASE_URL> --env GUTENBERG_TOOLS=<YOUR_GUTENBERG_TOOLS> --env GUTENBERG_BOOK_ID=<YOUR_GUTENBERG_BOOK_ID> --env GUTENBERG_CHUNK_SIZE=<YOUR_GUTENBERG_CHUNK_SIZE> --env GUTENBERG_LANGUAGE=<YOUR_GUTENBERG_LANGUAGE> -- docker run -i --rm roberthouse224/project-gutenberg-mcp:1.2.0 run -i --rm

Related MCP servers

A generic append-only log MCP server. Persist timestamped JSON entries and query them by recency.