mdcms-sdk-integration

mdcms-sdk-integration is a skill for Claude Code, Codex from mdcms-ai/mdcms. It costs 109 tokens per session (2,572 once invoked), scanned A, original, MIT.

A guide for using the MDCMS software-development kit to load content into a React-based application, including Next.js and Remix apps.

In plain words
What is it for?
Use it to install the SDK, load pages or blog posts during builds or requests, support server-side rendering and previews, and keep the API key on the server.
Why use it?
It replaces locally stored Markdown content with content fetched from MDCMS and keeps draft content separate from published content.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/mdcms-ai/mdcms/mdcms-sdk-integration
Any agent
npx skills add mdcms-ai/mdcms --skill mdcms-sdk-integration
Clone the repo
git clone --depth 1 https://github.com/mdcms-ai/mdcms

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for mdcms-sdk-integration

README.md
[![agentmods](https://agentmods.dev/badge/skills/mdcms-ai/mdcms/mdcms-sdk-integration.svg)](https://agentmods.dev/skills/mdcms-ai/mdcms/mdcms-sdk-integration)
Your own site
<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>
Per session 109 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,572 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 3d ago against content hash e078f8080955, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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.

skills/mdcms-sdk-integration/SKILL.md · 243 lines

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-init or mdcms-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

Read the full file on GitHub · 243 lines

Changes

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.

  1. 3d ago First seen · 243 lines · 109 tokens per session scan A e078f8080955

Subscribe to this mod's changes

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.

Related

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.

TryGhost/Ghost · 41 tokens

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.

waynesutton/markdown-site · 63 tokens

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.

waynesutton/markdown-site · 46 tokens

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.

TryGhost/Ghost · 72 tokens

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…

chakra-ui/chakra-ui · 214 tokens

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…

TanStack/table · 68 tokens