MCP Integration for Plugins
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
Bundle skills, hooks, agents, or an MCP server into one installable Claude Code plugin and ship it.
$ npx skills add techwolf-ai/ai-first-toolkit --skill build-plugin -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit build-plugin --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/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .claude/skills/build-plugin && 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 "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .claude/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-pluginType 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 techwolf-ai/ai-first-toolkit --skill build-plugin -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit build-plugin --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .agents/skills/build-plugin && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .agents/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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 techwolf-ai/ai-first-toolkit --skill build-plugin -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit build-plugin --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .cursor/skills/build-plugin && 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 "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .cursor/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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/techwolf-ai/ai-first-toolkit.git --path plugins/tool-build-kit/skills/build-plugin--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 techwolf-ai/ai-first-toolkit --skill build-plugin -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit build-plugin --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .gemini/skills/build-plugin && 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 "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .gemini/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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 techwolf-ai/ai-first-toolkit build-pluginInstalls 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 techwolf-ai/ai-first-toolkit --skill build-plugin -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .github/skills/build-plugin && 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 "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .github/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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 techwolf-ai/ai-first-toolkit --skill build-plugin -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit build-plugin --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/tool-build-kit/skills/build-plugin .opencode/skills/build-plugin && 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 "build-plugin" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/tool-build-kit/skills/build-plugin into .opencode/skills/build-plugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-plugin", 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.
build-pluginBundle skills, hooks, agents, or an MCP server into one installable Claude Code plugin and ship it.
Build Plugin is an agent skill from techwolf-ai/ai-first-toolkit. Bundle skills, hooks, agents, or an MCP server into one installable Claude Code plugin and ship it. Use when asked to bundle tools into one plugin, package tools for a colleague, publish a plugin to a marketplace, share my tools with my team, or ship a plugin. Asks who it's for and where it's hosted, then walks analyze, assemble, ship, and maintain, tailored to that answer. Sibling to build-mcp.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/assemble.md`, `references/maintain.md` and `references/marketplace.md`).
It sits in Agent Workflows, covering MCP servers and Hooks and plugins. It works with Model Context Protocol. The repository describes itself as: Open-source Claude Code skills and Codex skills for AI-first work. Audit, re-engineer, and bootstrap projects with AI-first design principles. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2ee7841. 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:
claudeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
gitlab.comFrom 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.
Build Plugin loads about 2.4k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,340 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 techwolf-ai/ai-first-toolkit at commit 2ee7841, republished under its MIT licence (© techwolf-ai). 1,340 words, ~2,447 tokens.
.claude/skills/build-plugin/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Bundle many tools (skills, hooks, agents, MCP servers) into one installable Claude Code plugin and distribute it. The defining move of this skill: establish who the plugin is for and where it will live with AskUserQuestion before assembling anything, then tailor every phase to that answer. A personal one-project bundle and a public team marketplace share almost nothing past "assemble", so branch early and commit to the branch.
build-mcp builds one MCP server: analyze a service, implement the tools, deploy, scale. build-plugin bundles many tools (including MCP servers produced by build-mcp) into a single shareable unit and distributes it. When build-mcp reaches its Distribute phase for a team or public audience, it hands off here: packaging into a plugin and listing it on a marketplace is this skill's job. Use build-mcp to make a server, then build-plugin to ship it alongside your skills, hooks, and agents.
claude --plugin-dir.Run them in order. The AskUserQuestion answers from Phase 0 gate Ship and Maintain.
Before assembling anything, branch on the user's context. Ask the audience question first; it is the headline decision and it cascades into everything downstream. Then ask the git host only if it is still ambiguous. Ask one question at a time.
Question 1 (always, ask first): Audience:
Use AskUserQuestion:
Question 2 (conditional, skip for "Just me"): Git host:
Skip entirely for "Just me" (no remote needed). Ask for team or public:
owner/repo shorthand and Anthropic's public directory.https://...git URL, no GitHub mirror needed.Confirm the resolved tuple back to the user in one line before proceeding (e.g. "Bundling a team plugin of three skills plus one MCP server, hosted on a private GitHub marketplace repo"). That tuple drives the branch table below.
| Phase | Just me | Team/org (GitHub) | Team/org (GitLab/other) | Public |
|---|---|---|---|---|
| Ship | N/A, no marketplace. Load via claude --plugin-dir, or scaffold it in your skills dir (claude plugin init) to auto-load every session. | Marketplace repo on GitHub; entry source: {source:"github", repo:"org/repo"} or a relative "./path". Private repo optional to keep it internal. | Marketplace repo on GitLab/Bitbucket/self-hosted; entry source: {source:"url", url:"https://...git"}. | Public marketplace repo; entry by host as above. Be deliberate: anyone who knows the repo can install, and plugins run arbitrary code. |
| Enable | N/A, stop here. It is already loaded on your machine. | /plugin marketplace add org/repo then /plugin install name@marketplace; or auto-enable for the team via project .claude/settings.json. | /plugin marketplace add https://gitlab.com/team/plugins.git then /plugin install name@marketplace; same .claude/settings.json auto-enable. | Same commands; owner/repo shorthand is GitHub-only, others use the full URL. |
| Maintain | Bump version in plugin.json for a clean update boundary; you are the only user. | /plugin marketplace update; one maintainer per plugin; fixes land via merge request. Org-wide enforcement via managed settings. | Same, via the GitLab/other merge-request flow. | Same, plus a public changelog and a clear versioning policy. |
If a cell says "N/A, stop here" for the chosen branch, say so explicitly and move on. Do not pad it. The Enable row is the team-facing half of Ship (turning the marketplace on for colleagues), not a separate phase.
Reference files:
~/.claude/ tools in, local claude --plugin-dir testing, skill namespacing, claude plugin validate.marketplace.json shape, per-host source types, add and install commands, public vs private and auth..claude/settings.json auto-enable, org-wide managed-settings enforcement.Load only the references the current branch and phase need. Progressive disclosure.
Decide what goes in the bundle before you build the folder.
/my-plugin:skill) and the marketplace entry key.~/.claude/skills, ~/.claude/agents, or a personal settings.json will move into the plugin and the loose originals get deleted, so you do not run duplicates (assemble.md covers this).Deliverable: the plugin name plus a list of what it will contain. Confirm with the user before assembling.
Read references/assemble.md. Build the folder to the layout, write the manifest, then test locally.
plugin.json goes inside .claude-plugin/; skills/, agents/, hooks/hooks.json, and .mcp.json sit at the plugin ROOT..claude-plugin/plugin.json with name, description, version, author.claude plugin validate . checks the manifest and layout with no login. claude plugin details <name> lists the skills, hooks, and servers it discovered, also login-free. claude --plugin-dir ./my-plugin (it also accepts a .zip) loads it into a live session so you can invoke a tool; that one needs you logged in.For a "Just me" bundle this is the last substantive phase: it is loaded, it works, stop.
Only for team or public. Read references/marketplace.md, and references/team-enablement.md for the auto-enable path. Branch on the git-host answer.
.claude-plugin/marketplace.json at its root with name, owner, and a plugins[] entry for this plugin.source by host: relative "./path" if the plugin lives in the same repo, {source:"github", repo:"owner/repo"} for GitHub, or {source:"url", url:"https://...git"} for GitLab, Bitbucket, or self-hosted. There is no gitlab source type./plugin marketplace add owner/repo (GitHub shorthand) or the full https://...git URL for any other host, then /plugin install name@marketplace.Read references/maintain.md. Branch lightly; the mechanics are the same across hosts.
/plugin marketplace update or at startup.version in plugin.json so users get a clean update boundary; omit it and Claude Code treats every commit SHA as a new version.strictKnownMarketplaces), or a denylist (blockedMarketplaces) live in a managed-settings file, set by an admin, not per user (team-enablement.md).claude plugin validate) and its tools show up (claude plugin details); loading it via claude --plugin-dir in a session invokes at least one.© techwolf-ai, MIT. 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 4 other files (references) in plugins/tool-build-kit/skills/build-plugin of techwolf-ai/ai-first-toolkit.
Open the folder on GitHubat commit 2ee7841
Build Plugin 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 |
|---|---|---|---|---|---|---|
| Build Plugin this skilltechwolf-ai/ai-first-toolkit | 132 | — | ~2.4k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 37k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| OpenpetsOpenPetsHQ/openpets | 1.3k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Claude Automation Recommenderanthropics/claude-plugins-official | 37k | 3 repos | ~2.7k | Automated safety check: Notes | Apache-2.0 | |
| Mistral Vibe Plugin Creatormistralai/mistral-vibe | 5.1k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 |
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
OpenPetsHQ/openpets
A skill your agent uses whenever the user wants to build, extend, debug, test, validate, locally load, package, or publish an OpenPets plugin; work with the OpenPets Plugin SDK v3, plugin manifest…
anthropics/claude-plugins-official
Scans a codebase and suggests which Claude Code hooks, subagents, skills, plugins and MCP servers fit its stack, without changing any files.
mistralai/mistral-vibe
Shows how to build a Vibe plugin package in the Agent Plugins 1.0 format, with a plugin.json manifest and optional skills, MCP servers, hooks and other components.
tw93/Waza
Audits a project's agent configuration, instruction drift, hooks, MCP and AI maintainability, then reports prioritized findings with evidence and next actions.
techwolf-ai/ai-first-toolkit
Mine the user's Claude Code + Cowork session history into a structured task profile, what they do with AI, how often, how successfully where friction lives, then propose atomic skills that would…
techwolf-ai/ai-first-toolkit
Personal diagnosis of where your Claude Code + Cowork spend goes.
techwolf-ai/ai-first-toolkit
Find context from past Claude Code (CLI) and Claude Cowork (desktop) sessions on this Mac.
techwolf-ai/ai-first-toolkit
Write or develop a blog post. An agent skill from techwolf-ai/ai-first-toolkit.
techwolf-ai/ai-first-toolkit
Write or develop an opinion piece (opiniestuk/op-ed). An agent skill from techwolf-ai/ai-first-toolkit.
techwolf-ai/ai-first-toolkit
Analyze, re-engineer, or bootstrap projects to align with AI-first design principles.
Works with
Categories
Bundle skills, hooks, agents, or an MCP server into one installable Claude Code plugin and ship it. Build Plugin is an agent skill from techwolf-ai/ai-first-toolkit. Bundle skills, hooks, agents, or an MCP server into one installable Claude Code plugin and ship it.
Build Plugin fits situations like: asked to bundle tools into one plugin; package tools for a colleague; publish a plugin to a marketplace; share my tools with my team.
Run `npx skills add techwolf-ai/ai-first-toolkit --skill build-plugin -a claude-code`. Or copy the skill folder (plugins/tool-build-kit/skills/build-plugin in techwolf-ai/ai-first-toolkit) into .claude/skills/build-plugin in your project. Claude Code loads it when a task matches its description.
Run `npx skills add techwolf-ai/ai-first-toolkit --skill build-plugin -a codex`. Or copy the skill folder (plugins/tool-build-kit/skills/build-plugin in techwolf-ai/ai-first-toolkit) into .agents/skills/build-plugin 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 techwolf-ai/ai-first-toolkit --skill build-plugin -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-plugin, .gemini/skills/build-plugin, .github/skills/build-plugin and .opencode/skills/build-plugin in your project.
Going by SKILL.md and its folder, Build Plugin needs the command-line tools its instructions call (claude).
SKILL.md names 1 domain. In commands or code: gitlab.com; the agent is likely to contact it when it follows the instructions. 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.
Build Plugin is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k 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 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Build Plugin: MCP Integration for Plugins (anthropics/claude-plugins-official, 37k stars), Crush Configuration (charmbracelet/crush, 29k stars), Openpets (OpenPetsHQ/openpets, 1.3k stars) and Claude Automation Recommender (anthropics/claude-plugins-official, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
techwolf-ai (a GitHub organization) maintains it in techwolf-ai/ai-first-toolkit, which has 132 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on September 29, 2026.
Source: techwolf-ai/ai-first-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.