Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.AnkitaShanbhag30/lorem

NPM · LOREM-MCP · SCANNED SEP 25

Slide decks over MCP: read and write decks as code, run Lorem's full AI pipeline, export PPTX/PDF.

Available components

0 this week 74 Trust /100
Trust breakdown (7 categories)

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 → Why this is hard to 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
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency6
Schema Quality & AI Usability80
  • AI-judged instruction clarity (excellent).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 Management90
  • Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.AnkitaShanbhag30/lorem MCP server?

io.github.AnkitaShanbhag30/lorem runs locally as an npm package, launched with npx -y lorem-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · lorem-mcp

# add to Claude Code
claude mcp add ankitashanbhag30-lorem -- npx -y lorem-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "ankitashanbhag30-lorem": {
      "command": "npx",
      "args": [
        "-y",
        "lorem-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ankitashanbhag30-lorem": {
      "command": "npx",
      "args": [
        "-y",
        "lorem-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add ankitashanbhag30-lorem -- npx -y lorem-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ankitashanbhag30-lorem": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "lorem-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ankitashanbhag30-lorem --command npx --arg -y --arg lorem-mcp
# ~/.hermes/config.yaml
mcp_servers:
  ankitashanbhag30-lorem:
    command: "npx"
    args: ["-y", "lorem-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ankitashanbhag30-lorem": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "lorem-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ankitashanbhag30-lorem -t stdio -c npx -a -y lorem-mcp
// mcp.json
{
  "mcpServers": {
    "ankitashanbhag30-lorem": {
      "command": "npx",
      "args": [
        "-y",
        "lorem-mcp"
      ]
    }
  }
}
Changelog

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.

  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 21 Sept 26 +1
    • Stability: 0.97 → pass security
  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 14 Sept 26 +1
    • Stability: 0.97 → pass security
Diagnostics

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 25 Sept 2026 · Analysed npm/lorem-mcp@0.2.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 35 exposed · ~3,579 tokens

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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
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.

NameTypeReqDescription
atIndexinteger–0-based insert position; appends when omitted
deckIdstringyes–
dslstringyesOne or more `== <archetype>` blocks, no frontmatter

No output schema declared.

No examples provided.

apply_deck ~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.

NameTypeReqDescription
deckIdstringyes–
dslstringyes–

No output schema declared.

No examples provided.

choreograph_slide ~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.

NameTypeReqDescription
deckIdstringyes–
patternstringyesChoreography pattern to apply
slideIdstringyesSlide id from read_outline

No output schema declared.

No examples provided.

create_deck ~73

Make a new deck, optionally from a template (list_templates) and optionally with its slides written in Lore.

NameTypeReqDescription
dslstring–Slides to start with, as `==` blocks
templateIdstring–Template id, e.g. tpl_ember
titlestring––

No output schema declared.

No examples provided.

create_deck_from_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.

NameTypeReqDescription
generateImagesboolean–Default true
skeletonIdstringyesSkeleton id from list_skeletons, e.g. pitch
styleIdstringyesStyle id from list_styles — a curated id like `riso-pop` or a saved-style uuid
titlestring––

No output schema declared.

No examples provided.

create_deck_from_vibe ~113

DEPRECATED — use create_deck_from_style. Identical behavior; `personalityId` is accepted as an old spelling of `styleId`. Kept so existing callers keep working.

NameTypeReqDescription
generateImagesboolean–Default true
personalityIdstring–Deprecated spelling of styleId
skeletonIdstringyesSkeleton id from list_skeletons, e.g. pitch
styleIdstring–Style id from list_styles
titlestring––

No output schema declared.

No examples provided.

create_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.

NameTypeReqDescription
descriptionstringyesThe look, in words — e.g. "sun-bleached surf shop, hand-painted signage"
namestring–Name for the saved Style (defaults to the invented one)
personastring–Who is speaking to whom
registerstring–The deck's voice, one short phrase
saveboolean–Save it to the Styles list (default true). false previews without keeping it.
topicstring–The deck's subject matter, for context only
useCasestring–The job this deck is doing — decides how far the Style may reach

No output schema declared.

No examples provided.

delete_deck ~28

Permanently remove a deck. There is no undo.

NameTypeReqDescription
deckIdstringyes–

No output schema declared.

No examples provided.

delete_slide ~30

Remove a slide by id.

NameTypeReqDescription
deckIdstringyes–
slideIdstringyes–

No output schema declared.

No examples provided.

edit_deck ~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.

NameTypeReqDescription
deckIdstringyes–
focusSlideIdsarray–Pin these slides as context
focusThemeboolean–Pin the theme as context
instructionstringyes–
slideIdstring–The slide the edit is 'on' (defaults to the first slide)

No output schema declared.

No examples provided.

export_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.

NameTypeReqDescription
deckIdstringyes–
formatstring––

No output schema declared.

No examples provided.

generate_deck ~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.

NameTypeReqDescription
briefobject–The design brief from generate_outline, echoed back unchanged
generateImagesboolean––
imageStylestring––
outlinearrayyesOutline slides from generate_outline, unchanged
personalityIdstring––
promptstring–The user's original ask, for the generation record
styleIdstring––
templateIdstring––
titlestring––

No output schema declared.

No examples provided.

generate_deck_images ~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.

NameTypeReqDescription
deckIdstringyes–

No output schema declared.

No examples provided.

generate_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.

NameTypeReqDescription
promptstringyes–

No output schema declared.

No examples provided.

generate_outline ~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.

NameTypeReqDescription
directionstring–Free-form creative direction
promptstringyesWhat the deck is about — topic, audience, goal
slideCountinteger––
sourceTextstring–Source material to outline from
styleIdstring––
tonestring––

No output schema declared.

No examples provided.

get_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.

NameTypeReqDescription
limitinteger–Generations to scan, newest first (default 50)
sincestring–ISO datetime lower bound, e.g. 2026-07-01T00:00:00Z
untilstring–ISO datetime upper bound

No output schema declared.

No examples provided.

import_brand_from_url ~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.

NameTypeReqDescription
namestring–Name for the saved style (defaults to '<host> brand')
urlstringyesPublic website URL, e.g. stripe.com

No output schema declared.

No examples provided.

import_deck ~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.

NameTypeReqDescription
namestring–Deck title override (defaults to the file's)
pathstringyesAbsolute path to the .pptx file on this machine

No output schema declared.

No examples provided.

import_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.

NameTypeReqDescription
namestring–Name for the imported style
pathstringyesAbsolute path to the tokens .json / .css file (or a .pptx to style-mine)

No output schema declared.

No examples provided.

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 ~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 ~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.

NameTypeReqDescription
querystring–Mood/theme/name keywords; omit to list the whole catalog grouped by category

No output schema declared.

No examples provided.

list_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 ~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 ~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 ~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 ~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 ~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.

NameTypeReqDescription
deckIdstringyes–

No output schema declared.

No examples provided.

read_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.

NameTypeReqDescription
deckIdstringyesDeck id from list_decks

No output schema declared.

No examples provided.

read_slide ~54

The full source of a single slide in Lore, the Lorem deck language, ready to edit and pass back to replace_slide.

NameTypeReqDescription
deckIdstringyes–
slideIdstringyesSlide id from read_outline

No output schema declared.

No examples provided.

replace_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.

NameTypeReqDescription
deckIdstringyes–
dslstringyesOne block replacing this slide
slideIdstringyes–

No output schema declared.

No examples provided.

reroll_deck ~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.

NameTypeReqDescription
deckIdstringyes–
seedstring–Reproducible draw; the same seed gives the same design.
styleIdstring–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 ~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.

NameTypeReqDescription
deckIdstringyes–
namestringyes–

No output schema declared.

No examples provided.

set_deck_music ~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.

NameTypeReqDescription
deckIdstringyes–
lyricsstring––
modestring––
promptstring––
removeboolean––

No output schema declared.

No examples provided.

validate ~44

Parse a document or fragment and report errors and warnings. Nothing is changed.

NameTypeReqDescription
deckIdstring–Validate against this deck's theme
dslstringyes–

No output schema declared.

No examples provided.

Common questions

What is the io.github.AnkitaShanbhag30/lorem MCP server?

io.github.AnkitaShanbhag30/lorem is an MCP server listed in the public MCP registry as io.github.AnkitaShanbhag30/lorem. Slide decks over MCP: read and write decks as code, run Lorem's full AI pipeline, export PPTX/PDF. This page covers its npm package (lorem-mcp).

Is the io.github.AnkitaShanbhag30/lorem MCP server safe to use?

io.github.AnkitaShanbhag30/lorem scores 74 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 25 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.AnkitaShanbhag30/lorem MCP server expose?

io.github.AnkitaShanbhag30/lorem exposes 35 tools: list_decks, read_outline, read_slide, read_deck, add_slides, and 30 more. Their descriptions and schemas cost roughly 3,579 tokens of context every time the server is loaded.

Is the io.github.AnkitaShanbhag30/lorem MCP server still maintained?

io.github.AnkitaShanbhag30/lorem is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.