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

io.github.antonkarliner/truepane

NPM · TRUEPANE-MCP · SCANNED AUG 3

Local MCP server generating complete App Store & Google Play screenshot sets.

Available components

+24 this week 68 Trust /100
Trust breakdown (6 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 →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (106 of 110), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (106 of 110), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2783 tokens (~154/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 95% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

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 · truepane-mcp

# add to Claude Code
claude mcp add antonkarliner-truepane -- npx -y truepane-mcp
# add to Codex CLI
codex mcp add antonkarliner-truepane -- npx -y truepane-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "antonkarliner-truepane": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "truepane-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add antonkarliner-truepane --command npx --arg -y --arg truepane-mcp
# ~/.hermes/config.yaml
mcp_servers:
  antonkarliner-truepane:
    command: "npx"
    args: ["-y", "truepane-mcp"]
// mcp.json
{
  "mcpServers": {
    "antonkarliner-truepane": {
      "command": "npx",
      "args": [
        "-y",
        "truepane-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.

  • 3 Aug 26 +1

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

  • 2 Aug 26 +48
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Schema quality: unverified → excellent functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Stability: unverified → 0.23 functional
    • License: unverified → pass functional
    • Licence: AGPL-3.0-only functional
  • 1 Aug 26 −7
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 44

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 106 packages

106 packages in the resolved dependency tree · 106 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 18 exposed · ~2,783 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.

Tool Tokens
apply_brand_kit ~99

Apply typography, text colors, background, and default composition from a local .truepane-brand.json file. Targets, slides, screenshots, translations, and release data are preserved. Per-slide overrides are preserved by default.

NameTypeReqDescription
clear_slide_overridesbooleanExplicitly clear per-slide style/composition overrides
pathstringyesAbsolute path to a .truepane-brand.json file
project_idstringyesProject id

No output schema declared.

No examples provided.

compare_release ~51

Compare deterministic slide/output/locale signatures with the explicit saved release baseline. Returns added, changed, unchanged, and removed assets without rendering PNGs or changing the baseline.

NameTypeReqDescription
project_idstringyesProject id

No output schema declared.

No examples provided.

create_project ~243

Create a named in-memory project from slide texts and local screenshot files. Platforms: "ios" (App Store · 6.9″ iPhone, 1320x2868px), "ipad" (App Store · 13″ iPad, 2064x2752px), "android" (Play Store · Pixel portrait, 1080x2400px), "android-tablet" (Play Store · 10″ tablet, 1600x2560px). Screenshots are read from absolute local paths (PNG/JPEG/WebP), ideally raw device/simulator captures matching the device screen aspect; they are scaled to fill the device screen and center-cropped. Slides without a screenshot render a placeholder. After creating, style with set_style, then call render.

NameTypeReqDescription
idstringProject id (slug). Auto-generated if omitted.
platformstringDevice frame. One of: ios, ipad, android, android-tablet. Default "ios".
slidesarrayyesSlides in order (1-8 typical)
targetsarrayPlatform targets included in the project. The first is active.

No output schema declared.

No examples provided.

export_brand_kit ~73

Write this project's current typography, colors, background, custom font, and default composition to a portable brand kit file.

NameTypeReqDescription
namestringBrand kit display name
pathstringyesAbsolute output path, conventionally ending .truepane-brand.json
project_idstringyesProject id

No output schema declared.

No examples provided.

export_project ~86

Write the project as JSON to an absolute path. The file is the exact format the Truepane web app's Import Project accepts (screenshots embedded as data URLs), so a human can open and fine-tune it later.

NameTypeReqDescription
pathstringyesAbsolute output path, e.g. /tmp/my-app/truepane-project.json
project_idstringyesProject id

No output schema declared.

No examples provided.

import_screenshots ~118

Deterministically map a local screenshot directory to target/locale/slide slots. Defaults to a read-only dry run. Files named target/locale/NN-name.png map explicitly; otherwise known dimensions and filename tokens are used. Conflicts are reported and never overwritten.

NameTypeReqDescription
applybooleanMust be true to apply non-conflicting mappings
directorystringyesAbsolute directory containing PNG/JPEG/WebP screenshots
dry_runbooleanPreview only (default true)
project_idstringyesProject id

No output schema declared.

No examples provided.

list_options ~59

Start here. Lists Truepane's complete agent workflow and every valid platform, output, font, background, and composition option, including bulk import, multi-target sets, linked devices, preflight, brand kits, custom outputs, and changed-only release exports.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

load_project ~89

Load a Truepane project JSON file (from export_project or the web app's Export Project) into memory as a new project. Returns the project id and a summary. Screenshots embedded in the file are restored.

NameTypeReqDescription
idstringProject id to assign (auto-generated if omitted; replaces any existing project with this id)
pathstringyesAbsolute path to the project JSON file

No output schema declared.

No examples provided.

render ~422

Render the project to PNG files at full store resolution (e.g. ios = 1320x2868) and return the absolute output paths plus a small inline preview image of the first slide (or the strip) so you can inspect the result. what: "slides" writes slide-01.png, slide-02.png, …; "strip" writes strip.png (all slides side by side — backgrounds flow continuously across it); "both" writes both. Pass scale (e.g. 0.25) for smaller draft output. language: omit for the base text; a language code (e.g. "es") renders that translation (blank/missing fields fall back to base text); "all" writes per-language subfolders of output_dir — source/ plus one per settings.languages code, same layout as the web app's all-languages ZIP (add languages with set_translations first). Each language renders in its own font override when set (see set_translations font / set_style language), else the global font. Fonts are fetched/registered automatically before rendering. Iterate: render → look at preview → set_style → render again.

NameTypeReqDescription
changed_onlybooleanWrite only added/changed assets compared with the explicit release baseline
languagestringOmit = base text; a language code = that translation; "all" = per-language subfolders
output_dirstringyesAbsolute directory for the PNGs (created if missing)
output_framestringDevice frame for feature/custom output
output_heightnumberCustom output height
output_idstringTemporary output override for this render
output_widthnumberCustom output width
project_idstringyesProject id
scalenumberDownscale factor for draft output (default 1 = full store resolution)
targetPlatform target. Omit = active target; "all" = every settings.targets target.
whatstringWhat to render. Default "slides".

No output schema declared.

No examples provided.

set_output ~93

Choose a native store screenshot, the 1024x500 Google Play feature graphic, or bounded custom dimensions. The device frame remains procedural and is never stretched.

NameTypeReqDescription
framestringDevice frame/source target
heightnumberCustom height
output_idstringyesBuilt-in output id or custom
project_idstringyesProject id
widthnumberCustom width

No output schema declared.

No examples provided.

set_release_baseline ~49

Explicitly replace the project's release baseline with deterministic signatures for the current assets. Previewing, importing, validating, and rendering never call this automatically.

NameTypeReqDescription
project_idstringyesProject id

No output schema declared.

No examples provided.

set_screenshots ~173

Attach or replace screenshots on existing slides by 0-based index, from absolute local file paths (PNG/JPEG/WebP). Images are scaled to fill the device screen and center-cropped; aspect mismatches are reported as warnings, not errors. Pass language (a locale code, e.g. "ar") to set a screenshot for just that locale instead of the base slide — useful when your app UI is itself localized, so each language renders its own screenshot. A locale screenshot with no translated text still falls back to the base title/subhead; the locale is added to settings.languages so render language:"all" includes it. Omit language to set the base screenshot (used by every locale that has none of its own).

NameTypeReqDescription
project_idstringyesProject id
screenshotsarrayyes

No output schema declared.

No examples provided.

set_slides ~84

Replace the project's slide list (full-array replace — send ALL slides in final order). Each slide keeps its existing screenshot by position unless a screenshot_path is given for it; use set_screenshots to change images only. Reorder/add/remove by sending the array you want.

NameTypeReqDescription
project_idstringyesProject id from create_project
slidesarrayyes

No output schema declared.

No examples provided.

set_style ~503

Patch project style. Without slide_index, patches global settings: fontFamily (see list_options), titleColor/subheadColor (CSS colors), titleScale/subtitleScale (multipliers, ~0.5-1.5), titleWeight/subtitleWeight (font weight 100..900; default 700/400), platform (ios | ipad | android | android-tablet), and background — a partial patch merged onto the current background. Background fields: fill (solid|linear|radial), shape (see list_options), color, gradientColor, accent, accentOpacity (0..1), ringLayout, ringCount (1..8), seed, density (1..8), dotsAligned, gradientAngle. Composition supports a preset plus normalized text/device placement, scale, and flat rotation (-20..20). With slide_index (0-based), background/titleColor/subheadColor/composition apply as per-slide overrides instead (other fields are global-only and rejected). With language (a locale code, e.g. "ar"), fontFamily sets that locale's font override — used only when rendering that language, while the base keeps the global font (pass only fontFamily). Re-render after changes to see the result.

NameTypeReqDescription
backgroundobjectPartial background patch
compositionobjectComposition preset and optional text/device placement. Device x/y are normalized canvas coordinates; rotation is -20..20 degrees.
fontFamilystringFont id from list_options (global only)
languagestringIf set (a locale code, e.g. "ar"), fontFamily becomes that language's font override
platformstringSwitch device frame (global only)
project_idstringyesProject id
slide_indexintegerIf set, apply background/titleColor/subheadColor to this slide only
subheadColorstringSubhead color, e.g. rgba(26,22,18,0.62)
subtitleScalenumberSubhead size multiplier (global only)
subtitleWeightintegerSubhead font weight 100..900, default 400 (global only)
titleColorstringTitle color, e.g. #1a1612
titleScalenumberTitle size multiplier (global only)
titleWeightintegerTitle font weight 100..900, default 700 (global only)

No output schema declared.

No examples provided.

set_translations ~365

Store per-language translations of the slide texts. You are a language model: translate the slide titles/subheads YOURSELF — preserve the marketing tone and keep lengths similar to the source (titles wrap to ~2 lines on the slide) — then call this with the results. Each entry: code (folder/storage key, e.g. "es", "pt-BR"), name (human label, e.g. "Spanish"), and slides aligned 1:1 with the project's slides (same count, same order). An empty title/subhead falls back to the base text at render time. Translations are stored on the slides (slide.translations) and the languages merged into settings.languages, exactly like the web app — so the project round-trips through export_project. Then render with language:"all" for per-language folders (or one code to inspect a single language). Each slide entry may also include screenshot_path to give that locale its own screenshot (for apps whose UI is itself localized — e.g. an Arabic build); omit it and the locale reuses the base screenshot. You can also set locale screenshots separately with set_screenshots (pass language). For non-Latin scripts set a per-language font (the entry's font, or set_style with language) so this locale renders in a covering font while the base keeps the global one — Inter covers Cyrillic/Greek, Noto Sans JP/KR/SC cover CJK, "Noto Sans Arabic" covers Arabic). Arabic is shaped and laid out right-to-left automatically. Server-side rendering has no per-glyph system-font fallback, so glyphs a font lacks come out as boxes; always inspect the render preview.

NameTypeReqDescription
project_idstringyesProject id
translationsarrayyes

No output schema declared.

No examples provided.

span_device_across_slides ~75

Place one identical device across the boundary between an adjacent slide pair. The left slide exports the left half and the next slide exports the right half; their text and backgrounds remain independent.

NameTypeReqDescription
left_slide_indexintegeryes0-based index of the first slide
project_idstringyesProject id

No output schema declared.

No examples provided.

suggest_palette_from_screenshot ~157

Extract a color palette from a screenshot: the dominant vivid color as the shape/accent color plus a soft near-white tint of it as the background color (same algorithm as the web app's palette button). Point it at a project slide (project_id + slide_index) or any local image file (image_path). Purely local math — no AI, no network. Apply the result with set_style.

NameTypeReqDescription
image_pathstringAbsolute path to an image file (instead of project_id/slide_index)
project_idstringProject id (with slide_index)
slide_indexinteger0-based slide whose screenshot to sample
targetstringPlatform target; defaults to active

No output schema declared.

No examples provided.

validate_project ~44

Return the same ordered release-preflight issues shown by the web editor. Validation is advisory; stable issue codes are suitable for automation.

NameTypeReqDescription
project_idstringyesProject id

No output schema declared.

No examples provided.