New categories: - 11-learning-with-ai.yaml (15 questions): UVAL protocol, 70/30 rule, dependency patterns - 12-architecture.yaml (12 questions): master loop, 8 tools, context budget, sub-agents - 13-security.yaml (10 questions): MCP Rug Pull, CVEs, defense-in-depth - 14-privacy-observability.yaml (10 questions): retention tiers, session search Additions to existing: - 08-mcp-servers.yaml: +3 Figma MCP questions (token efficiency, tools, setup) - 09-advanced-patterns.yaml: +5 methodology questions (SDD, BDD, TDD) - 01-quick-start.yaml: +3 image optimization questions README updated: 217 questions, 56 templates, 14 categories Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
416 lines
14 KiB
YAML
416 lines
14 KiB
YAML
category: "MCP Servers"
|
|
category_id: 8
|
|
source_file: "guide/ultimate-guide.md"
|
|
|
|
questions:
|
|
- id: "08-001"
|
|
difficulty: "junior"
|
|
profiles: ["junior", "senior", "power"]
|
|
question: "What does MCP stand for in the context of Claude Code?"
|
|
options:
|
|
a: "Model Compute Protocol"
|
|
b: "Model Context Protocol"
|
|
c: "Multi-Channel Processing"
|
|
d: "Module Configuration Protocol"
|
|
correct: "b"
|
|
explanation: |
|
|
MCP stands for Model Context Protocol.
|
|
|
|
It is a standard for connecting AI models to external tools and data sources.
|
|
MCP enables Claude Code to extend beyond built-in tools by connecting to:
|
|
- Semantic code analysis (Serena)
|
|
- Documentation lookup (Context7)
|
|
- Database queries (Postgres)
|
|
- Browser automation (Playwright)
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.1 What is MCP"
|
|
anchor: "#81-what-is-mcp"
|
|
|
|
- id: "08-002"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "Which MCP server should you use to find all usages of a function across your codebase?"
|
|
options:
|
|
a: "Context7"
|
|
b: "Sequential Thinking"
|
|
c: "Serena"
|
|
d: "Postgres"
|
|
correct: "c"
|
|
explanation: |
|
|
Serena provides semantic code analysis with tools like `find_referencing_symbols`.
|
|
|
|
Serena tools include:
|
|
- `find_symbol` - Find functions, classes, methods by name
|
|
- `get_symbols_overview` - Get file structure overview
|
|
- `find_referencing_symbols` - Find all usages of a symbol
|
|
- `search_for_pattern` - Regex search across codebase
|
|
|
|
Use Serena for deep code understanding and symbol-level analysis.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.2 Available Servers"
|
|
anchor: "#serena-semantic-code-analysis"
|
|
|
|
- id: "08-003"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "Which MCP server is best for looking up official library documentation?"
|
|
options:
|
|
a: "Serena"
|
|
b: "Context7"
|
|
c: "Sequential Thinking"
|
|
d: "mgrep"
|
|
correct: "b"
|
|
explanation: |
|
|
Context7 is designed for accessing official library documentation.
|
|
|
|
Use Context7 when:
|
|
- Learning new libraries
|
|
- Finding correct API usage
|
|
- Checking official patterns
|
|
|
|
For example, "How does React useEffect work?" should use Context7
|
|
to get the official documentation rather than generic knowledge.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.4 Server Selection Guide"
|
|
anchor: "#server-comparison"
|
|
|
|
- id: "08-004"
|
|
difficulty: "power"
|
|
profiles: ["power"]
|
|
question: "Which MCP server provides persistent memory across sessions?"
|
|
options:
|
|
a: "Context7"
|
|
b: "Postgres"
|
|
c: "Serena"
|
|
d: "Sequential Thinking"
|
|
correct: "c"
|
|
explanation: |
|
|
Serena provides session memory that persists across conversations.
|
|
|
|
Serena memory tools:
|
|
- `write_memory` - Save context for future sessions
|
|
- `read_memory` - Retrieve saved context
|
|
- `list_memories` - List all stored memories
|
|
|
|
Memory is stored in `.serena/memories/` and survives between Claude Code sessions.
|
|
This is crucial for maintaining context on long-running projects.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.2 Available Servers"
|
|
anchor: "#session-memory-workflow"
|
|
|
|
- id: "08-005"
|
|
difficulty: "junior"
|
|
profiles: ["junior", "senior", "power"]
|
|
question: "Where is the global MCP configuration file located?"
|
|
options:
|
|
a: "~/.mcp/config.json"
|
|
b: "~/.claude/mcp.json"
|
|
c: "/etc/claude/mcp.json"
|
|
d: "~/.config/claude/mcp.json"
|
|
correct: "b"
|
|
explanation: |
|
|
The global MCP configuration is at `~/.claude/mcp.json`.
|
|
|
|
Configuration locations:
|
|
- `~/.claude/mcp.json` - Global (applies to all projects)
|
|
- `/project/.claude/mcp.json` - Project-specific (overrides global)
|
|
|
|
The configuration specifies which servers to run and their settings.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.3 Configuration"
|
|
anchor: "#mcpjson-location"
|
|
|
|
- id: "08-006"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "What is the recommended MCP server for complex debugging scenarios?"
|
|
options:
|
|
a: "Context7"
|
|
b: "Serena"
|
|
c: "Sequential Thinking"
|
|
d: "Postgres"
|
|
correct: "c"
|
|
explanation: |
|
|
Sequential Thinking is designed for multi-step analysis with explicit reasoning.
|
|
|
|
Use Sequential Thinking for:
|
|
- Complex debugging scenarios
|
|
- Architectural analysis
|
|
- System design decisions
|
|
|
|
The `sequentialthinking` tool provides step-by-step reasoning that is
|
|
ideal for problems requiring systematic investigation.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.4 Server Selection Guide"
|
|
anchor: "#decision-tree"
|
|
|
|
- id: "08-007"
|
|
difficulty: "power"
|
|
profiles: ["power"]
|
|
question: "How can MCP servers work together effectively?"
|
|
options:
|
|
a: "They cannot - only one server at a time"
|
|
b: "Context7 for patterns -> Serena for code -> Sequential for analysis -> Playwright for testing"
|
|
c: "All servers must be configured identically"
|
|
d: "Servers must be chained in alphabetical order"
|
|
correct: "b"
|
|
explanation: |
|
|
MCP servers can be combined for powerful workflows:
|
|
|
|
1. **Context7** - Get official pattern for auth
|
|
2. **Serena** - Find existing auth code in codebase
|
|
3. **Sequential** - Analyze how to integrate
|
|
4. **Playwright** - Test the implementation
|
|
|
|
This combination leverages each server's strengths for comprehensive development.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.4 Server Selection Guide"
|
|
anchor: "#combining-servers"
|
|
|
|
- id: "08-008"
|
|
difficulty: "junior"
|
|
profiles: ["junior", "senior", "power"]
|
|
question: "What variable can you use in mcp.json to reference the current project path?"
|
|
options:
|
|
a: "${projectPath}"
|
|
b: "${workspaceFolder}"
|
|
c: "${cwd}"
|
|
d: "${PROJECT_DIR}"
|
|
correct: "b"
|
|
explanation: |
|
|
The `${workspaceFolder}` variable expands to the current project path.
|
|
|
|
Variable substitution in mcp.json:
|
|
- `${workspaceFolder}` - Current project path
|
|
- `${env:VAR_NAME}` - Environment variable
|
|
|
|
Example:
|
|
```json
|
|
"env": {
|
|
"PROJECT_PATH": "${workspaceFolder}"
|
|
}
|
|
```
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.3 Configuration"
|
|
anchor: "#variable-substitution"
|
|
|
|
- id: "08-009"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "What is the key advantage of Serena over Claude Code's built-in tools?"
|
|
options:
|
|
a: "It's faster"
|
|
b: "It provides indexation that Claude Code lacks"
|
|
c: "It uses less memory"
|
|
d: "It works offline"
|
|
correct: "b"
|
|
explanation: |
|
|
Serena fills a critical gap: Claude Code has no built-in indexation (unlike Cursor).
|
|
|
|
Serena provides:
|
|
- **Indexation**: Pre-indexes your codebase for efficient symbol lookup
|
|
- **Project Memory**: Stores context between sessions
|
|
- **Onboarding**: Auto-analyzes project structure on first run
|
|
|
|
For large codebases (>10k lines), Serena's indexation dramatically improves performance.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.2 Available Servers"
|
|
anchor: "#serena-semantic-code-analysis"
|
|
|
|
- id: "08-010"
|
|
difficulty: "power"
|
|
profiles: ["power"]
|
|
question: "What distinguishes a Plugin from an MCP Server in Claude Code?"
|
|
options:
|
|
a: "Plugins are faster"
|
|
b: "Plugins bundle Claude-specific workflows; MCP servers add external tool capabilities"
|
|
c: "They are identical"
|
|
d: "MCP servers are for beginners, plugins for experts"
|
|
correct: "b"
|
|
explanation: |
|
|
The rule of thumb:
|
|
- **Plugin** = "How Claude thinks" (new workflows, specialized agents)
|
|
- **MCP Server** = "What Claude can do" (new tools, external systems)
|
|
|
|
Plugins bundle agents, skills, and configuration into installable modules.
|
|
MCP servers add external capabilities like database access or browser automation.
|
|
|
|
Installation differs too:
|
|
- Plugins: `claude plugin install`
|
|
- MCP: Add to `settings.json` MCP config
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.5 Plugin System"
|
|
anchor: "#plugin-vs-mcp-server"
|
|
|
|
- id: "08-011"
|
|
difficulty: "junior"
|
|
profiles: ["junior", "senior", "power"]
|
|
question: "Which MCP server is used for browser automation and E2E testing?"
|
|
options:
|
|
a: "Serena"
|
|
b: "Context7"
|
|
c: "Playwright"
|
|
d: "Sequential Thinking"
|
|
correct: "c"
|
|
explanation: |
|
|
Playwright MCP provides browser automation capabilities.
|
|
|
|
Playwright tools include:
|
|
- `navigate` - Go to URL
|
|
- `click` - Click element
|
|
- `fill` - Fill form field
|
|
- `screenshot` - Capture screenshot
|
|
|
|
Use Playwright for:
|
|
- E2E testing
|
|
- Visual validation
|
|
- Browser debugging
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.2 Available Servers"
|
|
anchor: "#playwright-browser-automation"
|
|
|
|
- id: "08-012"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "How do you add an MCP server with environment variables via CLI?"
|
|
options:
|
|
a: "claude mcp add --env API_KEY=key server"
|
|
b: "claude mcp add -e API_KEY=key my-server -- npx @org/server"
|
|
c: "claude mcp install server --api-key key"
|
|
d: "claude add mcp server -k key"
|
|
correct: "b"
|
|
explanation: |
|
|
Use the `-e` flag to pass environment variables:
|
|
|
|
```bash
|
|
claude mcp add -e API_KEY=your-key my-server -- npx @org/server
|
|
```
|
|
|
|
For multiple environment variables:
|
|
```bash
|
|
claude mcp add -e DATABASE_URL=postgres://... -e DEBUG=true postgres -- npx @prisma/postgres
|
|
```
|
|
|
|
This is quicker than manually editing mcp.json.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.3 Configuration"
|
|
anchor: "#cli-based-mcp-configuration"
|
|
|
|
- id: "08-013"
|
|
difficulty: "power"
|
|
profiles: ["power"]
|
|
question: "What is grepai's key differentiator compared to Serena?"
|
|
options:
|
|
a: "It's faster"
|
|
b: "It provides semantic search by intent plus call graph analysis"
|
|
c: "It supports more languages"
|
|
d: "It has better documentation"
|
|
correct: "b"
|
|
explanation: |
|
|
grepai excels at intent-based search using natural language, plus offers
|
|
call graph analysis to trace function dependencies:
|
|
|
|
```bash
|
|
# Semantic search (finds code by meaning, not exact text)
|
|
grepai search "user authentication flow"
|
|
|
|
# Who calls this function?
|
|
grepai trace callers "createSession"
|
|
```
|
|
|
|
While Serena focuses on symbol-level analysis, grepai finds code by
|
|
describing what it does and traces caller/callee relationships.
|
|
|
|
Use grepai for exploring unfamiliar codebases or understanding dependencies.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.2 Available Servers"
|
|
anchor: "#grepai-recommended-semantic-search"
|
|
|
|
- id: "08-014"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "What command lists all installed plugins in Claude Code?"
|
|
options:
|
|
a: "claude plugins list"
|
|
b: "claude plugin"
|
|
c: "/plugins"
|
|
d: "claude list plugins"
|
|
correct: "b"
|
|
explanation: |
|
|
Running `claude plugin` (without subcommand) lists all installed plugins with status.
|
|
|
|
Plugin commands:
|
|
- `claude plugin` - List installed plugins
|
|
- `claude plugin install <name>` - Install plugin
|
|
- `claude plugin enable <name>` - Enable plugin
|
|
- `claude plugin disable <name>` - Disable plugin
|
|
- `claude plugin uninstall <name>` - Remove plugin
|
|
- `claude plugin validate <path>` - Validate plugin manifest
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "8.5 Plugin System"
|
|
anchor: "#plugin-commands"
|
|
|
|
- id: "08-015"
|
|
difficulty: "intermediate"
|
|
profiles: ["senior", "power"]
|
|
question: "What is the main advantage of using Figma MCP over screenshots?"
|
|
options:
|
|
a: "Higher image quality"
|
|
b: "3-10x fewer tokens: structured data vs. image analysis"
|
|
c: "Faster download speed"
|
|
d: "Works offline"
|
|
correct: "b"
|
|
explanation: |
|
|
Figma MCP provides 3-10x fewer tokens than screenshots because it returns structured data (React+Tailwind structure, design tokens) instead of requiring image analysis. Other benefits: direct token access, component mapping via Code Connect, iterative workflow without new screenshots.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "4.3 Figma MCP Integration"
|
|
anchor: "#figma-mcp-integration"
|
|
|
|
- id: "08-016"
|
|
difficulty: "senior"
|
|
profiles: ["senior", "power"]
|
|
question: "Which Figma MCP tool retrieves design tokens (colors, spacing, typography)?"
|
|
options:
|
|
a: "get_design_context"
|
|
b: "get_variable_defs"
|
|
c: "get_metadata"
|
|
d: "get_screenshot"
|
|
correct: "b"
|
|
explanation: |
|
|
`get_variable_defs` retrieves design tokens like colors (--color-primary: #3B82F6), spacing (--spacing-md: 16px), and typography. Recommended workflow: get_metadata → get_design_context → get_variable_defs (once per project) → get_screenshot (only when visual reference needed).
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "4.3 Figma MCP Integration"
|
|
anchor: "#available-tools-via-figma-mcp"
|
|
|
|
- id: "08-017"
|
|
difficulty: "intermediate"
|
|
profiles: ["senior", "power"]
|
|
question: "What command adds the Figma MCP server for remote access?"
|
|
options:
|
|
a: "claude mcp install figma"
|
|
b: "claude mcp add --transport http figma https://mcp.figma.com/mcp"
|
|
c: "claude figma connect"
|
|
d: "npm install @figma/mcp"
|
|
correct: "b"
|
|
explanation: |
|
|
For remote MCP (all Figma plans, any machine): `claude mcp add --transport http figma https://mcp.figma.com/mcp`. For desktop MCP (requires Figma desktop app with Dev Mode): `claude mcp add --transport http figma-desktop http://127.0.0.1:3845/mcp`. Official Figma MCP was announced in 2025.
|
|
doc_reference:
|
|
file: "guide/ultimate-guide.md"
|
|
section: "4.3 Figma MCP Integration"
|
|
anchor: "#setup-options"
|