ed-tech-system-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ed-tech-system-mcpFind documents about machine learning with related videos"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ed-tech-system-mcp
Domain-Driven MCP (Model Context Protocol) server for ed-tech workflows. The server exposes validated MCP tools backed by LangGraph agents, Supabase document retrieval, web search, and YouTube video discovery — all organized with Clean Architecture and DDD.

What this project does
External MCP clients call MCP tools that validate input with Pydantic, delegate to application workflows and LangGraph agents, and reach external systems through domain ports implemented in the infrastructure layer.
MCP tools
Tool | Purpose |
| Liveness probe |
| Document retrieval enriched with related videos (pruned response payloads) |
| YouTube video search for educational content |
| Full document + video discovery LangGraph workflow |
All tool handlers are wrapped with MCP tool caching (when enabled), per-tool latency logging, and domain error mapping at the protocol boundary.
Integrations
Capability | Integration |
Document retrieval | Supabase (Postgres / pgvector) |
Web search | DuckDuckGo (optional Tavily) — wiring deferred until HTTP adapters land |
Video discovery | YouTube Data API v3 |
Agent orchestration | LangChain / LangGraph |
Caching | Redis ( |
Local workflow UI | FastAPI + React (dev tooling) |
Adapter status: Infrastructure adapters are scaffolded with domain guards and exception taxonomy; full HTTP implementations (BL-022) are deferred. MCP tools exercise the workflow and port contracts through the composition root.
Related MCP server: mcp-canon
Architecture
The codebase follows Clean Architecture with five layers under src/mcp_server/:
entrypoint → interface → application → domain ← infrastructure
(main.py) (MCP tools) (agents) (ports) (adapters)Layer | Path | Responsibility |
domain |
| Entities, ports, domain exceptions — no framework imports |
application |
| LangGraph workflows, agent orchestration |
interface |
| MCP tools, Pydantic validation, protocol adapters |
infrastructure |
| Supabase, search, YouTube, Redis adapters |
entrypoint |
| Bootstrap, settings, dependency injection |
Read next: ARCHITECTURE.md for layer rules, patterns, and anti-patterns. AGENTIC_ARCHITECTURE.md for LLM wiring, tool taxonomy, and agent flows. OBSERVABILITY.md for the local LangGraph workflow UI, execution replay, and trace debugging.
Quick start
Prerequisites
Python 3.12 (see
requires-pythoninpyproject.toml)uv — environment and dependency manager
Doppler CLI (recommended for secrets) or a local gitignored
.env
Install
uv python install 3.12
uv sync --all-groupsConfigure secrets
Secrets never enter git. Use Doppler (team) or a local .env (solo dev).
doppler login
./scripts/doppler/setup-local.sh
./scripts/doppler/bootstrap-from-env-example.sh # first time only — uploads placeholders
# Fill real values in the Doppler dashboard → ed-harness-systemRequired variables: APP_ENV, SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, YOUTUBE_API_KEY.
Optional: GROQ_API_KEY (only when an LLM path is invoked — lazy-init at first use), TAVILY_API_KEY, LOG_LEVEL (applied at bootstrap via configure_logging()), CACHE_ENABLED + REDIS_URL (production).
See ENVIRONMENT_SETUP.md for the full secrets workflow.
Run the MCP server
# With Doppler
doppler run -- uv run mcp-server
# With local .env (APP_ENV=development)
uv run mcp-serverRun the workflow UI (optional)
Local dev UI for inspecting workflow graphs, running test executions, and replaying traces:
./scripts/dev/run-workflow-ui.shAPI: http://127.0.0.1:8877 (default) · React dev server: http://127.0.0.1:4173
View | What it shows |
Workflow explorer | Sidebar of registered LangGraph workflows with run forms |
Graph canvas | Compiled nodes, forward/retry/failure edges, live replay highlighting |
Execution replay | Step-by-step trace with validation errors and retry decisions |
Node I/O inspector | Per-step state snapshots, LLM prompts, and raw model output |
Graph visualization — retry loops and parallel branches are rendered on the canvas:
Content generation (validation retries) | Research article (parallel tool calls) |
|
|
Trace replay & debugging — after a run, scrub through each node, inspect failures, and read LLM I/O:

Node I/O inspector — per-step state snapshots, validation errors, and LLM prompts/raw output:

See OBSERVABILITY.md for graph replay, node I/O inspection, and trace API details.
To refresh README screenshots after UI changes:
./scripts/dev/run-workflow-ui.sh # in one terminal
npx -p playwright node scripts/dev/capture-ui-screenshots.mjs # in anotherDevelopment
Day-to-day commands
uv sync --frozen # after pulling lockfile changes
uv run mcp-server # start server
uv run ruff check src/ # lint
uv run ruff format --check src/
uv run mypy src/ # type check
uv run pytest # tests (143 cases as of 2026-07-21)Engineering backlog
Audit findings are triaged into backlog/BACKLOG.md (RICE-ranked, traceable to changelog audits). As of 2026-07-21: 23 done, 6 deferred (adapter HTTP implementation, profiling, trace IDs).
Add dependencies
uv add some-package # runtime
uv add --group dev some-tool # dev onlyDo not use pip install in this repo — it bypasses the lockfile.
Quality gates (CI parity)
uv sync --frozen --all-groups
uv run ruff check src/
uv run mypy src/
npm run lint:architecture # layer imports + boundary patterns (also runs on git push)
uv run pytestGit hooks: Husky pre-commit runs public-repo safety checks (sensitive files, tracked leaks, secret scanners); pre-push re-checks tracked safety, scans pushed commits for secret content, then runs architecture lint — neither blocks the other tier.
Run quality-gate commands from the repository root (ed-tech-system-mcp/), not ui/. The same scripts are also available inside ui/ via npm run hooks:test and npm run lint:architecture.
Project layout
.
├── src/mcp_server/ # Application source (layered)
├── tests/ # pytest suites
├── ui/ # React workflow graph UI
├── scripts/
│ ├── doppler/ # Secret bootstrap and local setup
│ ├── hooks/ # Husky pre-commit guards
│ └── dev/ # Dev tooling (workflow UI launcher)
├── docs/
│ └── assets/ # README screenshots (workflow UI)
├── ARCHITECTURE.md # Layer boundaries and patterns
├── AGENTIC_ARCHITECTURE.md # Agent graphs and tool orchestration
├── OBSERVABILITY.md # Workflow UI, trace replay, debugging
└── ENVIRONMENT_SETUP.md # uv, secrets, CI, MCP client configDocumentation index
See the documentation matrix at the end of this file for canonical docs and changelog artifacts.
MCP client integration
Register the server in your MCP host using the project interpreter:
{
"mcpServers": {
"ed-tech-system": {
"command": "doppler",
"args": ["run", "--", "uv", "--directory", "/absolute/path/to/ed-tech-system-mcp", "run", "mcp-server"]
}
}
}Alternative patterns (local .env, uv launcher) are in ENVIRONMENT_SETUP.md § MCP client integration.
Documentation matrix
Read the minimum doc set for your task. Do not load everything.
Canonical docs (repo root)
Document | Read when |
First visit — overview, quick start, MCP tools, workflow UI | |
Any code change — layers, ports/adapters, deps per layer, file layout, anti-patterns | |
LangGraph/LangChain agents, LLM wiring, tool taxonomy, DB/web/video flows | |
Local workflow UI, execution replay, trace/API debugging | |
|
Conflict resolution: ARCHITECTURE.md wins on layer boundaries; AGENTIC_ARCHITECTURE.md wins on orchestration semantics.
Engineering backlog
Document | Read when |
RICE-ranked tasks from audits; status tracking | |
Scoring rubric and priority formula for backlog items |
Changelog memory (changelog/{DATE}/{LAYER}/)
Local engineering memory for investigations, implementations, reviews, audits, and test homologation (gitignored — not published).
File pattern | Purpose |
| Scope and gaps before coding |
| Execution checklist and status |
| Pre-merge review findings |
| Behavior catalog before writing tests |
| Coverage verdict after tests pass |
| Performance bottleneck findings |
| Maintainability / dead-code findings |
| Merged refactor actions from audits |
Pairing: IMPLEMENTATION{N} ↔ INVESTIGATION{N}; CODE_REVIEW{N} ↔ same {N}.
Quick routing
Code in a layer? → ARCHITECTURE.md (+ AGENTIC_ARCHITECTURE.md if agents/tools/LLM)
Workflow UI / traces? → OBSERVABILITY.md
Environment / CI? → ENVIRONMENT_SETUP.md
Secrets / Doppler? → ENVIRONMENT_SETUP.md § Secrets & safety
Tests / merge gate? → pytest + quality gates in ENVIRONMENT_SETUP.md
Audits / cleanup? → backlog/BACKLOG.mdLicense
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.57MIT
- AlicenseAqualityCmaintenanceUniversal MCP knowledge server for LLM agents, powered by local RAG, providing domain-specific best practices and playbooks across software engineering, marketing, video editing, and other knowledge areas.3MIT
- Flicense-qualityCmaintenanceMCP server implementing clean architecture with LangGraph for building and managing agent workflows.
- Flicense-qualityCmaintenanceMCP server for The Culture, a fashion-focused social media app, exposing Supabase database operations and Hugging Face model inference as tools for use in Claude Code, n8n agents, and the Larry orchestrator.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
MCP server for interacting with the Supabase platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paulocymbaum/ed-tech-system-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server

