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/mdcms-ai/mdcms/mdcms-sdk-integrationnpx skills add mdcms-ai/mdcms --skill mdcms-sdk-integrationgit clone --depth 1 https://github.com/mdcms-ai/mdcmsWrote 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/mdcms-ai/mdcms/mdcms-sdk-integration)<a href="https://agentmods.dev/skills/mdcms-ai/mdcms/mdcms-sdk-integration"><img src="https://agentmods.dev/badge/skills/mdcms-ai/mdcms/mdcms-sdk-integration.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.00109 | $0.02572 |
| Opus 5 | $0.00055 | $0.01286 |
| Sonnet 5 | $0.00022 | $0.00514 |
| Haiku 4.5 | $0.00011 | $0.00257 |
Grade A, and why
mdcms-sdk-integration 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 3d 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 — 243 lines — stays where its author put it; the contents beside it link to each section on GitHub.
MDCMS SDK Integration
Use @mdcms/sdk in the host app to fetch MDCMS content at build time or request time, replacing any filesystem-driven content layer, and supporting the draft/published split.
When to use this skill
The user wants to consume MDCMS content programmatically from a host app — typically to render pages, build a blog index, or hydrate a CMS-driven section. Two sub-paths:
- Brownfield (replace) — the app currently imports markdown from the repo (
import about from "../content/about.md",fs.readFile,remark/mdx-bundler). Replace that with SDK calls. - Greenfield (write new) — the app has no content-fetching code yet. Add it fresh.
Not for editing content (use Studio), not for schema changes (use mdcms-schema-refine), not for admin embedding (use mdcms-studio-embed).
Prerequisites
- A running MDCMS server and content synced against a schema (via
mdcms-brownfield-initormdcms-greenfield-init). - A React-based host app.
- An API key that the host app can read at runtime. For server-side rendering, this is an env var (
MDCMS_API_KEY). Never ship the API key to the browser.
Steps
1. Install the SDK
npm install @mdcms/sdk
# or: bun add @mdcms/sdk
2. Create a client
In a server-only module (for Next: a file without "use client", ideally under lib/):
import { createClient } from "@mdcms/sdk";
export const cms = createClient({
serverUrl: process.env.MDCMS_SERVER_URL!,
project: process.env.MDCMS_PROJECT!,
environment: process.env.MDCMS_ENVIRONMENT!,
apiKey: process.env.MDCMS_API_KEY!,
});
Keep the import path server-only. If the app leaks it into a client bundle, the API key ships to users.
3. Fetch content
The SDK exposes two read methods: cms.get(type, input) and cms.list(type, input). Both accept locale, optional per-call project/environment overrides, and an optional resolve array for reference expansion.
Fetch a single document by id or slug
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.
- 3d ago First seen · 243 lines · 109 tokens per session scan A e078f8080955
mdcms-sdk-integration is a skill published in the GitHub repository mdcms-ai/mdcms (22 stars, last pushed 5d ago), licensed MIT. It adds 109 tokens to every session and 2,572 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-30.
Other skills, from other repositories
Shade imports
Import Shade from layer-specific subpaths (primitives, components, patterns, page-templates, utils), never the root barrel. Trigger when editing TSX/TS in Shade-consuming apps.
react-effect-decision
Combine React's official "You Might Not Need an Effect" guidance with this project's stricter no direct useEffect stance. Use when writing, reviewing, or refactoring React components that might reach for useEffect, derived state, event relays, reset logic, subscriptions, or client fetching.
dev
Full-stack Convex development guidelines covering React, Vite, TypeScript, mutations, auth, design system, and documentation practices. Use when building features, writing Convex functions, or making code changes in this project.
Shade ShadCN install
Guardrails for running pnpm dlx shadcn@latest add in Shade — never overwrite existing components, fresh branch first, swap raw colours for semantic tokens after integrating. Trigger when the user proposes a shadcn add, or when a fresh ShadCN-shaped file lands in apps/shade/src/components/ui.
chakra-ui-builder
Build responsive, accessible UI components and layouts using Chakra UI v3, install or configure Chakra UI in new and existing projects, and design scalable themes using tokens, semantic tokens, recipes, and slot recipes. Use this skill whenever a user asks to build, create, or generate any UI component, page, form…
row-selection
Maintain rowSelection ID state with stable getRowId, single, multi, subrow, and Shift-range rules, selected row models, handler anchors, and manual-pagination semantics. Load when implementing getToggleSelectedHandler, enableRowRangeSelection, selectChildren, deselectParents, or selected IDs that outlive loaded Row…