Skip to main content
Glama

import

Destructive

Load JSONL data into AnkiWeb by creating or upserting records through API calls; use dry-run preview and confirmation controls to validate changes before applying.

Instructions

Import data from JSONL file via API create/upsert calls

Input Schema

NameRequiredDescriptionDefault
csvNoOutput as CSV (table and array responses) (default: false)
yesNoSkip confirmation prompts (explicit confirmation for scripts) (default: false)
jsonNoOutput as JSON (default: false)
agentNoSet agent-friendly output defaults (--json --compact --no-input --no-color) (default: false)
inputYesInput JSONL file path (use - for stdin)
plainNoOutput as plain tab-separated text (default: false)
quietNoBare output, one value per line (default: false)
selectNoComma-separated fields to include in output (e.g. --select id,notetype_id,deck_id)
compactNoReturn only key fields (id, name, status, timestamps) for minimal token usage (default: false)
dry-runNoPreview import without sending requests (default: false)
max-ageNoMaximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s)
receiptNoWrite an atomic private run receipt (default: false)
timeoutNoRequest timeout (default: 1m0s)
no-cacheNoBypass response cache (default: false)
no-colorNoDisable colored output (default: false)
no-inputNoDisable all interactive prompts (for CI/agents) (default: false)
no-learnNoDisable the teach/recall learning loop for this invocation (default: false)
resourceYesPositional argument <resource>
batch-sizeNoRecords per batch (future: batch API support) (default: 1)
idempotentNoTreat already-existing create results as a successful no-op (default: false)
rate-limitNoMax requests per second (0 to disable; default auto — pace to server rate-limit headers) (default: auto)
data-sourceNoData source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
client-profileNoSelect the tenant-gated client profile (env: ANKIWEB_CLIENT_PROFILE)
human-friendlyNoEnable colored output and rich formatting (default: false)
allow-partial-failureNoDowngrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the safety profile is largely covered. The description adds the meaningful detail that this issues create/upsert API calls, but says nothing about partial failure handling, dry-run previewing, or rate-limit pacing — behaviors that matter for a bulk destructive write.

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

Conciseness4/5

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

A single front-loaded sentence with no padding — genuinely tight. It is arguably too sparse for a 25-parameter destructive tool, but it is not verbose or poorly ordered.

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

Completeness2/5

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

For a destructive bulk-import tool with 25 parameters and no output schema, one sentence is markedly incomplete. It omits the existence of dry-run, idempotent no-op handling, allow-partial-failure semantics, and batching, all of which an agent needs to invoke this safely.

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?

Schema description coverage is 100%, so all 25 parameters are already documented in the schema; the description adds no parameter-level meaning. The baseline of 3 applies, and the description does nothing to compensate for the sheer breadth of options.

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

Purpose4/5

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

The description names a specific verb ('Import') and resource ('data from JSONL file') plus the underlying mechanism ('via API create/upsert calls'), so the agent knows what happens. It does not differentiate from the sibling card_import, which overlaps in purpose, leaving ambiguity about which import tool to pick.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus card_import or any other sibling, and no prerequisites or exclusions are stated. The only hint of usage context ('via API create/upsert') is incidental, not instructional.

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