io.github.AnkitaShanbhag30/lorem
NPM · LOREM-MCP · SCANNED AUG 7
Slide decks over MCP: read and write decks as code, run Lorem's full AI pipeline, export PPTX/PDF.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency6
- Repository check failed: no source repository is declared. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE.md) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability75
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 3579 tokens (~102/item across 35 items; 35 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage85
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 54% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · lorem-mcp
claude mcp add ankitashanbhag30-lorem -- npx -y lorem-mcp
codex mcp add ankitashanbhag30-lorem -- npx -y lorem-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ankitashanbhag30-lorem": {
"type": "local",
"command": [
"npx",
"-y",
"lorem-mcp"
],
"enabled": true
}
}
} openclaw mcp add ankitashanbhag30-lorem --command npx --arg -y --arg lorem-mcp
mcp_servers:
ankitashanbhag30-lorem:
command: "npx"
args: ["-y", "lorem-mcp"] {
"mcpServers": {
"ankitashanbhag30-lorem": {
"command": "npx",
"args": [
"-y",
"lorem-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 7 Aug 26 59
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 7 Aug 2026 · Analysed npm/[email protected]
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
add_slides Add slides ~101
Append or insert slides written in Lore. Prefer archetype blocks (`== hero`, `== statRow`) — they produce designed layouts. Call list_layouts to see them, or language_reference for the full syntax.
| Name | Type | Req | Description |
|---|---|---|---|
| atIndex | integer | – | 0-based insert position; appends when omitted |
| deckId | string | yes | – |
| dsl | string | yes | One or more `== <archetype>` blocks, no frontmatter |
No output schema declared.
No examples provided.
apply_deck Apply a whole deck document ~65
Replace the deck with a full document (frontmatter plus blocks). Only slides that actually changed are rewritten, so untouched slides keep their ids. Use for restyling or reordering everything at once.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| dsl | string | yes | – |
No output schema declared.
No examples provided.
choreograph_slide Choreograph a slide's motion ~112
Re-time one slide's element entrances as a coordinated sequence: cascade (role-ordered stagger), focus-pull (media lands first), rise-ensemble (everything rises together), or typewriter-lead (the title types itself out first). Timing follows the deck stylekit's motion personality; loop and exit clips the slide already carries are preserved.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| pattern | string | yes | Choreography pattern to apply |
| slideId | string | yes | Slide id from read_outline |
No output schema declared.
No examples provided.
create_deck Create a deck ~73
Make a new deck, optionally from a template (list_templates) and optionally with its slides written in Lore.
| Name | Type | Req | Description |
|---|---|---|---|
| dsl | string | – | Slides to start with, as `==` blocks |
| templateId | string | – | Template id, e.g. tpl_ember |
| title | string | – | – |
No output schema declared.
No examples provided.
create_deck_from_style Create a deck from a Style ~171
Build a new deck by crossing a content skeleton (list_skeletons) with a Style (list_styles) — the deck's whole look: palette, fonts, spacing, shape language, decor, atmosphere, motion and transitions. A Style is a Style whether it was curated, generated from a described vibe, or imported from a .pptx / design system / website brand; styleId takes any of them. Generates real imagery matching the Style's art direction by default.
| Name | Type | Req | Description |
|---|---|---|---|
| generateImages | boolean | – | Default true |
| skeletonId | string | yes | Skeleton id from list_skeletons, e.g. pitch |
| styleId | string | yes | Style id from list_styles — a curated id like `riso-pop` or a saved-style uuid |
| title | string | – | – |
No output schema declared.
No examples provided.
create_deck_from_vibe Create a deck from a Style (deprecated alias) ~113
DEPRECATED — use create_deck_from_style. Identical behavior; `personalityId` is accepted as an old spelling of `styleId`. Kept so existing callers keep working.
| Name | Type | Req | Description |
|---|---|---|---|
| generateImages | boolean | – | Default true |
| personalityId | string | – | Deprecated spelling of styleId |
| skeletonId | string | yes | Skeleton id from list_skeletons, e.g. pitch |
| styleId | string | – | Style id from list_styles |
| title | string | – | – |
No output schema declared.
No examples provided.
create_style Invent a Style ~360
Invent a NEW Style from a description — the catalog is not a fixed list of 19. Describe the look in words ("a cozy library", "1970s NASA telemetry", "a risograph zine") and get back a complete Style: palette, font pairing, shape language, decor, atmosphere, motion character, slide transitions, AND the policy axes that lean which composition, entrance and pose each slide draws — so an invented Style behaves differently, not just looks different. Say who the deck is for (persona) and what job it is doing (useCase) and both the look and those leanings follow the brief: a reference card comes back still and left-aligned, a portfolio comes back reaching. Every invented Style is verified before it is returned — palette contrast, body-font legibility, type-scale floors, plus a real probe build measured for contrast failures, collisions, off-slide elements and overflow — and one that fails is reported, never handed back. Saves by default and returns a styleId usable with create_deck_from_style, apply_deck or reroll_deck.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | The look, in words — e.g. "sun-bleached surf shop, hand-painted signage" |
| name | string | – | Name for the saved Style (defaults to the invented one) |
| persona | string | – | Who is speaking to whom |
| register | string | – | The deck's voice, one short phrase |
| save | boolean | – | Save it to the Styles list (default true). false previews without keeping it. |
| topic | string | – | The deck's subject matter, for context only |
| useCase | string | – | The job this deck is doing — decides how far the Style may reach |
No output schema declared.
No examples provided.
delete_deck Delete a deck ~28
Permanently remove a deck. There is no undo.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
No output schema declared.
No examples provided.
delete_slide Delete a slide ~30
Remove a slide by id.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| slideId | string | yes | – |
No output schema declared.
No examples provided.
edit_deck Edit a deck with the in-app AI edit loop ~189
Run the same agentic "Edit with AI" loop the editor's panel uses: it reads the deck, can look at rendered slides (a vision pass), generate or edit images, add archetype slides, and emits operations — which this tool then applies through the live collaboration room, so open browsers update instantly and the whole edit is one undo. Use it for design-quality passes ("review every slide and fix what looks off"), content rewrites, or anything you'd type into the app's AI panel. Prefer replace_slide/apply_deck when you already know the exact change.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| focusSlideIds | array | – | Pin these slides as context |
| focusTheme | boolean | – | Pin the theme as context |
| instruction | string | yes | – |
| slideId | string | – | The slide the edit is 'on' (defaults to the first slide) |
No output schema declared.
No examples provided.
export_deck Export a deck ~55
Get a download URL for the deck as native PowerPoint or PDF. PowerPoint exports as real editable shapes, text and charts — not pictures of slides.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| format | string | – | – |
No output schema declared.
No examples provided.
generate_deck Build a deck end-to-end with the AI pipeline ~205
Stage 2 of the app's generation pipeline: assembles an approved outline into a saved deck — designed layouts, copy, AI/stock imagery, then the quality loop (a vision judge scores the rendered deck and the worst slides get a polish pass) before saving. This is the full in-app experience over MCP: use generate_outline first, then this. Returns the new deckId plus the quality report (initial → final score, revised slides). Style precedence: styleId > personalityId > templateId.
| Name | Type | Req | Description |
|---|---|---|---|
| brief | object | – | The design brief from generate_outline, echoed back unchanged |
| generateImages | boolean | – | – |
| imageStyle | string | – | – |
| outline | array | yes | Outline slides from generate_outline, unchanged |
| personalityId | string | – | – |
| prompt | string | – | The user's original ask, for the generation record |
| styleId | string | – | – |
| templateId | string | – | – |
| title | string | – | – |
No output schema declared.
No examples provided.
generate_deck_images Generate all declared images in a deck ~123
Fill in every AI-declared image in a deck at once. In the deck language, `image gen {prompt="misty harbor at dawn" x=… y=… w=… h=…}` places an image that renders as a placeholder until generated; this tool generates each one (honoring the theme's imageStyle) and wires the assets in. Run it after create_deck/apply_deck when the document declared `image gen` elements. Requires the server to have an image model key configured.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
No output schema declared.
No examples provided.
generate_image Generate an image ~63
Create an image from a text prompt and return its asset id, for use as `image: asset:<id>` in a slot or `image asset:<id>` as an element. Requires the server to have an image model key configured.
| Name | Type | Req | Description |
|---|---|---|---|
| prompt | string | yes | – |
No output schema declared.
No examples provided.
generate_outline Plan a deck outline with the AI pipeline ~150
Stage 1 of the same generation pipeline the app's wizard uses: an art-direction pass plans the argument and look, then a writer produces one validated outline slide per archetype. Returns the outline slides and the design brief as JSON — pass both to generate_deck unchanged to build the deck. Prefer this over hand-writing an outline when the user gives a topic rather than finished content.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | Free-form creative direction |
| prompt | string | yes | What the deck is about — topic, audience, goal |
| slideCount | integer | – | – |
| sourceText | string | – | Source material to outline from |
| styleId | string | – | – |
| tone | string | – | – |
No output schema declared.
No examples provided.
get_generation_insights Generation insights ~136
How past AI generations were received: win-rates per style, archetype and choreography pattern, feedback-tag frequencies and trend, and the human and AI quality passes reported side by side (never averaged — they measure different things). Use this to decide what to change about generation, and to see which recurring complaints might deserve a curated prompt adjustment.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Generations to scan, newest first (default 50) |
| since | string | – | ISO datetime lower bound, e.g. 2026-07-01T00:00:00Z |
| until | string | – | ISO datetime upper bound |
No output schema declared.
No examples provided.
import_brand_from_url Extract a brand from a website ~120
Fetch a public website, classify its CSS colors and fonts into a Lorem palette, and save the result as a reusable Style — the fastest way to make decks match a company's brand. Returns the styleId plus the extracted palette/fonts; use it with create_deck_from_style({skeletonId, styleId}) or apply the palette to an existing deck via apply_deck.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Name for the saved style (defaults to '<host> brand') |
| url | string | yes | Public website URL, e.g. stripe.com |
No output schema declared.
No examples provided.
import_deck Import a deck file ~150
Import a .pptx file (PowerPoint, or the PPTX export of Google Slides / Canva / Keynote) as a fully editable Lorem deck — every text run, color, image, table, chart and note mapped onto the native document model. Also extracts the file's visual style as a reusable Style (see list_styles), first-class next to the curated ones. Anything the model can't express is listed in the fidelity report. After importing, iterate with read_deck / replace_slide / apply_deck as with any deck.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Deck title override (defaults to the file's) |
| path | string | yes | Absolute path to the .pptx file on this machine |
No output schema declared.
No examples provided.
import_design_system Import a design system ~112
Import design tokens (W3C design-tokens JSON, Tokens Studio JSON, or CSS custom properties) — or any .pptx to mine its style — into a reusable Style: palette, fonts, type scale and radii become a Style that drives deck generation and restyling exactly like the curated ones.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | – | Name for the imported style |
| path | string | yes | Absolute path to the tokens .json / .css file (or a .pptx to style-mine) |
No output schema declared.
No examples provided.
language_reference Deck language reference ~42
The full syntax of Lore, the Lorem deck language, generated from the layout schemas so it is never out of date. Read this once before writing anything non-trivial.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_decks List decks ~31
List every deck with its id, title and slide count. Start here to find a deck to work on.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_fonts Browse the font catalog ~119
Search the ~140-family font catalog by mood, theme or name — e.g. "horror", "kids playful", "elegant serif", "pixel arcade", "western". Every family is Google-hosted and loads automatically when referenced by name in a deck theme (`fonts:` frontmatter) or on a text run (`font="…"`). Use it to pick type that matches the content instead of defaulting to a generic sans.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Mood/theme/name keywords; omit to list the whole catalog grouped by category |
No output schema declared.
No examples provided.
list_layouts List slide layouts ~50
Every designed layout (archetype) with the content slots it takes. Choosing a layout and filling its slots is how you get a professional-looking slide — never place elements by hand unless no layout fits.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_personalities List Deck Personalities (deprecated alias for list_styles) ~44
DEPRECATED — use list_styles, which lists the same curated Styles plus the user's own. Kept so existing callers keep working. Lists the 19 curated Styles only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_skeletons List content skeletons ~45
Slide sequences a Style can be crossed with — what the deck contains, independent of how it looks. Pass one of these plus a styleId to create_deck_from_style.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_styles List Styles ~102
Every Style available to this user, grouped by where it came from: 19 curated Styles, plus any generated from a described vibe or imported from a .pptx, design system or website brand. A Style is a complete look — palette, fonts, spacing, shape language, decor, ambient atmosphere, motion character, slide transitions — that cascades from one pick. Cross one with a skeleton from list_skeletons and pass both to create_deck_from_style.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_templates List deck templates (deprecated — a template is a skeleton × Style) ~95
DEPRECATED — each of these 15 flat seed ids is nothing more than one content skeleton crossed with one Style, under a fixed name. Prefer list_skeletons + list_styles + create_deck_from_style, which reaches all 19 curated Styles (not just the 15 pre-paired ones) and generates real imagery. The ids keep working forever via create_deck's templateId; the listing names the pair behind each.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
read_deck Read a whole deck ~51
The entire deck as source, including its theme frontmatter. Expensive for large decks — prefer read_outline plus read_slide unless you need to restyle everything at once.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
No output schema declared.
No examples provided.
read_outline Read a deck outline ~61
A compact index of a deck: one line per slide with its id, layout and title. Far cheaper than reading the whole deck — use this first, then read only the slides you need.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | Deck id from list_decks |
No output schema declared.
No examples provided.
read_slide Read one slide ~54
The full source of a single slide in Lore, the Lorem deck language, ready to edit and pass back to replace_slide.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| slideId | string | yes | Slide id from read_outline |
No output schema declared.
No examples provided.
replace_slide Replace one slide ~69
Rewrite a single slide, keeping its id so comments and collaborators' selections survive. Other slides are untouched, so this is safe while someone else is editing them.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| dsl | string | yes | One block replacing this slide |
| slideId | string | yes | – |
No output schema declared.
No examples provided.
reroll_deck Re-roll a deck's design ~227
Redraw a deck's design without touching a word of its copy or regenerating a single image. Every slide is rebuilt from its own content with a new Style and/or a new seed: different composition, motion, crop, framing, type and colour. The text, the images, the speaker notes and each slide's layout ARCHETYPE are pinned, so this costs nothing to run and can be repeated freely — it is the tool to reach for when the words are right and the look is not. Distinct from applying a Style through apply_deck, which patches attributes in place and keeps the composition; a re-roll throws the composition away and draws a new one, discarding hand-positioned layout. Omit styleId to keep the current Style and just redraw; pass a seed to make the draw reproducible.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| seed | string | – | Reproducible draw; the same seed gives the same design. |
| styleId | string | – | A Style id from list_styles. Omit to redraw with the deck's current Style. |
No output schema declared.
No examples provided.
save_as_template Save a deck as a template ~52
Promote a deck to the template gallery, so new decks can start from its design and structure. Use once a deck is worth reusing.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| name | string | yes | – |
No output schema declared.
No examples provided.
set_deck_music Set or clear the deck soundtrack ~137
Give a deck an AI-generated soundtrack that plays during Present mode. Generates audio from a musical brief — mode "instrumental" for pure music, "lyrical" to steer toward sung vocals about `lyrics` — then attaches it to the deck as one undoable operation (also expressible in the deck language as `music:` frontmatter). Generation runs roughly in real time, so expect ~30s. Pass remove:true to clear the soundtrack instead.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | yes | – |
| lyrics | string | – | – |
| mode | string | – | – |
| prompt | string | – | – |
| remove | boolean | – | – |
No output schema declared.
No examples provided.
validate Check Lore without applying it ~44
Parse a document or fragment and report errors and warnings. Nothing is changed.
| Name | Type | Req | Description |
|---|---|---|---|
| deckId | string | – | Validate against this deck's theme |
| dsl | string | yes | – |
No output schema declared.
No examples provided.