Skip to main content
Glama

Pack / unpack a create_preset_morph slot set to a vault JSON

morph_pack

Export morph container looks to a portable, sha256-verified JSON pack, then unpack to rebuild (or create) the container. Reuses the original morph engine for consistent topology.

Instructions

Export an existing create_preset_morph container's slots ('looks') to a portable, sha256-verified JSON file in the Obsidian vault (action=pack), or re-hydrate a pack file back into a (newly built if missing) create_preset_morph container (action=unpack). Reuses the create_preset_morph engine — does not invent a new morph topology. Requires TDMCP_VAULT_PATH unless inline 'looks' are supplied on unpack.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesPack name. Used as the JSON filename (<folder>/<name>.morphpack.json) and the morph container default name on unpack.
looksNo(unpack, advanced) Inline-supply the slot set instead of reading vaultPath. Mutually exclusive with vaultPath on unpack; ignored on pack.
mergeNo(unpack) replace: wipe presets and write only the pack's slots. union: keep existing slots and add/overwrite the pack's slots by id.replace
actionYespack: read an existing create_preset_morph container and serialise its slots to a vault JSON. unpack: re-hydrate a pack file into a (newly built if missing) create_preset_morph container, optionally rebinding to a new target.
parentNo(pack) Parent COMP holding the existing morph container (defaults to /project1, matches create_preset_morph). (unpack) Parent COMP where the container is (re)built./project1
containerNo(pack) Name of the existing morph container inside `parent` to read from. Defaults to `name`. (unpack) Name to (re)build; defaults to `name`.
overwriteNo(pack) Overwrite an existing pack file at vault_path.
vault_pathNoVault-relative path to the pack file. Defaults to `MorphPacks/<name>.morphpack.json`. Resolved through Vault.resolve (cannot escape the vault root).
target_pathNo(unpack) Override the target_path stored in the pack provenance (use when the pack came from a different show file and the target's path is different here). Omit to reuse pack provenance.target_path.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the agent knows this tool mutates state. The description adds useful behavioral context: packs are sha256-verified, the tool reuses the existing engine rather than creating new topology, and unpack can rebuild missing containers. It does not mention merge=replace wiping presets in the description, but the schema covers that and there is no direct contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: first defines both modes, second clarifies engine reuse and topology compatibility, third gives the environment prerequisite. It is front-loaded and compact without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dual-mode tool with 9 parameters, the description plus rich schema is sufficient for correct invocation. It includes the key prerequisite (TDMCP_VAULT_PATH) and the container-creation behavior. Return values/provenance details are not described, but the absence is not critical given the schema and sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with detailed descriptions, so the baseline is 3. The description adds a high-level mental model (pack vs unpack, inline looks exception) but does not add meaning beyond what the schema already provides for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: export a create_preset_morph container's slots to a sha256-verified vault JSON (pack) or re-hydrate a pack back into a container (unpack). It names the exact resource and distinguishes the two modes, which also differentiates it from sibling tools like create_preset_morph or manage_presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it explains both actions, states that the tool reuses the existing create_preset_morph engine, and notes the TDMCP_VAULT_PATH requirement unless inline looks are supplied. It does not explicitly name alternative tools or state when not to use it, but the context is strong enough to guide correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasmaher-hash/touch-designer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server