Skip to main content
Glama

ingest

DestructiveIdempotent

Import local or cloned markdown into an OKF bundle, or adopt files in place by adding rule-based type, title, status, and git provenance frontmatter. Run without applying first to preview changes.

Instructions

Bring markdown from a local directory or git clone into an OKF bundle, or adopt it in place (bundle = source; needs a clean git tree, so the diff is the review). Each file gets frontmatter: type from rules ({glob: type}, first match, else Document), title (its own, its H1, or the filename), status (default draft: imported, not reviewed), optional stale_after, and provenance where git has it: sources (a permalink and last_modified) and generated {by, at, basis: git-history}. Existing keys are kept. Never overwrites; files that already have type are skipped, so a re-run is a no-op. A reserved index.md/log.md carrying frontmatter is renamed -index.md/-log.md. apply=False is the plan: run it first, sample files, set rules. keep_okf=true merges another OKF bundle: files that have type are copied as they are (plus an origin source when git has one) and the source's index.md/log.md are left behind. It does not clone, convert other formats, scan for secrets or check licenses.

Input Schema

NameRequiredDescriptionDefault
applyNo
limitNo
rulesNo
bundleNo
offsetNo
sourceYes
statusNodraft
keep_okfNo
max_bytesNo
stale_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: never overwrites, skips files that already own a `type` so re-runs are no-ops, keeps existing keys, renames reserved index.md/log.md to avoid collisions, and requires a clean git tree. The keep_okf merge path and its exceptions (source index/log left behind) are spelled out, which an agent could not infer from destructiveHint=true alone.

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?

Purpose is front-loaded and nearly every clause carries new information (frontmatter derivation, merge semantics, exclusions). It is a single dense block with heavy parenthetical nesting, so scanning for the keep_okf behavior mid-paragraph takes effort.

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?

Very complete for a complex, destructive, ten-parameter tool: frontmatter rules, skip logic, rename behavior and merge semantics are all covered, and the absence of an output schema is partly mitigated by the 'apply=False is the plan; sample files' guidance. The gap is the undocumented limit/offset/max_bytes behavior, which could cause an agent to under-ingest and assume completion.

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?

With 0% schema coverage the description must carry all ten parameters; it explains apply, rules ({glob: type}), bundle (source, adopt-in-place), keep_okf, status, stale_days/stale_after and source. But limit, offset and max_bytes — the pagination and size-cap controls that determine whether a single call ingests everything — are never mentioned.

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 specific verb and resource: bring markdown from a local directory or git clone into an OKF bundle, with a distinct 'adopt in place' mode. The closing exclusions (does not clone, convert other formats, scan for secrets, check licenses) carve out territory from migrate/index-style siblings, though no sibling is named directly.

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?

'apply=False is the plan: run it first, sample files, set rules' gives an explicit recommended workflow and ordering. It also states the prerequisite (clean git tree) and the negative scope, but never routes the agent to a named alternative tool for the excluded cases.

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