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 skills add u9401066/rootcause-mcp --skill zotero-keeper-harnessgit clone --depth 1 https://github.com/u9401066/rootcause-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/u9401066/rootcause-mcp/zotero-keeper-harness)<a href="https://agentmods.dev/skills/u9401066/rootcause-mcp/zotero-keeper-harness"><img src="https://agentmods.dev/badge/skills/u9401066/rootcause-mcp/zotero-keeper-harness/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/u9401066/rootcause-mcp/zotero-keeper-harness"><img src="https://agentmods.dev/badge/skills/u9401066/rootcause-mcp/zotero-keeper-harness.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00048 | $0.00650 |
| Opus 5 | $0.00024 | $0.00325 |
| Sonnet 5 | $0.00010 | $0.00130 |
| Haiku 4.5 | $0.00005 | $0.00065 |
Grade A, and why
zotero-keeper-harness 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 10d 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 — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Zotero Keeper: Cline Harness Skill
Use this skill when working in this repository with Cline and you need the reliable loop: understand the Zotero/PubMed boundary, make a scoped change, verify it, and keep the VSIX install path healthy.
What To Use First
- Rules:
.clinerules/ - Workflows:
.clinerules/workflows/- Run
/zotero-full-check.mdfor local gates. - Run
/zotero-release-publish.mdfor a guided extension release. - Run
/zotero-skills-audit.mdafter changing skills or rules.
- Run
- Existing skills:
.claude/skills/- If a
.claude/skillsinstruction conflicts with current repo behavior, prefer.clinerules/.
- If a
Canonical Commands
- Keeper Python package:
cd mcp-server && uv run pytest - Keeper lint/type smoke:
cd mcp-server && uv run ruff check . && uv run mypy src --ignore-missing-imports - Extension:
cd vscode-extension && npm run sync-assets && npm run compile && npm test - VSIX package smoke:
cd vscode-extension && npm run package - PubMed submodule smoke:
cd external/pubmed-search-mcp && uv run pytest tests/test_mcp_server.py tests/test_settings.py
Product Guardrails
- Keep Keeper 2.x and PubMed Search MCP 0.6.x on the same MCP SDK v2 runtime; managed-environment upgrades must resolve both packages together.
- Keep Zotero local-library behavior separate from PubMed literature-search behavior.
- Use
import_articlesas the preferred bridge from PubMed results/RIS into Zotero. - Require a confirmed collection; set
allow_library_root=trueonly after the user explicitly approves a My Library root import. - For Zotero 10+ Local API mutations, first obtain a response-bound
server_idfrom a read or authorization and include it asexpected_server_idin theconfirm=falsepreview. Execute the unchanged proposal only after approval; every confirmed mutation requires that identity, and a changed authorization identity requires a fresh read, preview, and approval. - Use a response-bound item object version for
update_item_fields; use the response-bound library cursor forset_attachment_fulltext. Never substitute the attachment object version or replay a 412 conflict. - Keep port 23119 on loopback and the Local API key private. Require
authorize_local_writes(require_remembered=true)plus Always Allow beforeattach_file_to_item. - Do not bypass the NCBI email policy; use explicit settings or the git email fallback.
- Treat VSIX install as a first-class path: bundled repo assets must be synced before compile/package.
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.
- 10d ago First seen · 51 lines · 48 tokens per session scan A f146e47ec259
zotero-keeper-harness is a skill published in the GitHub repository u9401066/rootcause-mcp (0 stars, last pushed 8d ago), licensed Apache-2.0. It adds 48 tokens to every session and 650 once invoked, about $0.0002 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
evaluating-with-leakage-gates
Evaluate an OpenMed de-identification or clinical NER model against the leakage-first release gates G1a through G8, which gate releases on residual PHI leakage rather than on F1. Use when the user wants to run the OpenMed eval harness on a synthetic golden set, decide whether a de-id model is RELEASABLE or…
gating-deid-leakage
Add a CI gate that fails the build when an OpenMed de-identification model's recall on a held-out PHI set drops below threshold or any critical identifier leaks. Use when the user wants a pytest test or CLI step that exits nonzero on de-id regression, wants to wire OpenMed's leakage-first release gates into GitHub…
building-gold-corpus
Scaffold a synthetic gold-standard annotation project for evaluating OpenMed NER and de-identification models — label schema, annotation guidelines, BRAT or Label Studio config, and disjoint train/dev/test splits. Use when the user wants to create eval fixtures, set up annotation, define a label set, write guidelines…
testing
TDD/BDD testing principles. Use when writing tests, reviewing test coverage, setting up testing, or discussing test strategy and test architecture.
testing-flutter
Testing Flutter 3.44 / BLoC v9 / Riverpod 3 - Stratégie Complète. Use when writing tests, reviewing test coverage, or setting up testing.
mutation-testing
Use when running mutation testing, killing mutants, verifying test quality, checking mutation score, or analyzing survivors after the test baseline is green.