Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/moebiusst/indesign-scripting-mcp/indesign-mcp-operatornpx skills add MoebiusSt/indesign-scripting-mcp --skill indesign-mcp-operatorgit clone --depth 1 https://github.com/MoebiusSt/indesign-scripting-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/moebiusst/indesign-scripting-mcp/indesign-mcp-operator)<a href="https://agentmods.dev/skills/moebiusst/indesign-scripting-mcp/indesign-mcp-operator"><img src="https://agentmods.dev/badge/skills/moebiusst/indesign-scripting-mcp/indesign-mcp-operator.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00059 | $0.00675 |
| Opus 5 | $0.00030 | $0.00338 |
| Sonnet 5 | $0.00012 | $0.00135 |
| Haiku 4.5 | $0.00006 | $0.00068 |
Grade A, and why
indesign-mcp-operator scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
InDesign MCP Operator
Goal
Execute InDesign tasks safely and repeatably with indesign-dom and indesign-exec MCP servers.
Workflow
- Inspect current state.
- Look up API facts.
- Run JSX with explicit undo policy.
- Verify outcomes.
- Roll back if needed.
- Capture new learnings.
Required Sequence
For non-trivial tasks, run these steps in order:
get_quick_reference()get_gotchas(context)- DOM lookup (
search_dom,lookup_class,get_method_detail, ...) run_jsx(...)with:undo_mode="entire"for any mutation- a descriptive
undo_name(Agent: <task>)
- Verification (
eval_expression,get_document_info,get_selection) - If result is wrong: run some targeted corrective attempts first; use
undo(steps=1)immediately only when document state is uncertain, partially corrupted, or broad rollback is safer than incremental fixes.
For strictly read-only checks, use undo_mode="none".
Script Labels Policy
- Temporary keys must start with
_tmp_. - Persistent keys must start with
agentContext_. - Always clear temporary keys at task end:
doc.insertLabel("_tmp_key", "")
- Keep persistent labels only when they have proven cross-session value.
- Optionally maintain
_agentLabelRegistrywith all persistent keys.
JSX Rules
- Use ES3 syntax only (
var, classic functions). - Assign outputs to
__result; do not usereturn. - Prefer collection APIs over loops:
everyItem(),itemByName(),itemByID(),itemByRange().
- Clear find/change prefs before usage:
app.findTextPreferences = NothingEnum.NOTHINGapp.changeTextPreferences = NothingEnum.NOTHING
Safety Gates
Before mutation:
- Confirm a document is open and correct.
- Confirm key assumptions with read-only checks.
After mutation:
- Verify the specific target state changed as intended.
- If partial failure is detected, undo first, then retry with narrower scope.
Learning Loop
When a user-reported issue is resolved with clear root cause:
- Check for equivalent gotcha first.
- Submit via
report_learning(...). - Keep entries concise and actionable.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 78 lines · 59 tokens per session scan A f816088e874a
indesign-mcp-operator is a skill published in the GitHub repository MoebiusSt/indesign-scripting-mcp (2 stars, last pushed 6mo ago), licensed MIT. It adds 59 tokens to every session and 675 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
html-ppt-zhangzara-retro-zine
A neighborhood zine on the disappearing corner shops — portraits, voices, and what a block loses when they close. Built as a decision-grade story deck for community, local readers.
html-ppt-zhangzara-studio
A photography studio's portfolio-and-rate deck — the signature work, the process, and the packages that win the brief. Built as a decision-grade design craft deck for prospective clients.
motion-frames
A single-frame motion-design composition with looping CSS animations — rotating type ring, animated globe, ticking timer, parallax labels. Renders as a hero video poster you can hand straight to HyperFrames or any keyframe-based exporter. Use when the brief asks for "motion design", "animated hero", "loop", "video…
webgl-halftone-drift
A self-contained WebGL2 hero: a flowing field screened through a rotated halftone dot grid into a duotone print aesthetic; move the cursor to bend the drift.
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
motion-graphics
A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI…