MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
The MPK team's "where does a change belong + what a clean PR looks like" norms, extracted from mirage-project/mpk merged-PR history.
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mirage-project/mirage mpk-development-norms --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/mpk-development-norms .claude/skills/mpk-development-norms && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .claude/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-normsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mirage-project/mirage mpk-development-norms --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/mpk-development-norms .agents/skills/mpk-development-norms && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .agents/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mirage-project/mirage mpk-development-norms --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/mpk-development-norms .cursor/skills/mpk-development-norms && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .cursor/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mirage-project/mirage.git --path .claude/skills/mpk-development-norms--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mirage-project/mirage mpk-development-norms --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/mpk-development-norms .gemini/skills/mpk-development-norms && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .gemini/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mirage-project/mirage mpk-development-normsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/mpk-development-norms .github/skills/mpk-development-norms && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .github/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mirage-project/mirage --skill mpk-development-norms -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mirage-project/mirage mpk-development-norms --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mirage-project/mirage.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/mpk-development-norms .opencode/skills/mpk-development-norms && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "mpk-development-norms" agent skill from https://github.com/mirage-project/mirage/tree/mpk/.claude/skills/mpk-development-norms into .opencode/skills/mpk-development-norms/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "mpk-development-norms", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
mpk-development-normsThe MPK team's "where does a change belong + what a clean PR looks like" norms, extracted from mirage-project/mpk merged-PR history.
Mpk Development Norms is an agent skill from mirage-project/mirage. The MPK team's "where does a change belong + what a clean PR looks like" norms, extracted from mirage-project/mpk merged-PR history. Read FIRST — before starting any MPK change, opening/shaping a PR, deciding which file a change goes in, reviewing a diff's shape, or cleaning up a branch that grew messy/off-norm ("改得太乱/不符合开发规范"). Complements add-mpk-model / add-mpk-task / v2-model-support (the HOW) with the WHERE + the PR-shape gate.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/codex-checklist.md` and `references/exemplar-prs.md`).
It works with Python. The repository describes itself as: Mirage Persistent Kernel: Compiling LLMs into a MegaKernel. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f9eb70c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bashgitcodexFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Mpk Development Norms loads about 2.7k tokens when it runs, and up to ~6.3k if it reads all its reference files. Until then it costs about 115 tokens; SKILL.md has 1,306 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mirage-project/mirage at commit f9eb70c, republished under its Apache-2.0 licence (© mirage-project). 1,306 words, ~2,674 tokens.
.claude/skills/mpk-development-norms/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.These are the change-shape norms the maintainers actually enforce, reverse-engineered from
merged PRs on mirage-project/mpk (see references/exemplar-prs.md for the cited commits and
per-category file-touch tables). The sibling skills tell you HOW to add a task/model/kernel;
this one tells you WHERE the change belongs and what a landable PR looks like. When in doubt,
find the closest recent merged PR of the same category and mirror its footprint.
The rule underneath all of them: put a change in the file that OWNS that concern, at the smallest generic surface — not in the file that is convenient to reach from where you already are. A diff that sprawls into shared runtime/python files to serve one model is the smell this skill exists to prevent.
| Change | Lives in | Must NOT touch |
|---|---|---|
| New GPU op / kernel | include/mirage/persistent_kernel/tasks/<arch>/<op>.cuh + its tests/runtime_python/.../sm100_<op>/ unit test (+ runtime_kernel_wrapper) | multigpu.py; a model's builder |
| Wiring a new task type into the runtime | C++ registration only: runtime_header.h (enum) → src/kernel/{task_register,graph,runtime}.cc → tma.cuh if TMA — coherently, all-or-nothing | — |
| A generic Python op-API for that task | one <operation>_layer method in python/mirage/mpk/persistent_kernel.py, named by the operation/algorithm, never by the model (moe_w13_linear_layer, splitk_linear_layer — not qwen3_*/deepseek_*) | — |
| Model bring-up | python/mirage/mpk/models/<model>/builder.py (topology, TP/EP shard rules, layer composition) + demo/<model>/ (demo.py, HF reference, shard loader) | persistent_kernel.py beyond generic ops; persistent_kernel.cuh; multigpu.py |
| Runtime / scheduler change | persistent_kernel.cuh / runtime_header.h / src/kernel/runtime.cc — as its own PR | a model dir; unrelated kernels |
| Multi-GPU / collectives | python/mirage/mpk/multigpu.py — allreduce-runtime-owned (historically one owner PR) | model builders |
Model composition is data, not shared code: the order and choice of layers, the shard-rule
regexes, and the weight-name mapping are all model-specific and belong in
models/<model>/builder.py + demo/<model>/. Only a genuinely reusable operation earns a
method in persistent_kernel.py, and it is named for the operation.
runtime_header.h + src/kernel + wrapper + tma.cuh
(that IS its home); a runtime fix may touch a task .cuh when the invariant crosses the
worker/task boundary. What's off-norm is reaching into a shared file to serve one model.persistent_kernel.cuh
or multigpu.py, and touches persistent_kernel.py only to add/fix a generic
operation-level primitive. Shared APIs are named by operation/algorithm, never <model>_*.
(Counter-smell this catches: deepseek_mla_rope_q_layer, mla_kv_gather_unified_layer,
dsv3_router_gate_gemv_layer added to the shared file — those belong behind a generic API
called from the model builder.)persistent_kernel.py the only os.environ
uses are the 5 build-path/infra vars (MIRAGE_HOME, NVSHMEM_INC_PATH,
NVSHMEM_LIB_PATH, MPI_INC_PATH, MPI_LIB_PATH). No MPK_*_DBG / *_PROBE / *_GUARD /
FASTFWD / campaign perf toggles survive into a merged PR — a perf lever is either
hard-wired to its chosen production value (as a named constant) or absent, and a
debug/diagnostic knob is deleted with its code path. (This norm is about landed code; an
in-flight exploration branch keeps levers env-gated default-OFF — see mpk-lever-cleanup
for the collapse step.) Audit isn't limited to persistent_kernel.py: check the builder,
runtime.cc, and C++ getenv debug hooks for the same residue.#411 (Split persistent kernel) touched exactly 2 files. If your model work needs a runtime
fix, split it into its own PR so the maintainer can take/defer it independently.#719). Don't fold a de-cruft, a perf lever, and a new kernel into one
diff. Commit granularity mirrors this even pre-squash: each commit is one reviewable idea.tests/runtime_python/.../test_*_testmode.py (usually + a pytorch_reference.py and, if
needed, a wrapper/setup.py). A PR that adds a kernel with no test is off-norm.runtime_header.h, the src/kernel
registration, the wrapper, and TMA/runtime glue together — never a dangling enum with no
register/graph handler, never a handler for a deleted enum. (Fail-loud: rebuild after any
enum edit — a stale enum silently mis-dispatches.)bash scripts/format.sh (clang-format-15, CI-enforced) before
pushing. Never stage generated/local material: scratch/, outputs/, _results/, weight
caches, generated test.cu/.so, perf logs, PR_DESCRIPTION/campaign notes, .claude/
(except the sanctioned .claude/skills/** + .claude/agents/** on a skills PR).assert / raise / throw
/ abort / fail-loud check, ask: (a) did upstream have it? (b) is it necessary? (c) does
omitting it have a correctness consequence — a silently-wrong result, not merely a
later natural error? If (b)/(c) are "no", don't add it — default to not adding.
Seemingly-correct defensive throws have caused real breakage: they fire on valid states and
mislead debugging (a real case: assert(params.size()==0||3) that rejected the valid
1-param call the reader itself was written to handle). Keep a check only when it guards a
real, demonstrated failure or a silently-wrong path (wrong-kernel selection, a BF16/FP8
fork), and even then prefer the existing/upstream idiom over a new fail-loud abort. A check
that only pretty-prints an error the very next line would raise anyway (a KeyError, a dtype
error) is pure surface — drop it. Config guards that merely restate a predicate the caller
already checked are the archetype to delete. Same test for host launch/return-code checks:
if upstream launched without the check and omitting it just defers to the next CUDA error,
it's surface.task_type is
serialized numerically — a surviving TP8-only reducer keeps its upstream id, it is not
re-slotted into a deleted variant's number. A mpk: "PersistentKernel" annotation or a
TYPE_CHECKING import is inert at runtime and adds a dependency edge for nothing. If it ran
upstream without the rename/annotation/wrapper, don't add it. Accepting-then-discarding params
(del eps, epsilon # API parity; a group_size arg that only exists to be rejected when
!= 128) is the same smell — unused surface that only exists to be validated away. Revert to
the upstream name/shape.git diff --stat <merge-base>..HEAD — is the shared-surface footprint
(persistent_kernel.cuh, persistent_kernel.py, multigpu.py, runtime.cc) as small
and generic as the closest exemplar PR? Any <model>_* method in persistent_kernel.py?persistent_kernel.py back to the 5 build-path vars (no campaign
toggles anywhere in the diff)?Co-Authored-By line?scripts/format.sh clean; no generated/local artifacts staged; sensitive-grep before push?references/exemplar-prs.md — the cited merged PRs per category, with their file-touch tables
(the empirical basis for every claim above). Mirror the closest one.references/codex-checklist.md — a self-contained, tool-agnostic review checklist (no
Claude/skill framing) you can paste into codex exec (or hand a human reviewer) to score a
diff against these norms. Feed it the diff + "review against this checklist".© mirage-project, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .claude/skills/mpk-development-norms of mirage-project/mirage.
Open the folder on GitHubat commit f9eb70c
Mpk Development Norms next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Mpk Development Norms this skillmirage-project/mirage | 2.5k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| PDF Processinganthropics/skills | 180k | 47 repos | ~2k | Automated safety check: Pass | Proprietary | |
| NotebookLM Research AssistantPleasePrompto/notebooklm-skill | 7.8k | 14 repos | ~2.4k | Automated safety check: Notes | MIT | |
| Manim Video Productionbrowser-use/video-use | 29k | 6 repos | ~3k | Automated safety check: Pass | MIT | |
| PPT Masterhugohe3/ppt-master | 59k | 1 repos | ~2.5k | Automated safety check: Pass | MIT |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
PleasePrompto/notebooklm-skill
Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.
browser-use/video-use
Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.
hugohe3/ppt-master
Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.
zLanqing/codex-claude-academic-skills
Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.
mirage-project/mirage
Runtime-V2 performance-iteration workflow. An agent skill from mirage-project/mirage.
mirage-project/mirage
Step-by-step guide for adding a new task implementation to Mirage Persistent Kernel (MPK).
mirage-project/mirage
A skill your agent uses when the user wants to design or extend a FlashAttention-style forward kernel on B200/Blackwell, involving the two MMAs QKᵀ and PV, online softmax, S/P/O in TMEM, warp roles…
mirage-project/mirage
Build or run a FAITHFUL in-MPK per-task latency gate (slowCTA at the production grid + cos) for a DeepSeek-V3 MPK decode kernel or shape.
mirage-project/mirage
A skill your agent uses when a batch of env-gated (ifdef MPKDSV3 / os.environ-controlled, default-OFF) MPK optimization levers needs to be consolidated into a single clean code path for a PR…
mirage-project/mirage
Guide for using MPK test mode to unit-test individual layers or multi-layer pipelines through the full compilation pipeline.
Works with
The MPK team's "where does a change belong + what a clean PR looks like" norms, extracted from mirage-project/mpk merged-PR history. Mpk Development Norms is an agent skill from mirage-project/mirage. The MPK team's "where does a change belong + what a clean PR looks like" norms, extracted from mirage-project/mpk merged-PR history.
Run `npx skills add mirage-project/mirage --skill mpk-development-norms -a claude-code`. Or copy the skill folder (.claude/skills/mpk-development-norms in mirage-project/mirage) into .claude/skills/mpk-development-norms in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mirage-project/mirage --skill mpk-development-norms -a codex`. Or copy the skill folder (.claude/skills/mpk-development-norms in mirage-project/mirage) into .agents/skills/mpk-development-norms in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mirage-project/mirage --skill mpk-development-norms -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mpk-development-norms, .gemini/skills/mpk-development-norms, .github/skills/mpk-development-norms and .opencode/skills/mpk-development-norms in your project.
Going by SKILL.md and its folder, Mpk Development Norms needs the command-line tools its instructions call (bash, git and codex). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Mpk Development Norms is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Mpk Development Norms: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mirage-project (a GitHub organization) maintains it in mirage-project/mirage, which has 2,545 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 7, 2026.
Source: mirage-project/mirage on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.