Exam guide·9 min read·28 July 2026

Claude Code for Developers: Skills, MCP, and Prompts

A practical guide to claude code for developers: when to use skills, MCP servers, or prompt engineering, with CCDV-F exam patterns mapped throughout.

By Solomon Udoh · AI Architect & Certification Lead

Claude Code for Developers: Skills, MCP, and Prompts

The single most common question we hear from developers preparing for the CCDV-F exam is a deceptively simple one: "What belongs in a skill, what needs MCP, and what should just be a prompt?" Getting that mental model right is the core of claude code for developers in 2026, and it is also the lens through which Domain 2 (Applications and Integration, 33.1% of the exam) and Domain 8 (Tools and MCPs, 10.6%) are tested. This guide works through each layer in turn, maps the decision logic, and shows you what exam scenarios look like in practice.

What is the skills-MCP-prompt mental model?

The cleanest framing is: skills are behaviour, MCP is tools, and prompts are instructions. Each layer has a different scope, a different persistence mechanism, and a different cost of change.

  • A skill is a reusable behaviour pack that Claude Code auto-loads for a project or user. It lives in a .claude/skills/ directory (or the equivalent bundled location), and it shapes how Claude approaches a class of task without requiring the user to re-explain it every session.
  • An MCP server exposes external capabilities as callable tools: a GitHub MCP server gives Claude the ability to open pull requests; a database MCP server lets it run queries. MCP is the right layer when you need Claude to act on an external system.
  • A prompt (system prompt, user turn, or CLAUDE.md instruction) is the lightest-weight layer. It is the right choice when the guidance is short, session-specific, or does not need to persist across projects.

The exam tests whether you can place a requirement in the correct layer. Misrouting is the most common failure mode, and it maps directly to the Tool Design & MCP Integration concepts in the CCAR-F concept library.

How do Claude Code skills actually work?

Skills are auto-loaded behaviour packs. When Claude Code starts a session in a project directory, it scans for skill files and loads them into its working context before the first user turn. This means the behaviour is available immediately, without any explicit invocation by the user.

A skill file typically contains:

  • A natural-language description of the behaviour (what Claude should do differently when this skill is active)
  • Optional few-shot examples that demonstrate the expected pattern
  • Scope metadata (project-level vs. user-level)

The key distinction from a slash command is persistence and scope. A slash command is invoked explicitly by the user at a specific moment. A skill is ambient: it is always active for the sessions it covers. The key distinction from a plain CLAUDE.md instruction is structure and reusability: skills are discrete, named, and can be versioned and shared across a team.

Per Anthropic's Claude Code documentation, the three-level configuration hierarchy governs which settings apply at the user, project, and enterprise level. Skills sit within that hierarchy and inherit its scoping rules.

Skill files let teams encode repeatable engineering practices once and apply them consistently across every session, without relying on individual developers to remember to include the right instructions.

Anthropic , Claude Code Documentation

Where do skills live?

ScopeLocationWho controls itVersion-controlled?
User-level~/.claude/skills/Individual developerOptional (dotfiles repo)
Project-level.claude/skills/Team via repoYes, committed to the repo
Bundled (enterprise)Managed by adminPlatform/ITYes, centrally managed

Project-level skills are the most important for team workflows. Because they live in the repository, they are reviewed in pull requests, rolled back with git revert, and automatically applied to every developer who clones the project. This is the right home for skills like "always run the test suite before proposing a refactor" or "format all SQL queries in our house style."

When should you use MCP instead of a skill?

Use MCP when Claude needs to call an external system. The rule is straightforward: if the capability requires a network call, a database query, an API authentication, or any side effect outside the local codebase, it belongs in an MCP server, not a skill.

Common MCP integrations for developer workflows:

External systemMCP capabilityWhy not a skill?
GitHubOpen PRs, list issues, merge branchesRequires authenticated API calls
PostgreSQL / MySQLRun queries, inspect schemasRequires a live database connection
SlackPost messages, read channelsRequires OAuth token and network
JiraCreate tickets, update statusRequires Atlassian API credentials
File system (remote)Read/write files on a remote hostRequires SSH or storage API

A skill cannot make a network call. It can only shape Claude's reasoning and output. If a developer asks "why isn't Claude opening the PR automatically?", the answer is almost always that the GitHub MCP server is not configured, not that the skill is wrong.

The MCP scoping hierarchy determines which MCP servers are available in a given session. Like skills, MCP servers can be scoped to the user, the project, or the enterprise. Environment variable expansion in MCP config is the standard pattern for keeping credentials out of committed configuration files.

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

The ${GITHUB_TOKEN} expansion means the token is read from the shell environment at runtime, never stored in the repository. This is the pattern the exam expects you to recognise as correct.

When is a prompt the right answer?

A prompt is the right answer when the guidance is:

  • Session-specific: "For this conversation, respond only in Spanish."
  • Short and unlikely to recur: "Summarise this file in three bullet points."
  • Exploratory: You are not yet sure whether the pattern is worth encoding as a skill.

The mistake to avoid is over-engineering. If a developer writes a 400-token system prompt that re-explains the team's coding conventions every session, the correct fix is to move those conventions into a project-level skill or a CLAUDE.md file, not to optimise the prompt further. The low-effort high-leverage fix principle applies here: the highest-leverage intervention is usually the one that removes the need to repeat yourself.

For prompt discipline specifically, the exam rewards being explicit, providing context, and using examples. Few-shot examples are the highest-leverage technique for getting reliable structured output from Claude Code. A prompt that shows Claude two examples of the expected output format will outperform a prompt that describes the format in prose, especially for extraction and transformation tasks.

How do you design reusable prompt templates for Claude Code?

A reusable prompt template for Claude Code has four components:

  1. Role and context: Who is Claude acting as, and what does it know about the project?
  2. Task specification: What exactly should Claude do? Use imperative language and be specific about scope.
  3. Output format: What should the response look like? If structured output is required, provide a schema or a few-shot example.
  4. Constraints: What should Claude avoid? Explicit negative constraints ("do not modify files outside the src/ directory") reduce the risk of unintended side effects.
text
You are a senior backend engineer reviewing Python code for our payments service.
Task: Review the following function for security vulnerabilities only. Do not
suggest style improvements or refactors unless they directly affect security.
Output format: Return a JSON array. Each item should have:
- "line": the line number (integer)
- "severity": "critical" | "high" | "medium" | "low"
- "description": a one-sentence explanation of the vulnerability
- "fix": a one-sentence recommendation
If no vulnerabilities are found, return an empty array [].
Example output:
[
{
"line": 42,
"severity": "high",
"description": "User input is interpolated directly into a SQL query.",
"fix": "Use parameterised queries via the db.execute() interface."
}
]

This template is reusable because it is parameterised: swap the function under review and the template works for any code in the payments service. It is also exam-ready: it demonstrates explicit task scoping, structured output with a schema, a few-shot example, and a negative constraint.

For more on how prompt engineering intersects with structured output design, see our Prompt Engineering & Structured Output concept library.

How does this map to the CCDV-F exam?

The CCDV-F exam has 53 items across eight domains, with a passing score of 720 on a 100-to-1000 scale. The two domains most directly tested by the skills-MCP-prompt model are:

DomainWeightWhat it tests
Domain 2: Applications and Integration33.1%MCP integration, tool selection, API patterns
Domain 8: Tools and MCPs10.6%MCP configuration, tool descriptions, error handling
Domain 6: Prompt and Context Engineering11.0%Prompt structure, few-shot, context management
Domain 1: Agents and Workflows14.7%Skill-like behaviour in agentic pipelines

Together, these four domains account for 69.4% of the exam. A candidate who can correctly route a requirement to the right layer (skill vs. MCP vs. prompt) and explain why will be well-positioned across all four.

The exam is scenario-based: every item presents a realistic situation and asks you to choose the best action. A typical scenario might describe a team that wants Claude to automatically post a Slack message when a code review is complete, and ask whether the correct implementation uses a skill, an MCP server, a system prompt, or a webhook. The correct answer is an MCP server (Slack requires an authenticated API call), and the distractor answers test whether you confuse behaviour configuration with tool invocation.

Each item is scenario-based and tests practical judgment, not recall.

Anthropic , CCDV-F Exam Guide (2026-07-08)

What does a minimal but useful Claude Code stack look like?

For a solo developer or a small team starting out, we recommend a three-layer stack:

  1. One project-level skill that encodes your team's most important repeatable behaviour (for example, "always write tests before implementation" or "always explain the reasoning before proposing a change").
  2. Two or three MCP servers covering the external systems you touch most: typically GitHub, your primary database, and optionally a documentation or search tool.
  3. A CLAUDE.md file at the project root with project-specific context: the tech stack, the directory structure, and any conventions that do not fit neatly into a skill.

Keep the stack minimal. The tool overload problem is real: giving Claude too many tools degrades its ability to select the right one. Start with the tools you will use in every session and add more only when you have a concrete need.

For teams scaling beyond a handful of developers, version control implications become important. Project-level skills and MCP configuration files should be committed to the repository and reviewed like any other code. User-level customisations should stay out of the repository to avoid conflicts between individual preferences and team standards.

How does this connect to the CCAR-F Architect exam?

If you are preparing for the CCAR-F Architect exam rather than CCDV-F, the same mental model applies but at a higher level of abstraction. Architects are tested on how to design systems that use Claude Code reliably at scale, not just how to configure it for a single project. Domain 3 of CCAR-F (Claude Code Configuration and Workflows, 20% of the exam) covers the configuration hierarchy, hook design, and workflow enforcement patterns that underpin everything described in this guide.

The Claude Code Configuration & Workflows concept library covers 174 atomic concepts mapped to the five CCAR-F domains and 30 task statements. If you are studying for CCAR-F, that library is the right starting point. If you are studying for CCDV-F, our adaptive practice exams (53 questions, scored 100 to 1000 with 720 as the passing bar) are available on the platform today.

AI Skill Certs is an independent prep platform; we are not affiliated with or endorsed by Anthropic.

Frequently asked questions

What is the difference between a Claude Code skill and a slash command?
A skill is auto-loaded at session start and applies ambient behaviour throughout the session without any explicit invocation. A slash command is triggered explicitly by the user at a specific moment. Skills are better for persistent team conventions; slash commands are better for on-demand, one-off actions.
Can a Claude Code skill make API calls to external services like GitHub or Slack?
No. Skills shape Claude's reasoning and output but cannot make network calls or interact with external systems. For any capability that requires an authenticated API call, a database connection, or a side effect outside the local codebase, you need an MCP server, not a skill.
How many MCP servers should I connect to Claude Code to start?
Start with two or three: typically GitHub, your primary database, and optionally a documentation or search tool. Adding too many tools degrades Claude's ability to select the right one for a given task. Expand the stack only when you have a concrete, recurring need for an additional integration.
Where should I store credentials for MCP servers in Claude Code?
Use environment variable expansion in your MCP configuration file, for example `${GITHUB_TOKEN}`. The token is read from the shell environment at runtime and is never stored in the repository. This keeps secrets out of version control while still allowing the configuration file itself to be committed and shared.
How are Claude Code skills versioned and shared across a team?
Project-level skills live in the `.claude/skills/` directory within the repository. Because they are committed to the repo, they are reviewed in pull requests, rolled back with standard git tooling, and automatically applied to every developer who clones the project. User-level skills in `~/.claude/skills/` are personal and should not be committed.
Which CCDV-F domains cover Claude Code skills and MCP integration?
Domain 2 (Applications and Integration, 33.1%) and Domain 8 (Tools and MCPs, 10.6%) are the primary domains. Domain 6 (Prompt and Context Engineering, 11.0%) covers prompt template design and few-shot patterns. Together these three domains account for 54.7% of the 53-item CCDV-F exam.

People also ask

What is Claude Code used for in software development?
Claude Code is an AI coding assistant that integrates into developer workflows via skills (reusable behaviour packs), MCP servers (external tool integrations), and prompt engineering. Developers use it for code review, test generation, refactoring, and automating interactions with external systems like GitHub, databases, and Slack.
How do Claude Code skills differ from MCP servers?
Skills configure how Claude behaves during a session; they are loaded automatically and shape reasoning without making external calls. MCP servers expose external tools that Claude can invoke, such as opening a pull request or querying a database. Skills are behaviour; MCP is tooling.
Is Claude Code covered on the CCDV-F developer certification exam?
Yes. Domain 3 of the CCDV-F exam is dedicated to Claude Code and carries 3.1% of the exam weight. However, Claude Code patterns also appear in Domain 2 (Applications and Integration, 33.1%) and Domain 8 (Tools and MCPs, 10.6%), making it a cross-cutting topic across the 53-item exam.
How do you keep MCP server credentials secure in Claude Code?
Use environment variable expansion in the MCP configuration file, referencing variables like `${GITHUB_TOKEN}` rather than hardcoding values. The configuration file can then be safely committed to version control while the actual credentials remain in the developer's shell environment or a secrets manager.
What is the passing score for the Claude Certified Developer Foundations exam?
The passing score for the CCDV-F exam is 720 on a 100-to-1000 scale. The exam has 53 items and a 120-minute time limit. Anthropic does not publish the raw-to-scaled score conversion, so no exact question count can be stated as the pass mark.

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