Anna's Archive and OpenAlex
Find books, papers and dissertations with Anna's Archive and OpenAlex, then download or read them.
Descripción del creador (original en inglés)
Drive Adobe InDesign from any MCP client: 135+ tools for layout, styles, books and PDF export.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
INDESIGN_APP_NAME, INDESIGN_ALLOWED_DIRS, INDESIGN_BACKENDNecesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"adobe-indesign": {
"command": "npx",
"args": [
"-y",
"adobe-mcp-indesign"
],
"env": {
"INDESIGN_APP_NAME": "your-value",
"INDESIGN_ALLOWED_DIRS": "your-value",
"INDESIGN_BACKEND": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add adobe-indesign --env INDESIGN_APP_NAME=your-value --env INDESIGN_ALLOWED_DIRS=your-value --env INDESIGN_BACKEND=your-value -- npx -y adobe-mcp-indesignCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"adobe-indesign": {
"command": "npx",
"args": [
"-y",
"adobe-mcp-indesign"
],
"env": {
"INDESIGN_APP_NAME": "your-value",
"INDESIGN_ALLOWED_DIRS": "your-value",
"INDESIGN_BACKEND": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"adobe-indesign": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"adobe-mcp-indesign"
],
"env": {
"INDESIGN_APP_NAME": "your-value",
"INDESIGN_ALLOWED_DIRS": "your-value",
"INDESIGN_BACKEND": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
INDESIGN_APP_NAME envINDESIGN_ALLOWED_DIRS envINDESIGN_BACKEND envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub zachshallbetter, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (2.5.0) llegó al registro hace 23 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Anna's Archive and OpenAlex, Neural Cosmology, slopped.site
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Find books, papers and dissertations with Anna's Archive and OpenAlex, then download or read them.
Answers, essays, experiments and books on consciousness and cosmology: search, read, buy.
Read-only tools over slopped.site: AI-made art, lore, games, sites, the curriculum.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Turn Adobe InDesign into an AI design automation platform — 420+ MCP tools for documents, layout, typography, styles, tables, images, long documents, interactive documents, prepress, and PDF and EPUB export. Drive InDesign from Claude, Cursor, Warp, or any MCP client using natural language.
Design ops still means repeating the same layout chores by hand. This server exposes InDesign as structured tools an agent can call: create pages, place assets, apply brand styles, export PDF — without leaving the chat.
Each area covers the panels and dialogs of one part of InDesign, mapped feature by feature to the capability atlas:
osascript) bridge; InDesign version is auto-detected (or set via INDESIGN_APP_NAME)New-Object -ComObject); tries current and recent InDesign ProgIDsINDESIGN_BACKEND=uxp|auto via local bridge + plugin under uxp/tools/listsrc/utils/jsxSafe.js for validated string/number/path interpolation into ExtendScriptUses AppleScript. Grant Automation permissions for your terminal/Node if prompted (System Settings → Privacy & Security → Automation).
InDesign version is resolved in order:
INDESIGN_APP_NAME environment variable (e.g. Adobe InDesign 2026)Adobe InDesign *.app under /Applications or ~/ApplicationsAdobe InDesign 2025Uses COM automation through PowerShell. No extra install steps. InDesign should be installed; the server will attach to a running instance or launch via COM.
Nothing to clone. MCP clients start the server with npx, which downloads it from npm on first run. It is listed in the official MCP Registry as io.github.zachshallbetter/adobe-mcp-indesign.
Claude Code:
claude mcp add indesign -- npx -y adobe-mcp-indesign
Any other client (Claude Desktop claude_desktop_config.json, Cursor, Warp, …):
{
"mcpServers": { "indesign": { "command": "npx", "args": ["-y", "adobe-mcp-indesign"] } } }
Optional environment overrides:
{
"mcpServers": { "indesign": { "command": "npx", "args": ["-y", "adobe-mcp-indesign"], "env": { "INDESIGN_APP_NAME": "Adobe InDesign 2026", "INDESIGN_ALLOWED_DIRS": "/Users/you/Projects:/Users/you/Documents" } } } }
INDESIGN_APP_NAME — macOS only; force a specific app name for AppleScriptINDESIGN_ALLOWED_DIRS — extra directories allowed for file operations (delimiter is : on macOS, ; on Windows)Restart the client, open InDesign, then try: *Create an A4 doc and add a centered title.*
To run from a clone instead (for development), use "command": "node" with "args": ["/ABSOLUTE/PATH/TO/adobe-mcp-indesign/src/index.js"] after npm install.
await tools.call("help");
await tools.call("help", { tool: "create_document" }); await tools.call("help", { category: "text" }); await tools.call("help", { format: "detailed" }); await tools.call("help", { format: "examples" });
await callTool('create_document', {
width: 210, height: 297, pages: 1 });
await callTool('create_text_frame', { content: 'Hello, InDesign!', fontSize: 14 });
await callTool('create_paragraph_style', { name: 'Heading', fontSize: 24, alignment: 'CENTER_ALIGN' });
137 tools in seven areas. The full reference, with every parameter, is docs/TOOLS.md (generated from the same definitions the server advertises).
| Area | Tools | Examples |
|---|---|---|
| Documents & books | 46 | create_document, open_document, save_document, preflight_document, data_merge, validate_document, create_book, export_book |
| Pages & spreads | 30 | add_page, resize_page, create_page_guides, place_file_on_page, list_spreads, duplicate_spread |
| Text & tables | 5 | create_text_frame, edit_text_frame, create_table, populate_table, find_replace_text |
| Graphics & images | 8 | place_image, create_rectangle, create_polygon, create_object_style |
| Styles & colors | 8 | create_paragraph_style, create_character_style, create_color_swatch, apply_color |
| Layout, masters & layers | 30 | move_page_item, create_group, create_master_spread, detach_master_items, create_layer |
| Export & utilities | 10 | export_pdf, export_images, export_epub, package_document, indesign_status, execute_indesign_code |
initialize response (units, indexes, colors, fonts, paths, errors), which MCP clients pass to the model.readOnlyHint, destructiveHint, idempotentHint and openWorldHint let clients ask before destructive calls such as delete_page, cleanup_document or close_document (which discards unsaved changes).isError: true with a message such as "No document open" or "Error: color swatch 'Brand' not found".help({ tool }) returns any tool's parameters; help({ category }) lists tools by area."#RRGGBB", fonts as "Family\tStyle". See docs/LLM_PROMPT.md for workflows.The server tracks page dimensions and active document metadata so tools can place content with sensible defaults when coordinates are omitted.
await callTool('get_session_info', {});
await callTool('clear_session', {});
await callTool('create_text_frame', { content: 'Auto-positioned text', fontSize: 12 });
src/
├── core/ │ ├── InDesignMCPServer.js # MCP server │ ├── scriptExecutor.js # macOS AppleScript + Windows COM │ └── sessionManager.js # Session state ├── handlers/ # Tools by domain │ ├── documentHandlers.js │ ├── pageHandlers.js │ ├── textHandlers.js │ ├── styleHandlers.js │ ├── graphicsHandlers.js │ ├── bookHandlers.js │ ├── pageItemHandlers.js │ ├── groupHandlers.js │ ├── masterSpreadHandlers.js │ ├── spreadHandlers.js │ ├── layerHandlers.js │ ├── exportHandlers.js │ ├── utilityHandlers.js │ ├── helpHandlers.js │ └── index.js ├── types/ # Tool definitions ├── utils/ │ ├── stringUtils.js # Response helpers, escapeJsxString │ └── jsxSafe.js # Validated ExtendScript literals / paths └── index.js
| Platform | Mechanism | Notes |
|---|---|---|
| macOS | osascript → do script | App name auto-detected; temp .jsx in OS temp dir |
| Windows | PowerShell COM DoScript | ProgIDs tried newest-first; temp .jsx in OS temp dir |
Tool arguments that flow into JSX should go through src/utils/jsxSafe.js:
str(), num(), bool(), index(), enumOf(), measure(), json(), numList()validateFilePath() / jsxPath() for filesystem paths (INDESIGN_ALLOWED_DIRS)Every handler uses these helpers; raw argument strings never reach a script.
Scripts report failures as text ("No document open", "Error …", "… not found"). The server recognizes these (looksLikeFailure in src/utils/stringUtils.js) and returns them with success: false and MCP isError: true, so clients can tell a failed call from a successful one.
npm run check # syntax check core modules
npm test # everything below that needs no InDesign npm run test:audit # script audit only; pass a regex to audit some tools npm run test:integration # full suite — requires InDesign running npm run test:unified # single-document unified runner
npm test covers:
INDESIGN_ALLOWED_DIRShelp for eachisError resultsdocs/TOOLS.md matches theSolo se muestra el principio; lee el resto en el repo