Exam guide·7 min read·24 August 2026

Claude Code Plugins: MCP, Hooks, and CCDV-F Developer Skills

Claude Code plugins extend your dev environment through MCP servers, hooks, and slash commands. Here's what CCDV-F candidates must know about tool integration.

By Solomon Udoh · AI Architect & Certification Lead

Claude Code Plugins: MCP, Hooks, and CCDV-F Developer Skills

What are Claude Code plugins?

When we write "Claude Code plugins", we mean the ecosystem of extensions that change what Claude Code can do in a session: MCP (Model Context Protocol) servers that expose new tools and resources, hooks that intercept and react to tool calls, custom slash commands that package reusable workflows, and CLAUDE.md configuration files that set persistent behaviour rules. These extension points matter both for production teams shipping Claude-powered developer tooling and for candidates preparing for the Claude Certified Developer, Foundations (CCDV-F) exam.

For the exam's Claude Code Configuration & Workflows domain, understanding how these mechanisms compose, how they conflict, and which to reach for in a given scenario separates a passing score from a high one.

Which CCDV-F domains cover Claude Code plugin knowledge?

Plugin knowledge is distributed across several of the CCDV-F exam's eight domains. The 53-item exam weights them as follows, from most to least relevant to plugins:

DomainWeightPlugin relevance
Domain 2: Applications and Integration33.1%Production MCP integration, tool orchestration
Domain 6: Prompt and Context Engineering11.0%Tool descriptions, system-prompt configuration
Domain 8: Tools and MCPs10.6%MCP scoping, server config, error handling
Domain 7: Security and Safety8.1%Sandboxing, prompt injection via tool results
Domain 3: Claude Code3.1%Hooks, CLAUDE.md, slash commands

Domain 2 is the dominant weight at 33.1%, covering how plugins wire into complete application architectures. A candidate who studies only the Claude Code domain (3.1%) will miss most of the plugin questions on the exam.

How does MCP work as a plugin system for Claude Code?

MCP (Model Context Protocol) is the primary mechanism through which Claude Code gains new capabilities. Each MCP server exposes a set of tools, resources, and prompts. Claude Code reads these at session start, and the model can then call them when a user's request warrants it.

MCP is an open protocol that standardizes how applications provide context to LLMs.

Anthropic , Model Context Protocol Documentation

Configuration happens at three scopes, which the MCP Scoping Hierarchy covers in detail:

  • User scope (global): stored in ~/.claude/settings.json, applies to all Claude Code sessions on the machine.
  • Project scope: stored in .claude/settings.json within the repository, version-controlled with the codebase.
  • System scope: managed by IT administrators, typically to enforce corporate policy.

Project scope is the right choice for team-shared tooling because it travels with the repo. A new team member cloning the project automatically gets the same MCP servers configured. A typical entry looks like this:

json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
}
}
}

The ${DATABASE_URL} pattern uses environment variable expansion to keep credentials out of version-controlled files. Hardcoding a database URL in .claude/settings.json is a security anti-pattern that CCDV-F exam items will flag explicitly.

Should you build or use an existing MCP server?

The Build vs Use Decision for MCP Servers is an active exam topic under Domain 8 (10.6% weight). The correct answer depends on scope, maintenance burden, and security requirements.

Use an existing MCP server when:

  • The capability is well-covered by a maintained open-source or community package (GitHub, Linear, Slack, PostgreSQL).
  • The server exposes the right level of tool granularity for your use case.
  • You can accept the server's full tool surface without security exposure.

Build a custom MCP server when:

  • You need domain-specific tools with precise descriptions that guide model selection reliably.
  • Security policy requires you to control which operations are exposed, especially write operations.
  • An existing server exposes too broad a scope for a narrow workflow.

The exam rewards proportionate solutions. If a team only needs to run read queries against a single internal API, a minimal custom MCP server is better architecture than adopting a general-purpose server that also exposes mutation endpoints.

What are Claude Code hooks, and how do they differ from MCP tools?

Hooks are shell commands that Claude Code executes at defined lifecycle points: before a tool call (PreToolUse), after a tool call (PostToolUse), and before Claude returns a response (PreResponse). Unlike MCP tools, which Claude selects based on context, hooks run deterministically. They fire regardless of what prompt Claude received.

This distinction matters for the CCDV-F exam and for production architecture:

MechanismDeterministic?When to use
HooksYesLogging, compliance checks, data normalisation, secret scanning
MCP toolsModel-selectedExposing external capabilities to Claude
CLAUDE.md rulesNoDeveloper conventions, project context, style guidance
Slash commandsTriggered by userReusable workflow shortcuts

For scenarios where compliance or data integrity is at stake, a hook is the correct choice because it cannot be overridden by prompt content. For stylistic preferences where occasional deviations are acceptable, a CLAUDE.md instruction is sufficient and carries no execution overhead.

A PostToolUse hook that audits file writes:

json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write",
"hooks": [
{
"type": "command",
"command": "python scripts/audit_write.py"
}
]
}
]
}
}

The Hooks vs Prompts Decision Framework maps cleanly onto exam scenarios: when the stakes are high and consistency is non-negotiable, hooks are the correct answer.

How do custom slash commands work in Claude Code?

Slash commands package reusable multi-step workflows as Markdown files in .claude/commands/. A developer types /run-tests and Claude reads run-tests.md, following its instructions for that session.

bash
.claude/
commands/
run-tests.md
summarise-pr.md
deploy-staging.md

Slash commands are prompt templates, not tool-call endpoints. They do not expose new capabilities to Claude Code; they organise existing ones into named, reproducible patterns. The exam tests this distinction: choosing a slash command when the scenario requires a new capability (which needs an MCP server) is a wrong-answer pattern.

What security risks do Claude Code plugins introduce?

Domain 7 (Security and Safety, 8.1%) tests how Claude Code's extension points expand the attack surface. Two risks appear frequently in exam scenarios.

Tool scope creep. An MCP server configured for a code-review workflow should expose only read operations. If write operations are included and Claude can call them, a poorly-specified prompt could trigger writes the developer did not intend.

Prompt injection via tool results. MCP tool responses flow directly into Claude's context window. A malicious or compromised tool response could contain text designed to redirect Claude's subsequent actions. The MCP Server Integration Best Practices concept covers the defences: treat tool results as untrusted input, restrict tool scope, and audit tool calls with hooks.

Two defensive patterns the exam rewards:

  1. Expose the narrowest set of operations the workflow actually needs.
  2. Use PostToolUse hooks to log or validate tool call outputs before they influence further model decisions.

How should CCDV-F candidates prioritise plugin study?

With a 120-minute window and 53 items, we recommend allocating study time to mirror domain weight. Across plugin-relevant domains:

  1. Domain 2 first (33.1%). Study how MCP servers compose into production application architectures. What happens when a tool call returns an error? How do you handle partial failures in a multi-tool workflow?

  2. Domain 6 (11.0%). Tool descriptions are Claude's primary tool-selection mechanism. A well-written description is the cheapest fix for tool misrouting, and exam items will ask you to identify descriptions that cause misrouting.

  3. Domain 8 (10.6%). MCP configuration scoping, the isError flag pattern, and when to build vs. use an existing server.

  4. Domain 7 (8.1%). Prompt injection and minimal-scope tool design.

  5. Domain 3 last (3.1%). Hooks, CLAUDE.md, and slash commands. The domain is small but items tend to be precise. Hands-on experience with .claude/settings.json is more reliable preparation than reading descriptions of it.

The CCDV-F exam scores on a 100 to 1000 scale, with 720 as the passing mark. As of 3 June 2026, more than 10,000 individuals have earned certifications across the Claude Partner Network, which means the difficulty calibration has been validated at real scale.

What does the three-level configuration hierarchy mean for plugin management?

The Three-Level Configuration Hierarchy (user, project, system) determines which Claude Code plugins are active in any session and which settings take precedence when they conflict. Project scope overrides user scope for the same key. System scope can enforce policy that neither users nor projects can override.

This hierarchy has practical implications the exam tests directly:

  • A developer's personal MCP config (user scope) that includes a tool the team's security policy prohibits is best addressed by a system-scope block, not by prompting Claude to ignore the tool.
  • When a team wants to guarantee all members use the same MCP servers, committing .claude/settings.json to the repo is the correct approach, not sending configuration instructions in chat.

Configuration decisions belong in config files. Using prompt-based workarounds for settings that belong in files is a reliability anti-pattern and a wrong-answer signal on the CCDV-F exam.

Frequently asked questions

What counts as a 'plugin' in Claude Code?
Claude Code does not use the term 'plugin' officially. In practice it covers MCP servers (which expose tools and resources to Claude), hooks (shell commands that run at defined lifecycle points), custom slash commands (reusable workflow templates in `.claude/commands/`), and CLAUDE.md files that set persistent session rules. Each mechanism serves a different purpose and the CCDV-F exam tests when to use each one.
How do I add an MCP server to Claude Code?
Add an entry to `.claude/settings.json` for project scope, or to `~/.claude/settings.json` for user (global) scope. Specify the command, arguments, and any environment variables using `${VAR_NAME}` expansion to avoid hardcoding secrets. Restart the Claude Code session to activate the new server. Project-scoped config is version-controlled and shared automatically when teammates clone the repo.
Which CCDV-F exam domains are most relevant to Claude Code plugins?
Domain 2 (Applications and Integration, 33.1%) is most relevant because it tests production integration patterns. Domain 8 (Tools and MCPs, 10.6%) covers MCP configuration directly. Domain 3 (Claude Code, 3.1%) covers hooks, CLAUDE.md, and slash commands. Combined, these three domains account for just under half of the exam's 53 items, so studying them together is efficient.
What is the difference between a Claude Code hook and an MCP tool?
A hook is a deterministic shell command that runs at a fixed lifecycle point (before or after a tool call, or before a response) regardless of what Claude was asked. An MCP tool is a capability that Claude selects and calls based on context. Use hooks for compliance, logging, and data integrity guarantees. Use MCP tools to expose new external capabilities to Claude during a session.
Can I create custom Claude Code plugins for my team?
Yes. You can build a custom MCP server in Python or TypeScript using Anthropic's SDKs and add it to your project's `.claude/settings.json`. You can also create team slash commands as Markdown files in `.claude/commands/` and write hooks as shell scripts referenced in settings. All of these are version-controlled and shared automatically when teammates clone the repository.
Does building a custom MCP server require advanced programming experience?
Not particularly. Anthropic provides SDKs for Python and TypeScript that handle the MCP protocol layer. You write tool definitions (name, description, input schema) and handler functions; the SDK manages server lifecycle and message formatting. A developer comfortable with basic async Python or TypeScript can build a working MCP server in a few hours.

People also ask

What Claude Code plugins are available?
Hundreds of MCP servers exist for common development tools: GitHub, GitLab, Linear, Jira, Slack, PostgreSQL, Filesystem, and Brave Search, among others. Anthropic maintains an official list and the community publishes additional servers. Claude Code also ships with built-in tools (Bash, Read, Edit, Write) that do not require separate plugin installation.
Are Claude Code plugins free?
Claude Code's built-in tools are free as part of Claude Code itself. Third-party MCP servers are generally open-source and free to run. Some commercial MCP servers may carry licensing costs. Connecting to external APIs through MCP (GitHub, Slack, databases) may incur costs from those third-party services, not from Claude Code itself.
Do Claude Code plugins work with all Claude models?
MCP servers and hooks work across Claude Code regardless of which Claude model is active, because the protocol layer is separate from model inference. Tool availability depends on Claude Code's configuration, not on the model tier. Model choice affects how reliably Claude selects and uses available tools, a tradeoff covered in the CCDV-F exam's Domain 5 (Model Selection, 16.8%).
How do Claude Code plugins compare to VS Code extensions?
VS Code extensions modify the editor's UI, commands, and language support. Claude Code plugins (MCP servers and hooks) extend what Claude can perceive and do during a coding session. They are complementary: a VS Code extension might add syntax highlighting while an MCP server gives Claude the ability to query a database. They operate at different layers and do not conflict.

About the author

Solomon Udoh

AI Architect & Certification Lead

Solomon Udoh is an AI Architect who designs and ships production agent systems on the Claude API and Claude Code. He built AI Skill Certs' adaptive engine and authored its 174-concept knowledge graph, mapping every Claude Certified Architect - Foundations objective to hands-on, exam-aligned practice.

  • Designs production multi-agent systems on the Claude API and Agent SDK
  • Author of the AI Skill Certs knowledge graph (174 mapped exam concepts)
  • Builds with MCP, Claude Code, structured outputs, and agentic loops daily
  • Reviews every concept page against the official Anthropic exam guide

You might also like

Ready to put it into practice?

Study every exam concept with an adaptive tutor.

Start studying