Schoology MCP Experiment
Independent MCP experiment that grouped selected Schoology assignments into ChatGPT briefings with source links.
Fall 2025 · AI tooling · Completed experiment

Stack
Stack: MCP · ChatGPT Apps SDK · Python · FastAPI · SQLite · SQLAlchemy
An independent MCP experiment: the server maintained a local mirror and returned selected assignment information to ChatGPT, grouped into briefings with direct source links.
Log
DevDay drop
Watched OpenAI introduce the Apps SDK. The Spotify demo showed a useful shape: ask in natural language, let a tool do the work, then render something richer than text inside ChatGPT. That made me wonder whether assignment information could use the same flow.

A public DevDay demo that sparked the idea. Reading the protocol
Pulled up the MCP shape. A host speaks one protocol; servers expose tools and resources; the host does not depend on the backing source. The local assignment mirror fit behind that boundary.

A general MCP reference diagram; the same host-and-server boundary fit this experiment. Pattern catalog
The Apps SDK's Pizzaz demo worked like a layout cookbook. The useful shape here was a grouped list: a count at the top, assignments organized by time window, and direct links to their original sources.

Reference layouts from the Apps SDK's Pizzaz demo. The pain, named
Wrote down the friction in my own workflow: the information I wanted was spread across the feed and assignment materials, so I had to keep looking around. The experiment was to bring selected information together in a brief, linked view.
Problem, mapped
The slow part was getting from a busy dashboard to a useful list. Grouping selected assignments into one briefing gave me a clearer starting point while keeping the original links close.
Architecture sketch
Drew the pipeline before writing code: source, synchronizer, database, MCP server, then ChatGPT. The server answered from its local mirror, so each tool call did not need to wait for a live crawl.

Implementation pipeline: sync into the local mirror, then return selected information through MCP. MCP wiring
The MCP server exposed queries for relevant assignments and course materials. Each call returned selected information from the local mirror as a structured result ChatGPT could explain or format.
Widget render
The Apps SDK turned the result into a briefing: assignments grouped by time window, each with a direct link to its original source. ChatGPT handled the summary; the links kept the source close.
Demo day
The demo returned selected assignments grouped by time window, with direct links to their sources. A course-material query brought back a short, organized list with links to relevant source items. The experiment made a useful starting point in ChatGPT while keeping the original source one click away.
What's next
Next ideas were a grade-tracking dashboard, an assignment planner, and alerts when grades or due dates changed. They were roadmap concepts, each requiring another query and widget over the mirrored data.

Future concepts, beyond the current experiment.
Result
Grouped assignment briefings with direct source links.
What I learned
The interesting part was shaping selected assignment information into something ChatGPT could brief me on. MCP supplied a boundary, the server's local mirror supplied structured results, and the Apps SDK gave the answer a useful form. The experiment made a helpful starting point while keeping source links close.