01 What students build
tc_mcp.py: a single-file MCP server that loads testcases_vwo_100.csv (478 rows in practice) into memory and exposes it over stdio. The LLM can page through cases, filter by priority, module, label, owner, status or sprint, run free-text search across summaries and steps, pull aggregate stats, and append a brand-new test case that persists to the CSV with an auto-generated TC-00### id.
15 Tools
From list_test_cases and get_test_case to a multi-filter search_test_cases that ANDs priority, module, label, owner and free text.
Resources + Prompts
testcases://all, testcases://stats and a testcases://{id} template, plus review_test_case and suggest_regression_pack prompt templates.
A Write Path
add_test_case appends to the CSV and updates the in-memory cache, so students see an MCP server that changes state, not just reads it.
02 Architecture
03 Live demo (simulated with sample data)
This is a UI walkthrough with pre-baked sample data so you can feel the server without a client. In the course you run the real thing: python tc_mcp.py over stdio, inspected via npx @modelcontextprotocol/inspector.
04 Inputs & outputs
What goes in
- testcases_vwo_100.csv: 478 rows with steps, labels, owners, sprints
- Natural-language asks from any MCP client
- Tool arguments: priority P0-P3, module, label, owner, status, sprint
- New test-case fields for the add_test_case write tool
What comes out
- Filtered, paginated test-case records as structured JSON
- Aggregate stats: counts by priority, module, status, label
- Auto-generated TC-00### ids for appended cases, persisted to CSV
- Rendered prompts: senior-QA review, focused regression pack
- Resource reads: testcases://all, testcases://stats, testcases://TC-00003