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 Nyrest/capacities-mcp-enhanced --skill capacities-mcp-best-practicegit clone --depth 1 https://github.com/Nyrest/capacities-mcp-enhancedWrote 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/nyrest/capacities-mcp-enhanced/capacities-mcp-best-practice)<a href="https://agentmods.dev/skills/nyrest/capacities-mcp-enhanced/capacities-mcp-best-practice"><img src="https://agentmods.dev/badge/skills/nyrest/capacities-mcp-enhanced/capacities-mcp-best-practice/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/nyrest/capacities-mcp-enhanced/capacities-mcp-best-practice"><img src="https://agentmods.dev/badge/skills/nyrest/capacities-mcp-enhanced/capacities-mcp-best-practice.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.00097 | $0.02133 |
| Opus 5 | $0.00048 | $0.01066 |
| Sonnet 5 | $0.00019 | $0.00427 |
| Haiku 4.5 | $0.00010 | $0.00213 |
Grade A, and why
capacities-mcp-best-practice 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 11d 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 — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Capacities MCP Best Practices
Use this skill as the operating manual for the Capacities MCP server. Assume no prior knowledge of Capacities. Treat the server's current tool schemas and live inspect_space output as authoritative when they are more specific than this guide.
Load only the references needed
- Read references/tools.md before selecting or calling a tool. It documents all tools and parameters.
- Read references/properties-and-objects.md when working with structures, properties, fields, collections, dates, labels, entities, aliases, or icons.
- Read references/structural-content.md before constructing or editing structured blocks or tokens.
- Read references/markdown-and-entities.md before any Markdown write or when interpreting Markdown output.
- Read references/responses-errors-and-recovery.md before a mutation, and whenever a call fails, is unverified, is partial, or is rate-limited.
Do not load every reference for a simple read-only lookup.
Mental model
Capacities stores typed objects inside a space:
- A structure is an object type, such as Page, Tag, Task, or a custom type.
- A structure defines typed properties. Object property values must conform to the live definition.
- An object can belong to zero or more collections.
- Object body content is a tree of blocks. Rich text inside blocks is an ordered array of tokens.
- Markdown is a convenient, intentionally lossy representation of body content. It does not replace typed properties or exact block editing.
Never infer a custom structure, property ID, label option, collection ID, or target object ID from a display name alone when live discovery can resolve it.
Required workflow
- Interpret the request. Separate object metadata, typed properties, collections, body content, and destructive intent. Determine whether the user wants a read, an append, an exact edit, or replacement.
- Discover the live model. Call
inspect_space. For a write to a named or unfamiliar structure, request that structure's full definition and write guide. Userefresh: trueonly when definitions may have changed during the session. - Resolve existing objects. Use
search_objectsfor title discovery, thenget_objectby UUID. Search is title-only and is not proof of object contents. - Choose a content representation. Use the decision table below. Do not mix Markdown assumptions into structural edits.
- Construct a valid payload. Use live property definitions plus the exact schemas in the references. Omit unchanged values. Treat supplied property arrays and child arrays as replacements where documented.
- Establish a before snapshot for edits. Call
get_objectwithformat: "structured"before updating metadata, properties, collections, blocks, or deleting content. Keep the relevant IDs and subtree. - Use concurrency-safe object operations. Same-object reads may run concurrently; mutations use an exclusive object lock and wait for active reads or other writes, while different objects proceed concurrently. Do not replay a multi-stage create blindly after a timeout, rate limit, or partial failure.
- Interpret verification. Synchronous mutation responses include readback verification. Check both the response envelope and
verification; do not equate transport success with confirmed persistence. - Confirm the result. When precision matters, or verification is disabled, mismatched, or failed, call
get_objectagain and compare the requested fields or block subtree with the before snapshot. For deletion, verify not-found as documented. - Report honestly. State what changed, whether readback verified it, and any loss, warning, recoverable object ID, or unresolved ambiguity.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 11d ago First seen · 116 lines · 97 tokens per session scan A 40781b68cd48
capacities-mcp-best-practice is a skill published in the GitHub repository Nyrest/capacities-mcp-enhanced (2 stars, last pushed 23d ago), licensed MIT. It adds 97 tokens to every session and 2,133 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
memai-maintenance
Orchestrator of the MemAI MAINTENANCE pass (long-term agent memory). Runs [[memai-checkpoints]], [[memai-distill]], [[memai-confidence]] and [[memai-link]] as one curation pass, owns what none of them covers — the DOMAIN TREE (nested paths, cross-listing, casing), the DIAGRAMS and the store's DECAY (reviewafter) — and…
memai-confidence
Verify a MemAI memory's claims against live facts and set its confidence (unverified | confirmed | contradicted). Checks the anchors a scan already extracted — file:line, symbol, table/column, domain, URL — against today's source, promotes or demotes each memory, stages a reword for a detail that drifted, and pushes…
memai-checkpoints
The lifecycle of MemAI CHECKPOINTS: deciding which bearing is still current and which one is superseded, archiving the checkpoint of work that is closed or an intra-session trail that a newer one already covers, keeping the single bearing a live effort still needs, correcting a fact in a kept checkpoint that has gone…
memai-distill
Distill and MOVE knowledge between MemAI types: pull what is durable out of one checkpoint (or several) into a note/reasoning/antipattern, change a memory's type (checkpoint→note when the content is timeless), and merge near-duplicates. Use when the user asks to "distill memory", "turn a checkpoint into a note", "move…
memai-link
Stitch the MemAI relations GRAPH: typed edges between memories (supersedes / relatesto / contradicts / linksto), turning [[wikilinks]] written in a body into real edges, connecting complementary memories that share a domain, and preserving lineage (checkpoint to note, archived to successor). Uses dedupscan to find…
memai-memory
How to use the MemAI MCP server (long-term agent memory: one ACID SQLite store, BM25 keyword search) — which tool family to call when: pulse/search/recall/listbydomain/listrecent/ listdomains/getmemory/help to read; note, reasoning, antipattern, checkpoint, handoff, diagram to write; diagram/getdiagram for flows…