layoutbridge-spm

MCPcommunity
v1.0.1MCP InterfacesSEE LICENSE IN LICENSEUpdated 1d agonpm

LayoutBridge for Adobe InDesign® – MCP server for Adobe® InDesign® (npm package layoutbridge-spm). Adobe and InDesign are either registered trademarks or trademarks of Adobe in the United States and/or other countries.

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
6Downloads/wk
1d agoLast update
Reads these credentials
  • LAYOUTBRIDGE_SPM_LICENSE_KEYAPI keyoptional

    Licence key for this workstation (from the purchase receipt). Alternatively put the key into a file and set LAYOUTBRIDGE_SPM_LICENSE_FILE.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorMCP Interfaces
LicenseSEE LICENSE IN LICENSE
Version1.0.1
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
✓Listed in Forge index+10/10
—Publisher identity verified+0/20
→ Publisher: run `forge publish` from the package repo to claim ownership
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
—npm Trusted Publishing (Sigstore)+0/5
→ Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
—npm maintainer match+0/5
→ Earned once your identity is verified above and that login is an npm maintainer of this package
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain—
Provenance—
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · 6 privileged
Security scan✓ Cleanv1.0.1 · todayHow well does this scan work?
EvalsNone
IndexedSep 24, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · 6 privileged
Statically extracted from the published packagev1.0.1 · 7h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

get_app_versionReturn the version string of the running InDesign application. Use it as a sign of life before anything else. Fails with app_not_available when InDesign is not running or not ready yet. Read-only.

Return the version string of the running InDesign application. Use it as a sign of life before anything else. Fails with app_not_available when InDesign is not running or not ready yet. Read-only.

No input schema was published for this tool.

list_documentsList every open document, not just the frontmost one. Returns document_id (stable for this session), name, saved, path (empty when never saved), page_count and is_active. Read-only. Note: saved true is no reliable sign that there is nothing to save.

List every open document, not just the frontmost one. Returns document_id (stable for this session), name, saved, path (empty when never saved), page_count and is_active. Read-only. Note: saved true is no reliable sign that there is nothing to save.

No input schema was published for this tool.

open_documentOpen an existing .indd, .indt or .idml file. Returns document_id, name, page_count, facing_pages (Doppelseiten) and already_open, which is true when the file was open already – it is never opened twice. Because InDesign dialogs are suppressed, missing links (fehlende Verknuepfungen), out of date li…

Open an existing .indd, .indt or .idml file. Returns document_id, name, page_count, facing_pages (Doppelseiten) and already_open, which is true when the file was open already – it is never opened twice. Because InDesign dialogs are suppressed, missing links (fehlende Verknuepfungen), out of date li…

No input schema was published for this tool.

close_documentClose a document. save_changes is required and has no default, because InDesign save dialogs are suppressed. Pass path to save under a new name; it is required for a document that has never been saved when save_changes is "yes". Returns saved_to, had_unsaved_changes and the remaining document ids.…

Close a document. save_changes is required and has no default, because InDesign save dialogs are suppressed. Pass path to save under a new name; it is required for a document that has never been saved when save_changes is "yes". Returns saved_to, had_unsaved_changes and the remaining document ids.…

No input schema was published for this tool.

list_pagesList the document pages. Per page: page_id, index (0-based), side (LEFT_HAND, RIGHT_HAND or SINGLE_SIDED), parent (the applied master page, "[None]" when there is none) and name, which is the printed page number. Read-only. Master pages themselves are listed by list_parent_pages.

List the document pages. Per page: page_id, index (0-based), side (LEFT_HAND, RIGHT_HAND or SINGLE_SIDED), parent (the applied master page, "[None]" when there is none) and name, which is the printed page number. Read-only. Master pages themselves are listed by list_parent_pages.

No input schema was published for this tool.

get_page_stateNo description published

This tool published no description. Forge does not invent one.

create_documentNo description published

This tool published no description. Forge does not invent one.

save_documentSave the document. With path it is a save-as (Speichern unter); without path the document is saved in place. A document that has never been saved needs path, otherwise the call fails with io_error. Returns path as InDesign reports it afterwards.

Save the document. With path it is a save-as (Speichern unter); without path the document is saved in place. A document that has never been saved needs path, otherwise the call fails with io_error. Returns path as InDesign reports it afterwards.

No input schema was published for this tool.

export_pdfNo description published

This tool published no description. Forge does not invent one.

preflight_documentNo description published

This tool published no description. Forge does not invent one.

document_text_defaultsNo description published

This tool published no description. Forge does not invent one.

set_document_bleedSet the document bleed (Anschnitt) and slug (Infobereich). bleed_mm and slug_mm each take a number (0–50, all edges) or an object with top/left/bottom/right; edges you leave out keep their value. Returns bleed_mm and slug_mm per edge plus bleed_uniform and slug_uniform. Independent of the bleed set…

Set the document bleed (Anschnitt) and slug (Infobereich). bleed_mm and slug_mm each take a number (0–50, all edges) or an object with top/left/bottom/right; edges you leave out keep their value. Returns bleed_mm and slug_mm per edge plus bleed_uniform and slug_uniform. Independent of the bleed set…

No input schema was published for this tool.

add_pageNo description published

This tool published no description. Forge does not invent one.

delete_pageprivilegedNo description published

This tool published no description. Forge does not invent one.

move_pagesprivilegedNo description published

This tool published no description. Forge does not invent one.

move_pages_to_new_spreadprivilegedNo description published

This tool published no description. Forge does not invent one.

list_parent_pagesList the master spreads (Musterseiten): name ("A-Cover"), prefix, base_name, applied_to_page_ids[] and pages[] with page_id, index, side and item_count. Those page_ids make master pages readable and editable with get_page_state, set_text or find_replace (scope frame). Read-only.

List the master spreads (Musterseiten): name ("A-Cover"), prefix, base_name, applied_to_page_ids[] and pages[] with page_id, index, side and item_count. Those page_ids make master pages readable and editable with get_page_state, set_text or find_replace (scope frame). Read-only.

No input schema was published for this tool.

create_parent_pageNo description published

This tool published no description. Forge does not invent one.

duplicate_parent_pageNo description published

This tool published no description. Forge does not invent one.

apply_parent_to_pageApply the master spread parent_name (full name with prefix, e.g. "A-Footer") to page_id. "[None]", "none" or "Ohne" detaches the page from its master – an ad page loses header, footer line and page number in one step. Returns page_id and parent_applied as InDesign reports it afterwards.

Apply the master spread parent_name (full name with prefix, e.g. "A-Footer") to page_id. "[None]", "none" or "Ohne" detaches the page from its master – an ad page loses header, footer line and page number in one step. Returns page_id and parent_applied as InDesign reports it afterwards.

No input schema was published for this tool.

override_parent_item_on_pageMake a local copy of a master page object on page_id so it can be edited there. parent_item_id must lie on a master spread (take it from get_page_state on a master page). Returns frame_id of the new local object.

Make a local copy of a master page object on page_id so it can be edited there. parent_item_id must lie on a master spread (take it from get_page_state on a master page). Returns frame_id of the new local object.

No input schema was published for this tool.

insert_page_number_markerInsert the automatic page number placeholder (Seitenzahl-Platzhalter) into text frame frame_id at position "start" or "end" (default end). Works on master page frames too. Returns frame_id and position.

Insert the automatic page number placeholder (Seitenzahl-Platzhalter) into text frame frame_id at position "start" or "end" (default end). Works on master page frames too. Returns frame_id and position.

No input schema was published for this tool.

get_layout_gridNo description published

This tool published no description. Forge does not invent one.

set_layout_gridNo description published

This tool published no description. Forge does not invent one.

list_guidesList every ruler guide (Hilfslinie) of the document – not margin or column guides – from document spreads and, by default, master spreads, merged by id. Per guide: guide_id, orientation (horizontal or vertical), spread_index, is_parent_spread, page_id (null for a horizontal guide on a multi-page sp…

List every ruler guide (Hilfslinie) of the document – not margin or column guides – from document spreads and, by default, master spreads, merged by id. Per guide: guide_id, orientation (horizontal or vertical), spread_index, is_parent_spread, page_id (null for a horizontal guide on a multi-page sp…

No input schema was published for this tool.

delete_guidesprivilegedNo description published

This tool published no description. Forge does not invent one.

create_text_frameNo description published

This tool published no description. Forge does not invent one.

create_image_frameNo description published

This tool published no description. Forge does not invent one.

create_rectangleNo description published

This tool published no description. Forge does not invent one.

create_lineNo description published

This tool published no description. Forge does not invent one.

duplicate_frameDuplicate a text frame, image frame, rectangle, line or group (as a whole, placed graphics included) and shift the copy by offset_mm {x, y}. The duplicate stays on the spread (Druckbogen) of the original – to put it on another page use move_frame_to_page. Returns source_frame_id, frame_id of the du…

Duplicate a text frame, image frame, rectangle, line or group (as a whole, placed graphics included) and shift the copy by offset_mm {x, y}. The duplicate stays on the spread (Druckbogen) of the original – to put it on another page use move_frame_to_page. Returns source_frame_id, frame_id of the du…

No input schema was published for this tool.

delete_frameprivilegedDelete a text frame, image frame, rectangle, line or group (as a whole) by frame_id. A threaded text frame (verketteter Rahmen) takes its own text portion with it; the rest of the story stays in the other frames. There is no undo. Returns frame_id, type, was_threaded, characters_removed and removed…

Delete a text frame, image frame, rectangle, line or group (as a whole) by frame_id. A threaded text frame (verketteter Rahmen) takes its own text portion with it; the rest of the story stays in the other frames. There is no undo. Returns frame_id, type, was_threaded, characters_removed and removed…

No input schema was published for this tool.

clear_frame_contentRemove the placed graphic from a frame and keep the frame itself – position, size, stroke, corners, object style and stacking order stay, for recycled layouts. Text is left untouched (use set_text with "" for that). Returns frame_id and graphics_removed (0 when the frame was empty already), plus re…

Remove the placed graphic from a frame and keep the frame itself – position, size, stroke, corners, object style and stacking order stay, for recycled layouts. Text is left untouched (use set_text with "" for that). Returns frame_id and graphics_removed (0 when the frame was empty already), plus re…

No input schema was published for this tool.

set_frame_boundsNo description published

This tool published no description. Forge does not invent one.

move_frame_to_pageprivilegedNo description published

This tool published no description. Forge does not invent one.

set_frame_rotationSet the absolute rotation of an object in degrees (-360 to 360; positive = counterclockwise, as in InDesign; a portrait photo credit is -90; 0 straightens it). Rotates around the centre of the object. Returns frame_id, angle_deg read back and bounds_mm in the rotated space. Rule: draw frames unrota…

Set the absolute rotation of an object in degrees (-360 to 360; positive = counterclockwise, as in InDesign; a portrait photo credit is -90; 0 straightens it). Rotates around the centre of the object. Returns frame_id, angle_deg read back and bounds_mm in the rotated space. Rule: draw frames unrota…

No input schema was published for this tool.

set_frame_stackingChange the stacking order (Stapelreihenfolge) of an object within its layer: bring_to_front, send_to_back, bring_forward or send_backward. Newly created objects always start on top. Returns frame_id and action.

Change the stacking order (Stapelreihenfolge) of an object within its layer: bring_to_front, send_to_back, bring_forward or send_backward. Newly created objects always start on top. Returns frame_id and action.

No input schema was published for this tool.

set_frame_appearanceNo description published

This tool published no description. Forge does not invent one.

set_frame_columnsSet the number of columns inside a text frame (not the page grid): count (1 or more; the parameter is count, not column_count) and gutter_mm (Spaltenabstand; without it the frame keeps its current gutter – InDesign's own default for new frames is 1 pica = 4.233 mm). Returns frame_id, count and gutt…

Set the number of columns inside a text frame (not the page grid): count (1 or more; the parameter is count, not column_count) and gutter_mm (Spaltenabstand; without it the frame keeps its current gutter – InDesign's own default for new frames is 1 pica = 4.233 mm). Returns frame_id, count and gutt…

No input schema was published for this tool.

set_frame_insetSet the inset spacing (Innenabstand) of a text frame: inset_mm {top, left, bottom, right}, all four required, 0 or more; and/or the vertical justification (vertikale Ausrichtung, Textrahmenoptionen): vertical_justification top, center, bottom or justify. At least one of the two; what is omitted sta…

Set the inset spacing (Innenabstand) of a text frame: inset_mm {top, left, bottom, right}, all four required, 0 or more; and/or the vertical justification (vertikale Ausrichtung, Textrahmenoptionen): vertical_justification top, center, bottom or justify. At least one of the two; what is omitted sta…

No input schema was published for this tool.

19 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

LayoutBridge for Adobe InDesign® – MCP server for Adobe® InDesign® (npm package layoutbridge-spm). Adobe and InDesign are either registered trademarks or trademarks of Adobe in the United States and/or other countries.

Keywords
indesignlayouttypesettingpublishingmcpmcp-server
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-09-24 — observed resolution, not a publisher declaration.

60 packages resolved · 2 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

53 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+41 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.