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 pvliesdonk/markdown-vault-mcp --skill logging-standardgit clone --depth 1 https://github.com/pvliesdonk/markdown-vault-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/pvliesdonk/markdown-vault-mcp/logging-standard)<a href="https://agentmods.dev/skills/pvliesdonk/markdown-vault-mcp/logging-standard"><img src="https://agentmods.dev/badge/skills/pvliesdonk/markdown-vault-mcp/logging-standard/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/pvliesdonk/markdown-vault-mcp/logging-standard"><img src="https://agentmods.dev/badge/skills/pvliesdonk/markdown-vault-mcp/logging-standard.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00033 | $0.00735 |
| Opus 5 | $0.00016 | $0.00367 |
| Sonnet 5 | $0.00007 | $0.00147 |
| Haiku 4.5 | $0.00003 | $0.00073 |
Grade A, and why
logging-standard 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 — 58 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Logging Standard
Logging Standard
Scope
This standard governs first-party code only — src/markdown_vault_mcp/ and
tests/. Two categories of log output are explicitly out of scope; do not
try to make them conform:
- FastMCP middleware stack (
fastmcp-pvl-coretiming / logging / error-handling middleware): emits conforming, bare-event-name-first lines automatically. Tool-call lines carrytool=<name>. Governed byfastmcp-pvl-coreitself (see pvliesdonk/fastmcp-pvl-core#90); no first-party code needed. uvicorn.accessandmcp.server.lowlevel.serverlog lines: upstream transport / SDK output.configure_logging_from_envraises their effective level toWARNING, suppressing per-requestINFOoutput at the default level; atDEBUGthey are reset toNOTSETso the root logger governs their effective level via propagation (pvliesdonk/fastmcp-pvl-core#91).uvicorn.erroris intentionally not suppressed — it carries startup and bind failures. Do not silence or reformat any of these — they are out of scope by design.
Framework
- Standard library
loggingthroughout. Every module:logger = logging.getLogger(__name__). - No
print()for operational output. No third-party logging libraries. - FastMCP middleware handles tool invocation, timing, and error logging automatically.
- All first-party logging goes through FastMCP's
configure_logging_from_env()for uniform output.FASTMCP_LOG_LEVELis the single log level control; the-vCLI flag sets it toDEBUG.FASTMCP_ENABLE_RICH_LOGGING=falseswitches to plain/JSON output.
Log Levels
| Level | Use for |
|---|---|
DEBUG |
Detailed internals: cache hits, parameter values, config resolution |
INFO |
Significant operations: service startup, configuration decisions (tool calls logged by middleware) |
WARNING |
Degraded but continuing: API errors with fallback, missing optional config, unexpected data |
ERROR |
Failures affecting the primary result. Use logger.error(..., exc_info=True) when traceback is needed |
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 · 58 lines · 33 tokens per session scan A 6d292ada2fab
logging-standard is a skill published in the GitHub repository pvliesdonk/markdown-vault-mcp (32 stars, last pushed today), licensed MIT. It adds 33 tokens to every session and 735 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-30.
Other skills, from other repositories
mnemonic
Search local indexed markdown knowledge bases. Use when the user asks to find notes, dig up a concept from personal docs, cross-reference ideas across wikis, or answer from indexed local files. Triggers on "look up in notes", "search my docs", "what did I write about", "find in my vault", "check my index", "retrieve…
youtube-fetcher
Retrieve YouTube transcripts and subtitles, summarize or analyze what was said, or save an Obsidian-ready Markdown knowledge-base note with captions, creator metadata, chapters, language, and source provenance. Use for a YouTube URL or video ID when the request needs spoken content or an archival note. A bare YouTube…
link-memory
Use after important user-approved decisions, when durable context should be proposed or reviewed, and for explicit Link memory lifecycle work: remember, recall, review, update, archive, restore, forget, or explain local memories through the CLI without requiring MCP.
link-retrieve
Use before answering work that may depend on user memory, project history, source-backed notes, or prior decisions; retrieve compact Link context through the CLI without loading the whole wiki or requiring MCP.
link-ingest
Use when raw files are present, source pages look stale, or a user asks to ingest notes into Link; refresh source-backed wiki pages, propose memories, and validate updates through the CLI without MCP.
reduce
Extract structured knowledge from source material. Comprehensive extraction is the default — every insight that serves the domain gets extracted. For domain-relevant sources, skip rate must be below 10%. Zero extraction from a domain-relevant source is a BUG. Triggers on "/reduce", "/reduce [file]", "extract…