<!-- HERO -->
<section id="hero">
<div class="hero-glow"></div>
<div class="container">
<div class="hero-badge">
<svg width="11" height="13" viewBox="0 0 11 13" fill="#f97316" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 0.5L0.5 7H5L3.5 12.5L10.5 5.5H6L8 0.5H6.5Z"/></svg> The branded document layer for multi-tenant SaaS
</div>
<h1>
Ship documents branded for<br>
<span class="accent">every customer account</span><br>
your SaaS serves.
</h1>
<p class="hero-sub">
DocRocket is the document layer multi-tenant SaaS products embed once. Auto-extract each customer's brand from a URL, render proposals, reports, QBRs, and PDFs through an extensible design framework, and keep every customer account fully isolated — all over a single MCP connection.
</p>
<div style="font-size: 0.8rem; color: var(--text-dim); margin-bottom: 2rem;">
MCP is the open protocol that lets AI agents use external tools. DocRocket plugs in as a tool — no code integration required.
</div>
<div class="hero-actions">
<div class="hero-cta-primary-wrap">
<a href="https://app.docrocket.ai/signup" class="btn btn-primary btn-lg">Start 30-day free trial</a>
<span class="hero-cta-reassurance" aria-label="No credit card required to start">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M4 9h16v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V9Z" stroke="currentColor" stroke-width="1.75" stroke-linejoin="round"/><path d="M7 9V7a5 5 0 0 1 10 0v2" stroke="currentColor" stroke-width="1.75" stroke-linecap="round"/></svg>
No credit card required
</span>
</div>
<a href="/documentation/" class="btn btn-outline btn-lg">View API docs →</a>
</div>
<p class="hero-pricing-hint">Plans, limits, and trial details: <a href="/pricing/">full pricing</a> — no surprises.</p>
<!-- CODE WINDOW -->
<div class="code-window">
<div class="code-window-bar">
<span class="code-dot dot-red"></span>
<span class="code-dot dot-yellow"></span>
<span class="code-dot dot-green"></span>
<span class="code-window-title">docrocket — generate_document</span>
</div>
<div class="code-tabs">
<div class="code-tab active" onclick="switchTab(this, 'claude')">Claude</div>
<div class="code-tab" onclick="switchTab(this, 'chatgpt')">ChatGPT</div>
<div class="code-tab" onclick="switchTab(this, 'cursor')">Cursor</div>
<div class="code-tab" onclick="switchTab(this, 'agent')">Custom Agent</div>
</div>
<div class="code-body">
<div class="code-panel active" id="tab-claude"><pre><span class="cm"># 1. In Claude: Settings → Connectors → Add custom connector</span>
name: Docrocket url: https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp
# 2. Claude walks you through OAuth sign-in to your DocRocket account. # No API keys to copy — auth is handled for you.
# 3. Claude can now generate branded docs autonomously:
"Generate a proposal for Acme Corporation"
# → Claude calls docrocket_brand_from_url("https://acme.com") # → Claude calls docrocket_generate_document(...) # → Returns: docs.docrocket.ai/d/abc123
<div class="code-panel" id="tab-chatgpt"><pre><span class="cm"># 1. In ChatGPT (Pro/Business): Settings → Connectors → Add</span>
name: Docrocket server_url: https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp auth: OAuth # sign in to DocRocket when prompted
# 2. Available tools exposed to the model: tools:
- docrocket_brand_from_url
- docrocket_list_brands
- docrocket_generate_document
- docrocket_list_templates
# → Model generates branded PDFs on demand
<div class="code-panel" id="tab-cursor"><pre><span class="cm"># 1. In Cursor: Settings → MCP → Add new MCP server</span>
name: Docrocket url: https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp
# Or paste this into ~/.cursor/mcp.json: { "mcpServers": { "Docrocket": { "url": "https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp" } } }
# Cursor handles the OAuth handshake on first use.
<div class="code-panel" id="tab-agent"><pre><span class="cm"># Any MCP-compatible agent framework works.</span>
# Example using LangChain / LlamaIndex / CrewAI:
from mcp import MCPClient
client = MCPClient( "https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp", token=DR_OAUTH_TOKEN, )
# Extract brand from customer's website brand = client.call("docrocket_brand_from_url", url="https://acme.com")
# Generate document — agent decides content doc = client.call("docrocket_generate_document", brand_id=brand.id, template="proposal", content={ ... })
print(doc.url) # docs.docrocket.ai/d/abc123
</div>
</div>
</div>
</section>
<!-- OVERVIEW VIDEO -->
<section id="overview-video" aria-labelledby="overview-video-heading">
<div class="container">
<div class="overview-video-header">
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3" aria-hidden="true"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Overview</div>
<h2 id="overview-video-heading">See DocRocket in action</h2>
<p class="section-desc">A quick tour of how AI agents generate fully-branded documents through MCP. Tap to expand and unmute.</p>
</div>
<div class="video-wrap" id="overview-video-wrap">
<div class="video-frame">
<div class="video-aspect">
<iframe
id="overview-vimeo"
src="https://player.vimeo.com/video/1193739228?h=60e81f8cff&badge=0&autopause=0&player_id=0&app_id=58479&autoplay=1&muted=1&loop=1&background=1&texttrack=en"
allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share"
referrerpolicy="strict-origin-when-cross-origin"
title="DocRocket Overview"></iframe>
<button class="video-overlay" type="button" id="overview-vimeo-overlay" aria-label="Expand and play video with sound">
<span class="video-overlay-pill">
<svg width="12" height="12" viewBox="0 0 12 12" aria-hidden="true"><path d="M2 1.5v9l8-4.5L2 1.5z" fill="#fff"/></svg>
Tap to expand & unmute
</span>
</button>
</div>
</div>
</div>
</div>
</section>
<!-- STATS BAR -->
<div class="stats-bar">
<div class="container">
<div class="stats-inner">
<div class="stat">
<div class="stat-num"><<span>2s</span></div>
<div class="stat-label">Average generation time</div>
</div>
<div class="stat">
<div class="stat-num"><span>20+</span></div>
<div class="stat-label">Document templates</div>
</div>
<div class="stat">
<div class="stat-num"><span>1</span> URL</div>
<div class="stat-label">To auto-extract any brand</div>
</div>
<div class="stat">
<div class="stat-num"><span>MCP</span></div>
<div class="stat-label">Native AI agent support</div>
</div>
</div>
</div>
</div>
<!-- OUTPUT: same template, two brands -->
<section id="brand-output" aria-labelledby="brand-output-heading">
<div class="container">
<div class="brand-output-header">
<div class="section-label" style="justify-content: center;"><svg width="14" height="3" viewBox="0 0 14 3" aria-hidden="true"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Output</div>
<h2 id="brand-output-heading">Same template. Two customer brands.</h2>
<p class="section-desc">One generation pipeline — Acme Corp's navy and accent vs. GreenLeaf Inc's green system. Your users get PDFs and share links that look like their own brand team shipped them.</p>
</div>
<div class="brand-output-grid">
<div>
<div class="brand-doc-label">Acme Corp · brand_id</div>
<div class="brand-doc-frame">
<div style="background: linear-gradient(135deg, #1e3a5f, #0f2540); padding: 1rem 1.15rem; display: flex; align-items: center; gap: 10px;">
<div style="width: 26px; height: 26px; background: white; border-radius: 4px; display: flex; align-items: center; justify-content: center;"><svg width="11" height="13" viewBox="0 0 12 14" fill="#1e3a5f"><path d="M7 0.5L0.5 7.5H5.5L4 13.5L11.5 6H6.5L8.5 0.5H7Z"/></svg></div>
<div>
<div style="color: #fff; font-size: 0.82rem; font-weight: 700;">Acme Corp</div>
<div style="color: rgba(255,255,255,0.55); font-size: 0.68rem;">Q2 2026 Executive QBR</div>
</div>
</div>
<div class="brand-doc-body">
<div class="brand-doc-meta">template: qbr · PDF + share URL</div>
<div class="brand-doc-lines">
<div class="brand-doc-line" style="width: 78%; background: rgba(30,58,95,0.35);"></div>
<div class="brand-doc-line" style="width: 92%;"></div>
<div class="brand-doc-line" style="width: 64%;"></div>
<div class="brand-doc-line" style="width: 88%; background: rgba(192,57,43,0.25);"></div>
<div class="brand-doc-line" style="width: 72%;"></div>
</div>
</div>
</div>
</div>
<div>
<div class="brand-doc-label">GreenLeaf Inc · brand_id</div>
<div class="brand-doc-frame">
<div style="background: linear-gradient(135deg, #14532d, #0c2717); padding: 1rem 1.15rem; display: flex; align-items: center; gap: 10px;">
<div style="width: 26px; height: 26px; background: white; border-radius: 4px; display: flex; align-items: center; justify-content: center;"><svg width="12" height="12" viewBox="0 0 24 24" fill="#14532d"><path d="M17 8C8 10 5.9 16.17 3.82 19.5A12.93 12.93 0 0 0 12 22C16.97 22 21 17.97 21 13 21 10.34 19.72 8 17 8Z"/><path d="M7 22C7 22 7.5 18 11 15" stroke="white" stroke-width="2" stroke-linecap="round" fill="none"/></svg></div>
<div>
<div style="color: #fff; font-size: 0.82rem; font-weight: 700;">GreenLeaf Inc</div>
<div style="color: rgba(255,255,255,0.55); font-size: 0.68rem;">Q2 2026 Executive QBR</div>
</div>
</div>
<div class="brand-doc-body">
<div class="brand-doc-meta">template: qbr · PDF + share URL</div>
<div class="brand-doc-lines">
<div class="brand-doc-line" style="width: 78%; background: rgba(20,83,45,0.35);"></div>
<div class="brand-doc-line" style="width: 92%;"></div>
<div class="brand-doc-line" style="width: 64%;"></div>
<div class="brand-doc-line" style="width: 88%; background: rgba(39,174,96,0.28);"></div>
<div class="brand-doc-line" style="width: 72%;"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- HOW IT WORKS -->
<section id="how">
<div class="container">
<div class="how-header">
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> How it works</div>
<h2>Three steps to branded documents at scale</h2>
<p class="section-desc">DocRocket handles the brand extraction, design, and rendering — you just send content.</p>
</div>
<div class="steps">
<div class="step">
<div class="step-num">STEP 01</div>
<div class="step-icon orange"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="1.5" stroke-linecap="round"><circle cx="12" cy="12" r="9.5"/><path d="M12 2.5C10 6 9 9 9 12s1 6 3 9.5"/><path d="M12 2.5C14 6 15 9 15 12s-1 6-3 9.5"/><line x1="2.5" y1="12" x2="21.5" y2="12"/><line x1="4" y1="7" x2="20" y2="7"/><line x1="4" y1="17" x2="20" y2="17"/></svg></div>
<h3>Extract brand from any URL</h3>
<p>Point DocRocket at your customer's website. We automatically extract logo, colors, typography, and brand identity — no manual setup needed.</p>
<div class="step-code">
<span class="fn">brand_from_url</span>(<span class="str">"https://acme.com"</span>)<br>
<span class="cm">→ logo, colors, fonts, name</span>
</div>
</div>
<div class="step">
<div class="step-num">STEP 02</div>
<div class="step-icon blue"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L14.5 9H22L16 13.5L18.5 21L12 16.5L5.5 21L8 13.5L2 9H9.5L12 2Z"/></svg></div>
<h3>Let your product generate documents</h3>
<p>Connect DocRocket via MCP from your app or agent. Your integration passes content and a brand — DocRocket handles layout, theming, PDF, and share URL.</p>
<div class="step-code">
<span class="cm"># Claude calls automatically:</span><br>
<span class="fn">docrocket_generate_document</span>({<br>
<span class="key">template</span>: <span class="str">"proposal"</span>,<br>
<span class="key">brand_id</span>: <span class="str">"brand_x82"</span><br>
})
</div>
</div>
<div class="step">
<div class="step-num">STEP 03</div>
<div class="step-icon green"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2" fill="rgba(34,197,94,0.15)"/></svg></div>
<h3>Deliver to your customers</h3>
<p>Get back a shareable URL and PDF download link. Embed in your app, email it, or display inline — documents are fully branded for each customer.</p>
<div class="step-code">
<span class="key">url</span>: <span class="str">docs.docrocket.ai/d/abc</span><br>
<span class="key">pdf</span>: <span class="str">docs.docrocket.ai/d/abc.pdf</span><br>
<span class="cm">→ Customer sees their brand</span>
</div>
</div>
</div>
</div>
</section>
<!-- FEATURES -->
<section id="features">
<div class="container">
<div class="features-header">
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Features</div>
<h2>Built for SaaS that ship documents<br>on behalf of every customer account.</h2>
<p class="section-desc">Three things every multi-tenant SaaS needs to brand documents per customer — and that DocRocket gives you out of the box: automatic brand extraction, an extensible design framework, and strict customer-account isolation.</p>
</div>
<div class="features-grid">
<div class="feature-card" style="border-top: 2px solid var(--accent);">
<div class="feature-icon fi-green"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></svg></div>
<h3>Customer-Account Multi-Tenant Segmentation</h3>
<p>Every customer of your SaaS gets its own isolated brand bundle behind a <code class="tag">brand_id</code> — assets, palettes, fonts, components, and templates are scoped per account. Your backend passes the brand_id on every generate call and DocRocket guarantees tenant A never renders with tenant B's theme. Scale from 1 to 10,000 customer brands without routing logic in your codebase.</p>
<span class="feature-tag">Per-customer isolation</span>
</div>
<div class="feature-card" style="border-top: 2px solid var(--accent);">
<div class="feature-icon fi-orange"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9.5"/><circle cx="8" cy="10.5" r="1.5" fill="#f97316" stroke="none"/><circle cx="12" cy="7" r="1.5" fill="#f97316" stroke="none"/><circle cx="16" cy="10.5" r="1.5" fill="#f97316" stroke="none"/><path d="M8 13.5a4 4 0 0 0 8 0" stroke="#f97316" stroke-width="1" fill="none"/></svg></div>
<h3>Automatic Brand Extraction Tools</h3>
<p>Onboard a new customer with a single URL. <code class="tag">docrocket_brand_from_url</code> crawls the customer's site and extracts logo, primary and secondary colors, typography, and brand voice automatically — no design questionnaire, no PSD upload, no manual hex codes. Every document generated for that customer is on-brand from the first render.</p>
<span class="feature-tag">docrocket_brand_from_url</span>
</div>
<div class="feature-card" style="border-top: 2px solid var(--accent);">
<div class="feature-icon fi-purple"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#a855f7" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><path d="M17 14v3m0 0v3m0-3h-3m3 0h3"/></svg></div>
<h3>Extensible Design Framework</h3>
<p>Start with 20+ production-grade templates and a tokenized component library, then extend them: define your own components, override brand tokens per customer, or build entirely custom layouts in the web app and invoke them by name from MCP. Every template inherits each customer brand's colors, fonts, and logo — so one design change cascades across all tenants instantly.</p>
<span class="feature-tag">Templates · Components · Tokens</span>
</div>
<div class="feature-card">
<div class="feature-icon fi-blue"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><path d="M17 14v3m0 0v3m0-3h-3m3 0h3"/></svg></div>
<h3>Custom Components</h3>
<p>Define your product's reusable blocks once — pricing tables, signature sections, legal disclaimers. Your agent drops them into any document by name. Every customer sees their brand, every time.</p>
<span class="feature-tag">docrocket_list_components</span>
</div>
<div class="feature-card">
<div class="feature-icon fi-blue"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#3b82f6" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="8" y1="13" x2="16" y2="13"/><line x1="8" y1="17" x2="16" y2="17"/><line x1="8" y1="9" x2="10" y2="9"/></svg></div>
<h3>20+ Document Templates</h3>
<p>Proposals, reports, contracts, invoices, QBRs, case studies, one-pagers — all professionally designed and auto-adapted to each customer's brand colors and logo.</p>
<span class="feature-tag">docrocket_list_templates</span>
</div>
<div class="feature-card">
<div class="feature-icon fi-purple"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#a855f7" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="8" y="8" width="13" height="13" rx="2"/><path d="M4 16V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></div>
<h3>Custom Templates & Layouts</h3>
<p>When the library template is not enough, build your own in the web app — structure, sections, and brand slots — then call it by name from MCP like any built-in template. Need something bespoke? <a href="mailto:hello@docrocket.ai" style="color: var(--accent); text-decoration: none;">Talk to us</a> about Enterprise layout support.</p>
<span class="feature-tag">app.docrocket.ai / Templates</span>
</div>
<div class="feature-card">
<div class="feature-icon fi-orange"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="12" y1="18" x2="12" y2="12"/><polyline points="9 15 12 18 15 15"/></svg></div>
<h3>PDF + Shareable Web URL</h3>
<p>Every document gets a permanent PDF and a shareable web link, both generated in under 2 seconds. Embed inline, email it, or just hand the URL to your user. No hosting required.</p>
<span class="feature-tag">pdf_url + share_url</span>
</div>
</div>
</div>
</section>
<!-- USE CASES -->
<section id="usecases">
<div class="container">
<div class="usecases-layout">
<div>
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Use Cases</div>
<h2>Built for multi-tenant SaaS that ships customer-branded documents</h2>
<p class="section-desc">If your product serves many customer accounts and each one expects documents that look like their own brand team made them, DocRocket is the layer you embed.</p>
<div class="usecase-list">
<div class="usecase-item">
<div class="usecase-dot"></div>
<div>
<h4>Vertical SaaS & B2B2C Platforms</h4>
<p>Onboard a new customer with one URL, get a fully branded asset bundle. Every document your platform issues for that account — proposals, statements, reports, exports — uses their logo, colors, and typography automatically.</p>
</div>
</div>
<div class="usecase-item">
<div class="usecase-dot"></div>
<div>
<h4>Customer Success & QBR Platforms</h4>
<p>Programmatically issue QBRs, renewal decks, and exec summaries branded per customer account — same content pipeline, hundreds of distinct brands, zero manual decks.</p>
</div>
</div>
<div class="usecase-item">
<div class="usecase-dot"></div>
<div>
<h4>Sales & CRM Automation</h4>
<p>Your CRM or sales workflow generates customer-branded proposals at the push of a button — same template, correct logo and colors per account, isolated by <code class="tag">brand_id</code>.</p>
</div>
</div>
<div class="usecase-item">
<div class="usecase-dot"></div>
<div>
<h4><a href="/ai-agents/" style="color: inherit;">AI Agents & AI-Native SaaS</a></h4>
<p>Let your model generate branded docs for end users over MCP. Brand extraction, design framework, and tenant isolation are handled — your agent just passes content and a <code class="tag">brand_id</code>. <a href="/ai-agents/">Read the AI agents overview →</a></p>
</div>
</div>
</div>
</div>
<!-- Visual: MCP → brand_id → output -->
<div class="usecase-visual">
<div style="font-family: var(--mono); font-size: 0.78rem; color: var(--text-dim); margin-bottom: 1rem;">// Your product → DocRocket</div>
<div style="border: 1px solid var(--border); border-radius: 8px; padding: 1.1rem 1.25rem; background: var(--bg); font-family: var(--mono); font-size: 0.76rem; line-height: 1.85; color: var(--text-muted);">
<div><span class="key">OAuth</span> <span class="op">→</span> workspace (your team)</div>
<div><span class="fn">generate_document</span>({</div>
<div style="padding-left: 1rem;"><span class="key">brand_id</span>: <span class="str">"acme"</span>,</div>
<div style="padding-left: 1rem;"><span class="key">template</span>: <span class="str">"qbr"</span>,</div>
<div style="padding-left: 1rem;"><span class="key">content</span>: { ... }</div>
<div>}) <span class="op">→</span> <span class="url">pdf_url</span> + <span class="url">share_url</span></div>
</div>
<div style="margin-top: 1rem; font-size: 0.8rem; color: var(--text-muted); line-height: 1.55;">Each <code class="tag">brand_id</code> resolves to an isolated asset bundle — tenant A never renders tenant B's theme.</div>
</div>
</div>
</div>
</section>
<!-- DEVELOPER SECTION -->
<section id="developer">
<div class="container">
<div class="dev-layout">
<div>
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> For Developers</div>
<h2>One MCP endpoint.<br>Any AI agent.</h2>
<p class="section-desc">DocRocket is AI-native by design. There's no REST API to maintain, no SDK to install — just connect your agent and let it work.</p>
<p style="margin-top: 1rem; font-size: 0.88rem; color: var(--text-muted); line-height: 1.65; max-width: 42rem;">Multi-tenant flow: your team signs in with OAuth once per DocRocket <strong style="color: var(--text);">workspace</strong>. Every tool call includes a <code class="tag">brand_id</code> (or resolves from your saved brands). DocRocket maps that ID to exactly one brand asset bundle — so two of your end customers hitting your product never see each other's colors, logos, or typography, even through the same MCP connection.</p>
<div style="margin-top: 2rem; display: flex; flex-direction: column; gap: 1rem;">
<div style="display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm);">
<div style="width: 36px; height: 36px; background: var(--accent-dim); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#f97316" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></div>
<div>
<h4 style="font-size: 0.9rem; font-weight: 700; color: #fff; margin-bottom: 0.25rem;">Single connection point</h4>
<p style="font-size: 0.82rem; color: var(--text-muted);">Point any MCP-compatible agent at <code class="tag">mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</code> and sign in with OAuth. No library installs. No version pinning. No breaking changes.</p>
</div>
</div>
<div style="display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm);">
<div style="width: 36px; height: 36px; background: var(--purple-dim); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#a855f7" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="11" r="3"/><circle cx="12" cy="4" r="1.5"/><circle cx="4.5" cy="16" r="1.5"/><circle cx="19.5" cy="16" r="1.5"/><line x1="12" y1="5.5" x2="12" y2="8"/><line x1="5.8" y1="15" x2="9.2" y2="13.1"/><line x1="18.2" y1="15" x2="14.8" y2="13.1"/></svg></div>
<div>
<h4 style="font-size: 0.9rem; font-weight: 700; color: #fff; margin-bottom: 0.25rem;">Works with every major model</h4>
<p style="font-size: 0.82rem; color: var(--text-muted);">Claude, ChatGPT, Gemini, LlamaIndex, LangChain, CrewAI — if it supports MCP tool calls, it works with DocRocket out of the box.</p>
</div>
</div>
<div style="display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm);">
<div style="width: 36px; height: 36px; background: var(--green-dim); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0;"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#22c55e" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="6" x2="20" y2="6"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="18" x2="20" y2="18"/><circle cx="8" cy="6" r="2.2" fill="#22c55e" stroke="none"/><circle cx="16" cy="12" r="2.2" fill="#22c55e" stroke="none"/><circle cx="10" cy="18" r="2.2" fill="#22c55e" stroke="none"/></svg></div>
<div>
<h4 style="font-size: 0.9rem; font-weight: 700; color: #fff; margin-bottom: 0.25rem;">Manage brands in the web app</h4>
<p style="font-size: 0.82rem; color: var(--text-muted);">Set up customer brands once in <code class="tag">app.docrocket.ai</code> — your AI references them by name or ID from then on. No agent-side brand logic needed.</p>
</div>
</div>
</div>
</div>
<div>
<div style="font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 0.75rem;">MCP Connection</div>
<div class="endpoint-card">
<div class="endpoint-row">
<span class="method-badge method-mcp">MCP</span>
<span class="endpoint-path">mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</span>
<span class="endpoint-desc">Connect your agent here</span>
</div>
</div>
<div style="margin-top: 1.5rem;">
<div style="font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 0.75rem;">Available Tools</div>
<div class="endpoint-card">
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_brand_from_url</span>
<span class="endpoint-desc">Extract brand from site</span>
</div>
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_list_brands</span>
<span class="endpoint-desc">List saved brands</span>
</div>
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_list_templates</span>
<span class="endpoint-desc">List available templates</span>
</div>
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_list_components</span>
<span class="endpoint-desc">List custom components</span>
</div>
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_generate_document</span>
<span class="endpoint-desc">Generate a document</span>
</div>
<div class="endpoint-row">
<span class="method-badge method-mcp">TOOL</span>
<span class="endpoint-path">docrocket_get_document</span>
<span class="endpoint-desc">Fetch document + URLs</span>
</div>
</div>
</div>
<div style="margin-top: 1.5rem;">
<div style="font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 0.75rem;">Compatible Agents</div>
<div style="display: flex; flex-wrap: wrap; gap: 8px;">
<span class="tag">Claude</span>
<span class="tag">ChatGPT</span>
<span class="tag">Gemini</span>
<span class="tag">LangChain</span>
<span class="tag">LlamaIndex</span>
<span class="tag">CrewAI</span>
<span class="tag">AutoGen</span>
<span class="tag">Any MCP client</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- GETTING STARTED -->
<section id="getstarted" style="background: var(--bg-card); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);">
<div class="container">
<div class="split-2">
<div>
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Get Started</div>
<h2>Up and running in under 5 minutes</h2>
<p class="section-desc">No design skills. OAuth sign-in and a customer URL — no API keys to paste.</p>
</div>
<div>
<div class="gs-steps">
<div class="gs-step">
<div class="gs-num">1</div>
<div class="gs-content">
<h3>Start your 30-day free trial</h3>
<p>Sign up at app.docrocket.ai with just your email — no credit card required. Full Pro-level access for 30 days.</p>
</div>
</div>
<div class="gs-step">
<div class="gs-num">2</div>
<div class="gs-content">
<h3>Add the connector to your AI</h3>
<p>No API keys to copy — DocRocket uses OAuth, so your agent prompts you to sign in once.</p>
<div class="gs-code"><span class="key">name</span>: <span class="val">Docrocket</span><br><span class="key">url</span>: <span class="url">https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</span></div>
</div>
</div>
<div class="gs-step">
<div class="gs-num">3</div>
<div class="gs-content">
<h3>Connect your AI agent</h3>
<p>Add the MCP server to your agent. No install required — just a name and URL, then sign in with OAuth.</p>
<div class="gs-code" style="margin-bottom: 8px;"><span class="cm">Claude: Settings → Connectors → Add custom connector</span><br><span class="key">name</span>: <span class="val">Docrocket</span> <span class="key">url</span>: <span class="url">https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</span></div>
<div class="gs-code" style="margin-bottom: 8px;"><span class="cm">ChatGPT: Settings → Connectors → Add</span><br><span class="key">name</span>: <span class="val">Docrocket</span> <span class="key">url</span>: <span class="url">https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</span></div>
<div class="gs-code" style="margin-bottom: 8px;"><span class="cm">Cursor: Settings → MCP → Add new MCP server</span><br><span class="key">name</span>: <span class="val">Docrocket</span> <span class="key">url</span>: <span class="url">https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp</span></div>
<div class="gs-code"><span class="cm">LangChain / CrewAI / any MCP client:</span><br><span class="fn">MCPClient</span>(<span class="str">"https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp"</span>)</div>
</div>
</div>
<div class="gs-step">
<div class="gs-num">4</div>
<div class="gs-content">
<h3>Generate your first document</h3>
<p>Pass a customer URL and content. Get back a branded PDF link.</p>
<div class="gs-code"><span class="fn">brand_from_url</span>(<span class="str">"https://yourcustomer.com"</span>)<br><span class="fn">generate</span>({ template: <span class="str">"proposal"</span>, ... })</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- APP SECTION -->
<section id="app">
<div class="container">
<div class="split-2 split-2--center">
<div>
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Web App</div>
<h2>Manage brands and build documents visually</h2>
<p class="section-desc">The web app at <strong style="color: var(--text);">app.docrocket.ai</strong> lets you manage all your customer brands, preview documents, and build docs manually when needed.</p>
<div style="display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2rem;">
<div style="display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--text-muted);">
<span class="check">✓</span> Paste any URL and preview the extracted brand instantly
</div>
<div style="display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--text-muted);">
<span class="check">✓</span> Fine-tune logos, colors, and typography
</div>
<div style="display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--text-muted);">
<span class="check">✓</span> Build documents manually from the editor
</div>
<div style="display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--text-muted);">
<span class="check">✓</span> See all documents generated by your AI agents
</div>
<div style="display: flex; align-items: center; gap: 10px; font-size: 0.9rem; color: var(--text-muted);">
<span class="check">✓</span> Monitor usage and manage billing
</div>
</div>
<div style="margin-top: 2rem;">
<a href="https://app.docrocket.ai" class="btn btn-outline btn-lg">Open app.docrocket.ai →</a>
</div>
</div>
<div style="background: var(--bg-card); border: 1px solid var(--border-strong); border-radius: var(--radius); overflow: hidden;">
<!-- App chrome -->
<div style="background: #0d1117; border-bottom: 1px solid var(--border); padding: 10px 16px; display: flex; align-items: center; gap: 8px;">
<span class="code-dot dot-red"></span>
<span class="code-dot dot-yellow"></span>
<span class="code-dot dot-green"></span>
<div style="flex: 1; text-align: center; font-size: 0.75rem; color: var(--text-dim); font-family: var(--mono);">app.docrocket.ai / brands</div>
</div>
<!-- App sidebar + content -->
<div class="app-mock-layout" style="display: flex; min-height: 260px;">
<div class="app-mock-sidebar" style="width: 120px; border-right: 1px solid var(--border); padding: 12px 8px; background: var(--bg);">
<div style="font-size: 0.7rem; color: var(--text-dim); padding: 4px 8px; margin-bottom: 4px; font-family: var(--mono);">WORKSPACE</div>
<div style="font-size: 0.78rem; padding: 6px 8px; background: var(--accent-dim); color: var(--accent); border-radius: 4px; margin-bottom: 2px;">Brands</div>
<div style="font-size: 0.78rem; padding: 6px 8px; color: var(--text-dim);">Documents</div>
<div style="font-size: 0.78rem; padding: 6px 8px; color: var(--text-dim);">Templates</div>
<div style="font-size: 0.78rem; padding: 6px 8px; color: var(--text-dim);">API Keys</div>
<div style="font-size: 0.78rem; padding: 6px 8px; color: var(--text-dim);">Usage</div>
</div>
<div style="flex: 1; padding: 16px;">
<div style="font-size: 0.78rem; font-weight: 600; color: var(--text); margin-bottom: 12px;">Customer Brands (3)</div>
<div style="display: flex; flex-direction: column; gap: 8px;">
<div style="display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px;">
<div style="width: 24px; height: 24px; background: #1e3a5f; border-radius: 4px; display: flex; align-items: center; justify-content: center;"><svg width="10" height="12" viewBox="0 0 10 12" fill="white"><path d="M6 0L0 6.5h4.5L3 12 10 5H5.5L7.5 0H6Z"/></svg></div>
<div style="flex: 1;">
<div style="font-size: 0.78rem; color: var(--text); font-weight: 600;">Acme Corp</div>
<div style="font-size: 0.68rem; color: var(--text-dim);">acme.com · 12 docs</div>
</div>
<div style="width: 12px; height: 12px; background: #1e3a5f; border-radius: 2px;"></div>
<div style="width: 12px; height: 12px; background: #c0392b; border-radius: 2px;"></div>
</div>
<div style="display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: 6px;">
<div style="width: 24px; height: 24px; background: #1a472a; border-radius: 4px; display: flex; align-items: center; justify-content: center;"><svg width="12" height="12" viewBox="0 0 24 24" fill="white"><path d="M17 8C8 10 5.9 16.17 3.82 19.5A12.93 12.93 0 0 0 12 22C16.97 22 21 17.97 21 13 21 10.34 19.72 8 17 8Z"/><path d="M7 22C7 22 7.5 18 11 15" stroke="white" stroke-width="2" stroke-linecap="round" fill="none"/></svg></div>
<div style="flex: 1;">
<div style="font-size: 0.78rem; color: var(--text); font-weight: 600;">GreenLeaf Inc</div>
<div style="font-size: 0.68rem; color: var(--text-dim);">greenleaf.co · 5 docs</div>
</div>
<div style="width: 12px; height: 12px; background: #1a472a; border-radius: 2px;"></div>
<div style="width: 12px; height: 12px; background: #27ae60; border-radius: 2px;"></div>
</div>
<div style="display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--accent-dim); border: 1px solid rgba(249,115,22,0.25); border-radius: 6px;">
<div style="width: 24px; height: 24px; background: rgba(249,115,22,0.3); border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 10px;">+</div>
<div style="font-size: 0.78rem; color: var(--accent);">Add brand from URL…</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- PRICING (full detail: /pricing/) -->
<section id="pricing">
<div class="container">
<div class="pricing-teaser">
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3" aria-hidden="true"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> Pricing</div>
<h2>Simple, predictable plans</h2>
<p class="section-desc" style="margin-bottom: 1.75rem;">30-day free trial at Pro limits — then Starter, Pro, or Scale. Fixed monthly caps, no metered surprise bills. Save 20% with annual billing.</p>
<a href="/pricing/" class="btn btn-primary btn-lg">View plans & pricing →</a>
</div>
</div>
</section>
<!-- SOCIAL PROOF -->
<section style="background: var(--bg-card); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 4rem 0;">
<div class="container">
<div style="text-align: center; margin-bottom: 3rem;">
<div class="section-label" style="justify-content: center;"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> In Production</div>
<h2>Document generation,<br>wired into your product</h2>
<p class="section-desc" style="margin: 0.75rem auto 0;">Teams use DocRocket as the document layer in their SaaS — QBR pipelines, proposal generators, and PDF exports, all branded per customer.</p>
</div>
<div class="early-access-stats" style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 900px; margin: 0 auto 2.5rem;">
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1.25rem 1rem; text-align: center;">
<div style="font-size: 1.75rem; font-weight: 800; color: #fff; letter-spacing: -0.03em;">15</div>
<div style="font-size: 0.8rem; color: var(--text-muted); margin-top: 0.35rem;">customer accounts on one automated QBR pipeline</div>
</div>
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1.25rem 1rem; text-align: center;">
<div style="font-size: 1.75rem; font-weight: 800; color: var(--accent); letter-spacing: -0.03em;"><2 min</div>
<div style="font-size: 0.8rem; color: var(--text-muted); margin-top: 0.35rem;">median time to first MCP tool call</div>
</div>
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 1.25rem 1rem; text-align: center;">
<div style="font-size: 1.75rem; font-weight: 800; color: #fff; letter-spacing: -0.03em;">0</div>
<div style="font-size: 0.8rem; color: var(--text-muted); margin-top: 0.35rem;">custom brand-routing layers in host app code</div>
</div>
</div>
<div class="testimonial-grid" style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;">
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.75rem;">
<div style="font-size: 0.7rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); margin-bottom: 1rem;">QBR Automation</div>
<div style="font-size: 0.95rem; font-weight: 600; color: #fff; margin-bottom: 0.6rem; line-height: 1.4;">15 customer accounts. One pipeline.</div>
<div style="font-size: 0.85rem; color: var(--text-muted); line-height: 1.65;">A CS platform reads <code class="tag">brand_id</code> from the tenant row and calls DocRocket. Every customer gets their own branded QBR PDF — no logo or color routing code in the host app.</div>
</div>
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.75rem;">
<div style="font-size: 0.7rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); margin-bottom: 1rem;">Proposal Generation</div>
<div style="font-size: 0.95rem; font-weight: 600; color: #fff; margin-bottom: 0.6rem; line-height: 1.4;">URL → extracted tokens → PDF. One tool chain.</div>
<div style="font-size: 0.85rem; color: var(--text-muted); line-height: 1.65;">An AI agent platform extracts brand tokens from a prospect’s URL and passes them to <code class="tag">generate_document</code>. No hallucinated hex codes — the right colors and logo, every time.</div>
</div>
<div style="background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.75rem;">
<div style="font-size: 0.7rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--accent); margin-bottom: 1rem;">Renewal Workflows</div>
<div style="font-size: 0.95rem; font-weight: 600; color: #fff; margin-bottom: 0.6rem; line-height: 1.4;">QBRs + renewal decks. Zero drag-and-drop.</div>
<div style="font-size: 0.85rem; color: var(--text-muted); line-height: 1.65;">A multi-tenant SaaS wired renewal flows for 15 customer workspaces via MCP OAuth. Templates stay in DocRocket; the agent picks one by name and gets back a branded PDF URL.</div>
</div>
</div>
</div>
</section>
<!-- FAQ -->
<section id="faq" style="padding: 80px 0;">
<div class="container">
<div style="display: grid; grid-template-columns: 1fr 2fr; gap: 5rem; align-items: start;">
<div>
<div class="section-label"><svg width="14" height="3" viewBox="0 0 14 3"><rect width="14" height="3" rx="1.5" fill="#f97316"/></svg> FAQ</div>
<h2>Common questions</h2>
<p class="section-desc">Didn't find your answer? <a href="mailto:hello@docrocket.ai" style="color: var(--accent); text-decoration: none;">Email us →</a></p>
</div>
<div style="display: flex; flex-direction: column; gap: 0;">
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
What if I need a template that isn't in the library?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
Start with 20+ built-in layouts (see <code class="tag">docrocket_list_templates</code>). If you need a bespoke structure — sections, placeholders, or a layout that matches your product — create a <strong>custom template</strong> in the web app and call it by name from MCP the same way as a stock template. For complex enterprise layouts or white-glove design, <a href="mailto:hello@docrocket.ai" style="color: var(--accent); text-decoration: none;">contact us</a> about Enterprise.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
What exactly is a custom component?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
A component is a reusable block you define once in the app — a pricing table, a signature section, a legal disclaimer, a boilerplate intro paragraph. Your agent references it by name (<code class="tag">include: pricing_table</code>) and DocRocket inserts the rendered block into the document. Components automatically inherit the current customer's brand colors and typography.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
What happens when I hit my document limit?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
Creating new documents pauses until the next billing cycle resets your count. Existing documents keep working — you can still re-render or update any document you've already created. The monthly limit is on new documents, not renders. You'll get an email warning at 80% usage so you can upgrade before it happens. Mid-cycle upgrades take effect immediately — you're never left stuck mid-month.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
Is there a free plan? What happens when my trial ends?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
There is no ongoing free tier. Every new workspace gets a <strong>30-day trial</strong> with the same limits as Pro, and you can start with email only — no credit card. When the trial ends, choose Starter, Pro, or Scale (or <a href="mailto:hello@docrocket.ai" style="color: var(--accent); text-decoration: none;">talk to us</a> about Enterprise) to keep generating documents. We will email you as the trial winds down so you are not caught off guard.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
Can I update or delete a brand after it's been created?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
Yes. Brands are fully editable in the web app at any time. Re-run brand extraction to pick up a customer's redesign, or manually adjust colors, logos, and fonts. Existing documents aren't retroactively changed — only new documents use the updated brand.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
What file formats does DocRocket output?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
Every document gets two URLs: a shareable web view (hosted HTML, always up-to-date) and a downloadable PDF. Both are available within 2 seconds of generation. DOCX export is on the roadmap.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
Is my customers' data stored or used for AI training?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
DocRocket stores the content you pass to generate documents (so we can serve the web view and PDF), but we do not use your data or your customers' data for any AI model training. Data is encrypted at rest and in transit. Enterprise customers can request data residency options.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
How does authentication work — do I need an API key?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
No API keys to copy or rotate. DocRocket uses OAuth: when you add the connector to Claude, ChatGPT, Cursor, or any MCP client, it walks you through signing in to your DocRocket account. Every agent that signs in with the same DocRocket account shares the same brands, components, templates, and document quota.
</div>
</div>
<div class="faq-item">
<button class="faq-q" onclick="toggleFaq(this)">
Will my customers see DocRocket branding on their documents?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
No. Documents show only your customer's brand — their logo, their colors, their name. There is no DocRocket watermark or branding on any generated document at any plan level. The web URL is on <code class="tag">docs.docrocket.ai</code> by default.
</div>
</div>
<div class="faq-item" style="border-bottom: none;">
<button class="faq-q" onclick="toggleFaq(this)">
Can documents be triggered without an AI agent?
<span class="faq-icon">+</span>
</button>
<div class="faq-a">
Yes — through the web app at <code class="tag">app.docrocket.ai</code>. You can select a template, pick a brand, write content, and generate a document manually. That said, DocRocket is designed primarily as an AI tool. The web app is for setup, management, and the occasional one-off — not for high-volume manual use.
</div>
</div>
</div>
</div>
</div>
</section>
<!-- CTA BANNER -->
<div class="cta-banner">
<div class="section-label" style="justify-content: center;"><svg width="11" height="13" viewBox="0 0 11 13" fill="#f97316"><path d="M6.5 0.5L0.5 7H5L3.5 12.5L10.5 5.5H6L8 0.5H6.5Z"/></svg> Ready to ship?</div>
<h2>Start generating branded documents today</h2>
<p>30-day free trial with Pro-level limits. No credit card to start. Up and running in under 5 minutes.</p>
<div class="cta-actions">
<a href="https://app.docrocket.ai/signup" class="btn btn-primary btn-lg">Start 30-day trial →</a>
<a href="mailto:hello@docrocket.ai" class="btn btn-outline btn-lg">Talk to us</a>
</div>
</div>
Server Config
{
"mcpServers": {
"docrocket": {
"url": "https://mcp.docrocket.ai/v1/mcp-tools/docrocket-control/mcp",
"headers": {
"Authorization": "Bearer YOUR_DR_KEY"
}
}
}
}