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…
- Build an MCP server that exposes a data source (database, internal API, filesystem) as tools/resources for an LLM client
- Define MCP tool, resource and prompt primitives with correct schemas so clients can discover and call them
- Connect an MCP server to an agent client (Claude Desktop, Claude Code, a custom LangGraph/OpenAI Agents client)
- Handle authentication and scoping so an MCP server only exposes data the caller is allowed to see
- Debug an MCP server using the MCP inspector or client logs when tool calls fail
- Choose stdio vs SSE/HTTP transport based on whether the server runs locally or remotely
- 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
- What problem does MCP solve that raw function/tool calling doesn't?
- Walk me through building an MCP server for an internal ticketing system — what tools and resources would you expose?
- How do you secure an MCP server so it doesn't leak data to a client that shouldn't see it?
- What's the difference between an MCP tool, a resource, and a prompt?
- How would you connect an MCP server to a LangGraph agent vs Claude Desktop?
- How do you debug an MCP client that isn't discovering your server's tools?