DocDeploy
Document hosting and encrypted agent memory with multi-tenant persistence.
Open source Repository Open in the app JSON README (API)
About
Document hosting and encrypted agent memory with multi-tenant persistence.
Details
- Kind
- MCP servers
- Topic
- AI, RAG & memory
- Publisher
- io.docdeploy.www
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.0.0
- Last push
- 2026-04-16T23:27:36Z
- Repository state
- ativo
- Language
- TypeScript
- License
- NOASSERTION
- Added
- 2026-08-29 03:01:36
- Updated
- 2026-08-29 03:01:36
- Origin id
io.docdeploy.www/mcp-server
README
# DocDeploy Enterprise document intelligence platform. Upload docs, PDFs, manuals, and notes — DocDeploy converts them to indexed Markdown and serves them via per-tenant MCP servers so AI agents can query your knowledge base. ## How It Works ``` Upload → Convert to Markdown → Inject Section Markers → Index → Serve via MCP ``` 1. **Upload** any document (PDF, DOCX, PPTX, XLSX, HTML, TXT, CSV, JSON, XML) 2. **Convert** to clean, structured Markdown with images preserved 3. **Index** sections with navigational markers and full-text search 4. **Connect** AI agents via MCP — they can search, browse, and read your docs ## Architecture ``` ┌─────────────────────────────────────────┐ │ apps/app Next.js dashboard │ ← Vercel │ apps/web Marketing site │ ← Vercel ├─────────────────────────────────────────┤ │ packages/lib Converter pipeline│ │ packages/db Drizzle + Neon │ │ packages/workers Background jobs │ ← Render │ packages/mcp-server MCP per tenant │ ← Render └─────────────────────────────────────────┘ ``` ## Tech Stack | Layer | Technology | |---|---| | Frontend | Next.js 16, Tailwind CSS, Clerk Auth | | Database | PostgreSQL (Neon), Drizzle ORM | | Storage | Cloudflare R2 | | Queue | pg-boss | | MCP | @modelcontextprotocol/sdk (Streamable HTTP) | | Hosting | Vercel (frontend), Render (workers + MCP) | ## MCP Tools Each tenant's MCP server exposes 5 tools: | Tool | Description | |---|---| | `get_manifest` | Full document index — start here | | `search_documents` | Full-text search across all docs and sections | | `get_document` | Load a full document with section markers | | `get_section` | Load a specific section by marker | | `list_documents` | List all available documents | ## Document Processing Pipeline - **PDF** — pdf-parse v2 with structure inference (chapters, numbered sections, all-caps headings) - **DOCX** — mammoth with image extraction to R2 - **PPTX** — adm-zip XML parsing with slide image extraction - **XLSX** — SheetJS with multi-sheet markdown table output - **HTML** — Turndown with table preservation and nav/footer stripping - **CSV/TSV** — SheetJS for robust quoted field handling - **TXT** — Structure inference for unstructured text - **JSON/XML** — Formatted code block wrapping ## Monorepo Structure ``` docdeploy/ ├── apps/ │ ├── app/ # Dashboard (Next.js) │ └── web/ # Marketing site (Next.js) ├── packages/ │ ├── db/ # Schema + Drizzle config │ ├── lib/ # Converter, markers, R2, token counter │ ├── mcp-server/ # MCP server (stdio + HTTP) │ └── workers/ # Background document processor ├── render.yaml # Render blueprint ├── turbo.json # Turborepo config └── package.json # Workspace root ``` ## Development ```bash # Install dependencies npm install # Run the dashboard locally npm run dev:app # Run the marketing site npm run dev:web ``` ## Environment Variables See `.env.example` for the full list. Required: - `DATABASE_URL` — Neon PostgreSQL connection string - `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` / `CLERK_SECRET_KEY` — Clerk auth - `R2_ACCOUNT_ID` / `R2_ACCESS_KEY_ID` / `R2_SECRET_ACCESS_KEY` — Cloudflare R2 - `R2_BUCKET_NAME` / `R2_PUBLIC_URL` — R2 bucket config - `MCP_API_KEY` — Per-tenant MCP server auth (Render only) ## License Proprietary — Copyright (c) 2026 MR Dula Enterprise, LLC. All rights reserved. Contact: matt@mrdula.solutions