Skip to main content
Glama

import

Destructive

Loads JSONL records into Goodreads by issuing POST requests for each entry, logging failed records without halting the batch.

Instructions

Import data from a JSONL file by issuing POST requests for each record. Each line must be a valid JSON object. Failed records are logged to stderr but do not stop the import.

Input Schema

NameRequiredDescriptionDefault
csvNoOutput as CSV (table and array responses) (default: false)
yesNoSkip confirmation prompts (for agents and scripts) (default: false)
argsNoAdditional positional arguments or raw CLI flags to append to the command.
jsonNoOutput as JSON (default: false)
agentNoSet all agent-friendly defaults (--json --compact --no-input --no-color --yes) (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)
configNoConfig file path
selectNoComma-separated fields to include in output (e.g. --select id,name,status)
compactNoReturn only key fields (id, name, status, timestamps) for minimal token usage (default: false)
deliverNoRoute output to a sink: stdout (default), file:<path>, webhook:<url>
dry-runNoPreview import without sending requests (default: false)
profileNoApply values from a saved profile (see 'goodreads profile list')
timeoutNoRequest timeout (default: 30s)
no-cacheNoBypass response cache (default: false)
no-colorNoDisable colored output (default: false)
no-inputNoDisable all interactive prompts (for CI/agents) (default: false)
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: 0)
data-sourceNoData source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto)
human-friendlyNoEnable colored output and rich formatting (default: false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already flag destructiveHint=true, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful non-obvious behavior: per-record POSTs and partial-failure semantics (failed records logged to stderr, import continues). It does not mention confirmation prompts, the idempotent or dry-run flags that mitigate destructiveness, or rate limiting, which matter a lot for a destructive bulk-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?

Three short sentences, front-loaded with the action and mechanism, followed by the file format constraint and failure behavior. Nothing is padded, though the format constraint partially restates the schema description of `input`.

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 destructive bulk-write with 23 params and no output schema, the description covers the core semantics an agent needs: the input format, the write mechanism, and non-atomic failure handling. What's missing is where records land and how to preview safely (dry-run), but those gaps are partly bridged by the schema.

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 coverage is 100%, so each of the 23 parameters is already documented in the input schema. The description only clarifies the format expectation for the required `input` file (one JSON object per line), adding little beyond the schema baseline.

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?

States a concrete verb+resource: import records from a JSONL file via per-record POST requests. That distinguishes it from read-oriented siblings like book_get or sql, but it never names the target resource (presumably Goodreads shelves) nor contrasts with sync or enrich, which are the closest alternatives.

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?

No statement of when to use import versus sync, enrich, or workflow_* tools, and no mention of prerequisites such as auth or a prior sync. The agent must infer usage entirely from the name and schema.

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