Agents & workflows

Expose and consume tools via MCP

Build an MCP server for a data source and connect it to agent clients.

~8 focused hours·intermediate

Tools: Model Context Protocol (MCP), MCP Python SDK, Claude Desktop/Code, stdio/SSE transports

Market relevance — share of job ads asking for this
What employers mean

You should be able to…

  1. Build an MCP server that exposes a data source (database, internal API, filesystem) as tools/resources for an LLM client
  2. Define MCP tool, resource and prompt primitives with correct schemas so clients can discover and call them
  3. Connect an MCP server to an agent client (Claude Desktop, Claude Code, a custom LangGraph/OpenAI Agents client)
  4. Handle authentication and scoping so an MCP server only exposes data the caller is allowed to see
  5. Debug an MCP server using the MCP inspector or client logs when tool calls fail
  6. Choose stdio vs SSE/HTTP transport based on whether the server runs locally or remotely
  7. Version and document an MCP server so other teams can consume it without reading the source

Needs first: Implement tool / function calling

Learn — free, link-checked

The few resources that matter

Read · beginner · 20 min · modelcontextprotocol.io

What is the Model Context Protocol (MCP)?

The canonical explanation of MCP's client-server architecture before you build one. — Anthropic / MCP
Read · intermediate · 40 min · openai.github.io

OpenAI Agents SDK

Lightweight alternative to LangGraph for agent loops, handoffs and guardrails, increasingly named in JDs alongside LangGraph/CrewAI. — OpenAI
Read · intermediate · 45 min · modelcontextprotocol.io

Build an MCP server

Step-by-step walkthrough to expose tools/resources from your own data source as an MCP server in Python or TypeScript. — Anthropic / MCP
Build from · intermediate · 60 min · github.com

modelcontextprotocol/python-sdk

Reference implementation and examples for building production MCP servers/clients in Python. — Model Context Protocol
Course · intermediate · 90 min · deeplearning.ai

MCP: Build Rich-Context AI Apps with Anthropic

Builds an MCP server and connects it to a chatbot client, covering resources, prompts and tools in one project. — DeepLearning.AI (with Anthropic)
Practice

MCP server for Indian company filings lookup

Build an MCP server that wraps a small local dataset of company filings/GST-style records and exposes 'search_company', 'get_filing_details', and a 'filings://recent' resource. Connect it to Claude Desktop or a custom MCP client and demonstrate a natural-language query resolving into the right tool calls. Add basic API-key scoping so only authorized clients can query sensitive fields.

Done when
  • An MCP server exposing at least 2 tools and 1 resource with correct JSON schemas
  • Successfully connected to and queried from a real MCP client (Claude Desktop, Claude Code, or a custom client)
  • A scoping/auth check that blocks an unauthenticated request from reading sensitive fields
  • README with setup steps and a transcript of 3 working queries
Prove it

Evidence a recruiter can check

  • Public GitHub repo with the MCP server source and a README showing exact client-config steps
  • A screen recording of the server's tools being discovered and called from a real MCP client
  • MCP inspector output or logs showing tool schemas as advertised to the client
Interview

Questions you'll get asked

  1. What problem does MCP solve that raw function/tool calling doesn't?
  2. Walk me through building an MCP server for an internal ticketing system — what tools and resources would you expose?
  3. How do you secure an MCP server so it doesn't leak data to a client that shouldn't see it?
  4. What's the difference between an MCP tool, a resource, and a prompt?
  5. How would you connect an MCP server to a LangGraph agent vs Claude Desktop?
  6. How do you debug an MCP client that isn't discovering your server's tools?
See where you stand for AI Automation Specialist