brozi.codes
← back to blog
·3 min readmcpclaude codeplugins

MCP Plugins for Claude Code: What They Are and Why They Matter

Claude Code is built around the Model Context Protocol (MCP) — an open standard for giving AI agents structured access to tools, resources, and context. The plugin system on top of MCP lets you extend Claude Code's default behavior with custom tools, lifecycle hooks, specialized agents, and slash-command skills.

This post explains what MCP plugins actually do and why they're the right abstraction for serious Claude Code customization.

What MCP gives you

At its core, MCP defines a protocol for a host (Claude Code) to communicate with tool servers over standard I/O. Each tool server exposes a set of tools — structured functions Claude can call — along with optional resources and prompts.

When you add an MCP server to Claude Code, Claude can see and call those tools the same way it calls native tools like Read, Edit, and Bash. The difference is that MCP tools run in your own process, with access to your file system, local binaries, APIs, and anything else you wire up.

Claude Code plugins: MCP + more

A Claude Code plugin is an MCP server packaged with additional Claude Code-specific features:

| Component | What it does | |---|---| | MCP server | Defines tools Claude can call | | Hooks | Run code on lifecycle events (session start, tool use, stop) | | Agents | Custom system prompts for specific task types | | Skills | Slash commands that trigger specific workflows |

This combination means a plugin can both add new capabilities (via MCP tools) and change how Claude uses existing ones (via hooks and agents).

A concrete example: BroziCode

BroziCode is a Claude Code plugin that replaces Claude's native file-access micro-tools with two Macro-tools:

  • brozi_smart_search — multi-file glob + grep + read in one MCP call
  • brozi_batch_edit — multi-file edit with fuzzy matching and optional validation

Beyond the tools, the plugin installs:

  • A PostToolUse hook that tracks every native tool call and records compliance
  • A Stop hook that prints a session savings summary to the terminal
  • A brozicode agent (brozicode:brozicode) with a system prompt that forbids native file tools
  • Skills for displaying savings reports and plugin info

The result: Claude's file-access patterns are structurally changed — not just given new options, but guided toward a fundamentally different (cheaper) architecture.

Installing plugins

Claude Code plugins are distributed through marketplace registries. Inside a Claude Code session:

/plugin marketplace add broziden/brozicodes-claude
/plugin install brozicode@brozicode-marketplace

To update an installed plugin:

claude plugin update brozicode@brozicode-marketplace

Choosing your default agent

After installing a plugin that includes an agent, you have several ways to make it the default:

  • Per-session: claude --agent brozicode:brozicode
  • Global: set "defaultAgent": "brozicode:brozicode" in ~/.claude/settings.json
  • Per-project: add tool rules to CLAUDE.md
  • Per-task: ask Claude to delegate to the agent in-session

Building your own

An MCP server is any process that reads JSON from stdin and writes JSON to stdout following the MCP spec. The @modelcontextprotocol/sdk TypeScript package handles the protocol layer; you define tools with Zod schemas and implement handlers.

For a Claude Code plugin, you add a plugin.json manifest and optional hooks.json, agents/, and skills/ directories alongside your MCP server bundle.

Install BroziCode →

Ready to cut your Claude bill?

Install BroziCode in 2 minutes — free, open source, MIT licensed.