Flipbook
БесплатноНе проверенEmbeddable and SEO-optimized presentation viewer built for humans and AI agent workflows
Описание
Embeddable and SEO-optimized presentation viewer built for humans and AI agent workflows
README
A lightweight, self-hosted flipbook generator. Upload PowerPoint or PDF files and get beautiful 3D page-curl flipbooks hosted as SEO-optimized webpages, or embeddable in any site via iframe.
Features
- Upload & convert PowerPoint (.pptx, .ppt) and PDF files to interactive flipbooks
- Import from Google Slides via public share URL
- 3D page-curl viewer powered by StPageFlip with keyboard navigation, fullscreen, and deep-linking
- SEO-optimized pages with full slide text rendered as hidden semantic HTML, Open Graph tags, Twitter Cards, JSON-LD structured data, and canonical URLs
- Embeddable via iframe with a single line of HTML, or host directly as standalone pages
- Grid view for browsing all slides at a glance
- Full-text search across slide content
- MCP server for creating flipbooks from AI agent workflows (Claude Code, Cowork, etc.)
- Admin dashboard with upload progress tracking, thumbnail previews, and embed code generation
- Password-protected admin with bcrypt-hashed credentials and session-based auth
- REST API with required API key authentication
- Background conversion with real-time progress updates
- No build tools required — plain Go templates, vanilla JS, no npm/webpack
Tech Stack
| Component | Technology |
|---|---|
| Backend | Go + chi router |
| Database | MongoDB Atlas |
| Conversion | LibreOffice headless (PPTX/PPT to PDF) + pdftoppm/poppler (PDF to PNG) |
| Text extraction | pdftotext (poppler) for search + SEO |
| Viewer | StPageFlip (vendored, MIT license) |
| Frontend | Server-rendered Go templates, vanilla CSS/JS |
Prerequisites
- Go 1.21+
- LibreOffice (for PowerPoint conversion)
- Poppler (provides
pdftoppmandpdftotext) - MongoDB (Atlas or local)
macOS
brew install poppler
brew install --cask libreoffice
Ubuntu/Debian
sudo apt install poppler-utils libreoffice-impress
Quick Start
# Clone the repo
git clone https://github.com/jonradoff/flipbook.git
cd flipbook
# Copy and edit config
cp config.example.yaml config.dev.yaml
# Edit config.dev.yaml with your MongoDB URI
# Download frontend dependencies
make setup
# Set an admin password
make set-password
# Start the server
make run
The server starts at http://localhost:8080.
Configuration
Flipbook loads configuration from (in order of priority):
- Environment variables (prefixed with
FLIPBOOK_) config.dev.yaml(for development, gitignored)config.yaml(for production)
See config.example.yaml for all available options.
Key settings:
| Setting | Env Variable | Default | Description |
|---|---|---|---|
port |
FLIPBOOK_PORT |
8080 |
Server port |
base_url |
FLIPBOOK_BASE_URL |
http://localhost:8080 |
Public URL |
mongo_uri |
FLIPBOOK_MONGO_URI |
— | MongoDB connection string |
session_secret |
FLIPBOOK_SESSION_SECRET |
auto-generated | Session signing key |
api_key |
FLIPBOOK_API_KEY |
auto-generated | Bearer token for API/MCP auth |
Usage
Upload a file
- Go to http://localhost:8080/admin
- Log in with your admin password
- Click Upload and drag in a
.pptx,.ppt, or.pdffile - Watch the real-time progress tracker as it converts
- Click View Flipbook when ready
Import from Google Slides
- In Google Slides, click Share and set access to "Anyone with the link"
- Copy the URL
- In the admin, switch to the Import from URL tab
- Paste the Google Slides URL and click Import & Convert
Viewing flipbooks
Each flipbook gets its own SEO-optimized page at /v/{slug}. These are standalone pages suitable for direct linking, sharing on social media, or indexing by search engines. The page includes:
- Interactive 3D page-curl viewer
- Full slide text rendered as hidden semantic HTML for search engine crawlers
- Open Graph and Twitter Card meta tags with the first slide as the preview image
- JSON-LD structured data (
PresentationDigitalDocument) - Canonical URL for proper indexing
Embedding in a webpage
If you prefer to embed a flipbook in an existing page, use the iframe embed code from the admin detail page:
<iframe src="https://your-domain.com/embed/my-presentation"
width="800" height="600" frameborder="0" allowfullscreen
style="border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);">
</iframe>
The /embed/{slug} endpoint sets permissive frame headers (X-Frame-Options: ALLOWALL) so it can be embedded on any domain.
API
All API routes require a bearer token. The API key is logged at server startup (auto-generated if not set in config).
# List all flipbooks
curl -H "Authorization: Bearer YOUR_API_KEY" http://localhost:8080/api/flipbooks
# Upload a file
curl -H "Authorization: Bearer YOUR_API_KEY" -X POST -F "[email protected]" http://localhost:8080/api/flipbooks
# Import from Google Slides
curl -H "Authorization: Bearer YOUR_API_KEY" -X POST \
-F "url=https://docs.google.com/presentation/d/PRES_ID/edit" \
http://localhost:8080/api/flipbooks/import
# Get flipbook details
curl -H "Authorization: Bearer YOUR_API_KEY" http://localhost:8080/api/flipbooks/{id}
# Check conversion status (no auth required)
curl http://localhost:8080/api/flipbooks/{id}/status
# Delete a flipbook
curl -H "Authorization: Bearer YOUR_API_KEY" -X DELETE http://localhost:8080/api/flipbooks/{id}
MCP (AI Agent Integration)
The built-in MCP server lets AI agents create and manage flipbooks programmatically. It communicates via JSON-RPC 2.0 over stdin/stdout and authenticates to the API using the same API key from config.
# Start the MCP server (the web server must be running separately)
./flipbook mcp
Configure in Claude Code (~/.claude/settings.json) or any MCP-compatible tool:
{
"mcpServers": {
"flipbook": {
"command": "/path/to/flipbook",
"args": ["mcp"]
}
}
}
Available MCP tools:
| Tool | Description |
|---|---|
list_flipbooks |
List all flipbooks with status and URLs |
create_flipbook |
Upload a file (base64), wait for conversion |
import_google_slides |
Import from Google Slides URL, wait for conversion |
get_flipbook |
Get flipbook details, page URLs, embed code |
get_flipbook_status |
Check conversion status |
delete_flipbook |
Delete a flipbook and its files |
Project Structure
flipbook/
├── main.go # Entry point, routing, CLI commands
├── internal/
│ ├── auth/auth.go # Password auth + session management
│ ├── config/config.go # YAML + env config loading
│ ├── converter/ # PPTX→PDF→PNG pipeline + text extraction
│ ├── database/database.go # MongoDB operations
│ ├── handlers/ # HTTP handlers (admin, API, viewer, embed)
│ ├── mcp/server.go # MCP server (JSON-RPC 2.0 over stdio)
│ ├── models/flipbook.go # Data models
│ ├── storage/storage.go # Filesystem storage
│ └── worker/worker.go # Background conversion queue
├── web/
│ ├── templates/ # Go HTML templates
│ └── static/ # CSS, JS, vendored libraries
├── config.example.yaml # Example configuration
└── data/ # Runtime data (gitignored)
License
MIT - Copyright (c) 2026 Metavert LLC
Установка Flipbook
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/jonradoff/flipbookFAQ
Flipbook MCP бесплатный?
Да, Flipbook MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Flipbook?
Нет, Flipbook работает без API-ключей и переменных окружения.
Flipbook — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Flipbook в Claude Desktop, Claude Code или Cursor?
Открой Flipbook на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Flipbook with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
