Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/tternquist/marklogic-mcp/marklogic-fasttracknpx skills add tternquist/marklogic-mcp --skill marklogic-fasttrackgit clone --depth 1 https://github.com/tternquist/marklogic-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tternquist/marklogic-mcp/marklogic-fasttrack)<a href="https://agentmods.dev/skills/tternquist/marklogic-mcp/marklogic-fasttrack"><img src="https://agentmods.dev/badge/skills/tternquist/marklogic-mcp/marklogic-fasttrack.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00104 | $0.01525 |
| Opus 5 | $0.00052 | $0.00763 |
| Sonnet 5 | $0.00021 | $0.00305 |
| Haiku 4.5 | $0.00010 | $0.00153 |
Grade A, and why
marklogic-fasttrack scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MarkLogic FastTrack
FastTrack is a React component library over MarkLogic's Search API. The UI is driven almost entirely by a stored search options set — get that right and the components mostly configure themselves.
Order of work
- Confirm the indexes exist (
ml_indexes_list). Every facet constraint needs one. - Write the search options and store with
ml_search_options_put. - Verify server-side with
ml_searchbefore touching React. - Scaffold the React app.
Skipping step 3 is the usual reason a FastTrack UI shows no facets — the options set was rejected or the index is missing, and the component just renders empty.
Constraint index rules
Prefer path indexes. For JSON content, a path-index with path //fieldName uses a
range-path-index, creatable via admin:database-add-range-path-index through
ml_eval_xquery.
json-property is the fallback — it needs a range-json-property-index, which is only
creatable through the Management API on port 8002.
// string facet
{"name":"field","range":{"type":"xs:string","facet":true,"path-index":{"text":"//field"}}}
// numeric facet
{"name":"field","range":{"type":"xs:decimal","facet":true,"path-index":{"text":"//field"}}}
// date facet (with buckets)
{"name":"field","range":{"type":"xs:date","facet":true,"path-index":{"text":"//field"}}}
Dates stored as ISO strings (YYYY-MM-DD) should use xs:string, not xs:date —
ISO strings sort chronologically, and this avoids a cast that will fail on any malformed
value.
Geospatial (map widget) — a geo-elem-pair constraint with parent/lat/lon. Only add
it if the schema actually has geo fields.
⚠ Bucket syntax: name, not label
CORRECT: {"name":"Under 80k","lt":"80000"}
CORRECT: {"name":"80-100k","ge":"80000","lt":"100000"}
WRONG: {"label":"Under 80k","lt":"80000"}
label produces XDMP-VALIDATEMISSINGATTR and a 400 from the REST API. Every bucket
needs a name.
Options skeleton
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 141 lines · 104 tokens per session scan A 3edf5b1821bb
marklogic-fasttrack is a skill published in the GitHub repository tternquist/marklogic-mcp (3 stars, last pushed 14d ago), licensed MIT. It adds 104 tokens to every session and 1,525 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
payload
Use when working with Payload projects (payload.config.ts, collections, fields, hooks, access control, Payload API). Use when debugging validation errors, security issues, relationship queries, transactions, or hook behavior.
sqlite-schema-design
Design or review schemas for crates/cloudsync using SQLite Sync constraints, not generic SQLite advice. Use when adding synced tables, changing synced columns, or planning CloudSync-safe migrations.
reactive-sqlite-ui
Build SQLite-backed reactive UI in apps/desktop using stable patterns for reads, selection, forms, writes, and loading states. Use when implementing or reviewing screens built on useDrizzleLiveQuery and SQLite mutations.
build-with-tinybase
Scaffold, extend, and verify reactive local-first JavaScript or TypeScript applications with TinyBase. Use when choosing TinyBase for in-memory tabular or key-value state, generating an app with create-tinybase, adding schemas or UI bindings, configuring browser or database persistence, configuring MergeableStore…
migrate-to-sqlite
Migrate a TinyBase table to SQLite. Use when asked to move a data domain (e.g. templates, vocabs) from the TinyBase store to the app SQLite database.
editor-perf
Guides performance investigation, benchmarking, and optimization of the Grida Canvas web editor (TypeScript reducer, Immer, React hooks). Use when profiling reducer dispatch cost, diagnosing slow interactions (drag, resize, color change), writing or running editor benchmarks, instrumenting with PerfObserver, or…