vozclara
by LeonMare
README.md
# VozClara
[](https://smithery.ai/server/salvador7eon/vozclara)
Multilingual AI study tool. Paste any public video URL → get a structured
Knowledge Pack (summary, key ideas, glossary, quiz, transcript with
timestamps) in your native language: Spanish, Portuguese, German, English.
Live: [**vozclara.app**](https://vozclara.app)
MCP Server: [**smithery.ai/server/salvador7eon/vozclara**](https://smithery.ai/server/salvador7eon/vozclara)
> *Klassisch in der Haltung, modern im Werkzeug.*
---
## MCP integration
VozClara exposes a Model Context Protocol (MCP) server so AI agents
(Claude Desktop, Cursor, Claude Code, Continue, VS Code with Copilot
Chat, etc.) can call it directly.
**One-click install** via Smithery → choose your client → done.
**Manual config** for Claude Desktop (`%APPDATA%\Claude\claude_desktop_config.json` on Windows,
`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"vozclara": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://vozclara.app/api/mcp"]
}
}
}
```
Restart Claude Desktop and ask:
> *"Use vozclara to summarise this video in German: https://www.youtube.com/watch?v=…"*
### Available tools
The anonymous endpoint (`/api/mcp`) exposes one tool that works without
sign-in. The OAuth-protected endpoint (`/api/mcp/pro`) adds three tools
that operate on the user's own VozClara library.
| Tool | Endpoint | Inputs | Output |
| --- | --- | --- | --- |
| `vozclara_generate_pack` | `/api/mcp` (anonymous) | `url`, `language` (`es`/`pt`/`de`/`en`), `depth` (`short`/`standard`/`deep`) | Knowledge Pack text + structured metadata + deep-link to the interactive pack on vozclara.app |
| `vozclara_search_my_library` | `/api/mcp/pro` (OAuth) | `query`, optional `limit` (1-10) | Semantic-search hits across the authenticated user's packs, each linked to vozclara.app |
| `vozclara_ask_video` | `/api/mcp/pro` (OAuth) | `pack_id`, `question` | RAG-grounded answer with inline citations, strictly from that one pack |
| `vozclara_export_anki` | `/api/mcp/pro` (OAuth) | `pack_id` | Deep-link URL the user opens to download the `.apkg` deck |
**Authenticated config** (Claude Desktop, paid-tier tools — adds the three
library-scoped tools above):
```json
{
"mcpServers": {
"vozclara-pro": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://vozclara.app/api/mcp/pro"]
}
}
}
```
On first call `mcp-remote` opens the browser, you sign in with the
magic-link, approve the scopes (`library:read`, `library:write`,
`profile`), and the refresh-token is cached locally — same flow as
GitHub's MCP server.
### Claude Skills bundle
A higher-level companion to the raw MCP tools above. `skills/` in this
repo holds three installable Claude Skills that route everyday video /
knowledge / study asks through the VozClara MCP server — so Claude
knows when to reach for `vozclara_generate_pack` vs
`vozclara_search_my_library` vs `vozclara_ask_video` without the user
having to remember tool names.
```bash
mkdir -p ~/.claude/skills
cp -R skills/vozclara-* ~/.claude/skills/
```
Restart Claude Desktop (or `/reload-skills` in Claude Code). The
skills appear in the picker. See `skills/README.md` for the trigger
shapes per skill + the OAuth flow for the two paid-tier ones.
---
## Stack
| Layer | Technology |
| --- | --- |
| **Frontend** | Vite + React 18 + TypeScript + Tailwind on Cloudflare Pages |
| **Worker** | Cloudflare Workers + Durable Objects + KV + D1 + Vectorize |
| **LLM (free / Pro)** | Workers AI · `@cf/meta/llama-3.3-70b-instruct-fp8-fast` |
| **LLM (Pro Plus)** | Anthropic Claude Sonnet 4.5 via Cloudflare AI Gateway |
| **Transcripts** | Supadata (Merchant-of-Record, licensed) |
| **Embeddings** | `@cf/baai/bge-base-en-v1.5` for semantic search |
| **TTS** | OpenAI `tts-1` (optional, premium narration) |
| **Auth** | Magic-link via Resend, no passwords |
| **Payments** | Paddle (Merchant-of-Record, EU VAT + US sales tax handled) |
| **MCP** | `agents` SDK + `McpAgent` + (Phase 2) `workers-oauth-provider` |
| **Analytics** | Cloudflare Web Analytics (cookieless, no consent banner) |
---
## Local development
Prerequisites: Node 20+, Git.
```sh
# Install
npm install
npm --prefix worker install
# Two terminals — Vite dev server + Wrangler dev
# Terminal A: Vite on :5173
npm run dev
# Terminal B: Wrangler on :8787
npm run worker:dev
```
Vite proxies `/api/*` to `:8787`, so `http://localhost:5173` works
end-to-end.
For the worker to call Supadata locally, drop a `.dev.vars` file inside
`worker/`:
```env
SUPADATA_API_KEY=sd_…
# Optional — enables OpenAI TTS path
OPENAI_API_KEY=sk-…
# Optional — enables Sonnet 4.5 for Pro Plus tier
ANTHROPIC_API_KEY=sk-ant-…
```
The file is git-ignored. Production secrets go through
`wrangler secret put <NAME>` instead.
---
## Deployment
### Frontend → Cloudflare Pages
```sh
npm run build
# Push to GitHub; Cloudflare Pages builds dist/ automatically.
# Custom domain: vozclara.app
```
### Worker → Cloudflare Workers
```sh
cd worker
npx wrangler deploy
```
This deploys the API + MCP server to `vozclara.app/api/*` and the
matching Smithery URL at `https://vozclara--salvador7eon.run.tools`.
---
## Compliance
- **DSGVO Art. 13** — full subprocessor list at [`/privacy`](https://vozclara.app/privacy)
- **DSGVO Art. 17** — server-side account deletion sweeps email + sessions + votes + reviews
- **EU AI Act Art. 50(1)** — AI disclosure banner shown on first generator visit
- **EU AI Act Art. 50(2)** — every exported pack carries an AI-generated watermark
- **Refund policy** — 14-day money-back guarantee at [`/refund`](https://vozclara.app/refund)
---
## Brand
LEON MARÉ Editorial:
- **Colors** — Navy `#0A1A3A`, Gold `#C9A24B`, Creme `#F7F3EC`, Graphit `#1A1A1A`
- **Typography** — Per-locale: Reforma (ES), Adelle Sans (PT), Inter (DE), Tiempos (EN)
- **Tonalität** — classical, declarative, no exclamation marks, no emoji, no superlatives
---
*VozClara · A LEON MARÉ product · Frankfurt am Main · Donostia · Porto*
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessUnresponsive