Interview Preparation, Quiz, and Practice Plan
Practice this questionWANT TO UNDERSTAND THE CONCEPT FIRST?Learn Interview Preparation, Quiz, and Practice Plan
Pending foundation exercise
An existing Express backend has GET /orders/:id. Answer these questions before checking the guide:
- Should the MCP server rewrite the entire order backend?
- Which existing functionality can the
lookup_ordertool reuse? - Where should authorization be enforced to prevent a user from accessing another customer's order?
Four-question quiz
- What is the difference between a host, client, and server?
- If the model generates a tool-call request, who has final control over execution?
- When would you choose a resource instead of a tool, and vice versa?
- Why is it risky to assume an optional feature is available without capability negotiation?
Interview question ladder
Beginner
- What does MCP standardize?
- What are the roles of
tools/listandtools/call? - What is the difference between stdio and Streamable HTTP?
Intermediate
- How would you reuse an existing service layer in MCP?
- Why are structured outputs and output schemas useful?
- What is the difference between a tool error and a protocol error?
Advanced
- Design authentication for a multi-tenant remote server.
- How would you protect action execution against prompt injection in a malicious resource?
- How would you handle a large tool catalog and prevent loops in a multi-server host?
Answer framework
- State the problem and the boundary.
- Explain the request flow.
- Identify trust and authorization decisions.
- Cover failure handling and observability.
- Mention trade-offs and alternatives.
Official references
- MCP documentation: https://modelcontextprotocol.io/docs/
- MCP specification: https://modelcontextprotocol.io/specification/2026-07-28/
- TypeScript SDK v2: https://github.com/modelcontextprotocol/typescript-sdk
- TypeScript SDK documentation: https://ts.sdk.modelcontextprotocol.io/v2/
Final revision sheet
- MCP is a protocol layer, not an agent or a security boundary.
- Initialize first; use only negotiated capabilities.
- Tools perform actions, resources provide context, and prompts provide reusable message templates.
- Use stdio locally and Streamable HTTP for remote servers when appropriate.
- Keep adapters thin and reuse services and repositories.
- Validate every input and output; authorize every protected object.
- Approval, least privilege, audit logs, timeouts, and idempotency protect actions.
- Test protocol behavior, transport behavior, security, and model orchestration separately.
- The current TypeScript SDK v2 uses split server/client packages; recognize v1 tutorials as legacy.
Adapted from 20_MCP_SERVER.md · “18. Interview Preparation, Quiz, and Practice Plan”. Code examples are study fragments. Difficulty and core labels are editorial estimates; version-specific behavior should be checked against your project.