Skip to main content
Glama

create-import-schedule

Create a recurring import: the same definition as create-import-csv (action, sellerId, keyColumn, mappedColumns, options) plus a fileUrl the platform re-reads on every run and a frequency. It shows up in the app's scheduled imports.

Run it with dryRun: true first. An https CSV is fetched and the mapping checked against its real columns; for sftp://, ftp:// or an Excel file, send the file's header row as columns. Created INACTIVE unless active is true — the usual sequence is dry run, create, update-import-schedule with active true. The platform switches a schedule off with errorDescription "Invalid Plan" if the plan lacks the feature. Authenticated via bearer token.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>",
      "name": "<name>",
      "sellerId": "<sellerId>",
      "fileUrl": "<fileUrl>",
      "frequency": "<frequency>",
      "keyColumn": "<keyColumn>"
    },
    "name": "create-import-schedule"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesName shown for the schedule in the app
endAtNoLast moment it may run, ISO 8601. Omit for no end.
actionYesWhat each run does; see get-import-catalog
activeNoStart running. Defaults to false.
dryRunNoValidate the URL, columns and mapping and report them without saving the schedule
columnsNoThe file's header row, for a source the API cannot read itself (sftp://, ftp://, Excel). The mapping is checked against it. An https CSV is fetched and checked against its real columns instead.
fileUrlYesWhere every run reads the file from: https:// (a link carrying its own access token, no user:password@), sftp://user:password@host:22/path/file.csv or ftp://user:password@host/path/file.csv. Percent-encode special characters in a password (@ is %40). A URL ending .xlsx needs options.sheet_name. Credentials are stored and never returned.
keyTypeNoWhat keyColumn holds. Defaults to sku.
optionsNoPer-action settings, e.g. { update_existing: true } on a catalog import. See options in get-import-catalog; an unrecognised key is rejected rather than ignored.
startAtNoFirst run, ISO 8601 with an offset or Z. Later runs are whole intervals after it, so this also sets the time of day. Defaults to now.
sellerIdYesSeller account every run imports into; see get-sellers
timezoneNoIANA time zone the app shows its dates in (display only)
frequencyYesHow often it runs. The _minutes frequencies need the Dedicated Import Server add-on.
keyColumnYesThe column identifying which record each row is about — the SKU column, or the item ID column when keyType is itemId. Must be a column in the file.
valueChangesNoChange a value before it is written, per target field: ordered steps run on the file value after the row filters. Keyed by the target field (`SKU`, `Price`, ...) or by `item_id_column` for the key column itself, which then changes the value the rows are matched by. Text steps (`add_prefix`, `add_suffix`, `remove_prefix`, `remove_suffix` with `text`; `find_replace` with `find`, `replace`, `match_case`, `whole_word`; `capitalize_first`, `capitalize_words`, `lowercase`, `uppercase`, `remove_non_numeric`, `remove_digits`, `remove_linebreaks`, `remove_html`, `trim`) and number steps (`multiply`, `divide`, `add`, `subtract`, `increase_percent`, `decrease_percent` with `value`) can be mixed; a number step on a value that is not a number leaves it unchanged. `round` (`none`, `two_decimals`, `up`, `down`) and `charm_price` (end with .99) apply once after the number steps. The actions are listed in `get-import-catalog`.
mappedColumnsNoColumn name in the file -> target field, or { title, fallback } to supply a value for empty cells. "Don't import" skips a column and a "c:" prefix writes a custom attribute (e.g. "c:Fitment"). Omit to auto-map columns whose names already match a target field, which is how an import_format export round-trips.
allowUnknownTargetsNoAccept a mapping target the catalog does not list for this action. Off by default — an unrecognised target is dropped silently.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / valueChanges
      Added value: +{
      +  "additionalProperties": {
      +    "properties": {
      +      "charm_price": {
      +        "type": "boolean"
      +      },
      +      "round": {
      +        "enum": [
      +          "none",
      +          "two_decimals",
      +          "up",
      +          "down"
      +        ],
      +        "type": "string"
      +      },
      +      "steps": {
      +        "items": {
      +          "properties": {
      +            "action": {
      +              "enum": [
      +                "add_prefix",
      +                "add_suffix",
      +                "remove_prefix",
      +                "remove_suffix",
      +                "find_replace",
      +                "capitalize_first",
      +                "capitalize_words",
      +                "lowercase",
      +                "uppercase",
      +                "remove_non_numeric",
      +                "remove_digits",
      +                "remove_linebreaks",
      +                "remove_html",
      +                "trim",
      +                "multiply",
      +                "divide",
      +                "add",
      +                "subtract",
      +                "increase_percent",
      +                "decrease_percent"
      +              ],
      +              "type": "string"
      +            },
      +            "find": {
      +              "description": "find_replace: plain text to find",
      +              "type": "string"
      +            },
      +            "match_case": {
      +              "type": "boolean"
      +            },
      +            "replace": {
      +              "description": "find_replace: replacement",
      +              "type": "string"
      +            },
      +            "text": {
      +              "description": "add_prefix, add_suffix, remove_prefix, remove_suffix",
      +              "type": "string"
      +            },
      +            "value": {
      +              "description": "number actions",
      +              "type": "number"
      +            },
      +            "whole_word": {
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "action"
      +          ],
      +          "type": "object"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "steps"
      +    ],
      +    "type": "object"
      +  },
      +  "description": "Change a value before it is written, per target field: ordered steps run on the file value after the row filters. Keyed by the target field (`SKU`, `Price`, ...) or by `item_id_column` for the key column itself, which then changes the value the rows are matched by. Text steps (`add_prefix`, `add_suffix`, `remove_prefix`, `remove_suffix` with `text`; `find_replace` with `find`, `replace`, `match_case`, `whole_word`; `capitalize_first`, `capitalize_words`, `lowercase`, `uppercase`, `remove_non_numeric`, `remove_digits`, `remove_linebreaks`, `remove_html`, `trim`) and number steps (`multiply`, `divide`, `add`, `subtract`, `increase_percent`, `decrease_percent` with `value`) can be mixed; a number step on a value that is not a number leaves it unchanged. `round` (`none`, `two_decimals`, `up`, `down`) and `charm_price` (end with .99) apply once after the number steps. The actions are listed in `get-import-catalog`.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare non-readOnly, non-destructive, closed-world; the description adds real behavior: the schedule is created INACTIVE unless active is true, and the platform disables it with errorDescription 'Invalid Plan' when the plan lacks the feature. It also notes bearer-token auth. Return shape is not described, but no output schema exists and the description carries most of the burden.

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?

Four tightly packed sentences: purpose, dry-run prerequisite, activation lifecycle, plan limitation, auth. The most decision-relevant information (what it creates, the dry-run-first rule, the inactive default) is front-loaded with no 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 17-parameter tool with nested objects and no output schema, the description covers the mutation lifecycle and the validation path an agent needs before calling it. It leaves per-parameter detail to the very thorough schema, which is reasonable, though a note on what the create response returns would have closed the remaining gap.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description adds operational meaning beyond it by explaining that fileUrl is re-read on every run and why columns is needed only for sources the API cannot read (sftp://, ftp://, Excel). It does not add format or default details beyond what the schema already documents.

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?

States a specific verb and resource ('Create a recurring import') and immediately positions it against the sibling create-import-csv by defining it as the same definition 'plus a fileUrl ... and a frequency'. An agent can distinguish it from create-import-csv and create-import-schedule's update/run variants without opening any schema.

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

Usage Guidelines5/5

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

Gives an explicit call sequence — dry run first, then create, then update-import-schedule with active true — and names the sibling tool used in the final step. It also states the dry-run prerequisite per source type (https CSV fetched vs. sftp/ftp/Excel requiring a header row), so the agent knows what to do before invoking.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.