Josh Ramirez
← Field guide

Entry 06 of 23

Departed Fall 2025

SchoologyAI agentShipped
Presentation title slide reading Apps SDK and Schoology on a blue green gradient background
The question: can ChatGPT become the Schoology surface I actually want?

Departure

Schoology is where school information goes to become homework. Grades live in one place, assignments in another, course materials behind folders, and the feed buries anything useful under announcements. I wanted the opposite workflow: ask ChatGPT what matters, get the assignments and links back as a real tool result, and only open Schoology when I actually had to submit something.

Approach

6 tools

  • MCP
  • ChatGPT Apps SDK
  • Python
  • FastAPI
  • SQLite
  • SQLAlchemy

No clean Schoology surface. The server had to keep its own local mirror warm so user-facing tool calls could be fast, predictable, and independent of the live dashboard.

Field log

10 entries

  1. DevDay drop

    Watched OpenAI ship the Apps SDK. The Spotify demo was the important shape: ask in natural language, let the tool do the work, then render something richer than text inside ChatGPT. That was the missing piece for Schoology — not another scraper, a usable surface.

    OpenAI DevDay stage showing a Spotify app demo inside ChatGPT with a Latin Chill Mix playlist rendered in the conversation
    The useful part was the host: ChatGPT could render an app, not just call an API.
  2. Reading the protocol

    Pulled up the MCP shape. A host speaks one protocol; servers expose tools and resources; the host does not care whether the backing system is a file folder, GitHub, Slack, Maps, or a hacked-together Schoology mirror. That was exactly the boundary I needed.

    MCP architecture diagram with Claude Desktop as the host connected through MCP Protocol to file system, GitHub, Slack, Bluesky, and Google Maps MCP servers
    Same host, different servers. Schoology could just be another server.
  3. Pattern catalog

    The Apps SDK shipped with a Pizzaz demo that worked like a layout cookbook: list, map, carousel, album. Schoology did not need a map or a carousel. It needed the boring one: a ranked list with a count on top and every item linked back to the original material.

    Apps SDK Pizzaz Connector mockups showing ranked pizza list, map pins, horizontal restaurant cards, and stacked photo albums
    A UI cookbook disguised as a pizza demo.
  4. The pain, named

    Wrote down what Schoology actually costs me daily: grades, assignments, and materials are separated; the feed is mostly noise; the workflow is reactive. I have to remember to go look. The goal was to flip that into a briefing.

  5. Receipts

    Took screenshots so the project did not become abstract. The main feed, overdue column, upcoming column, and AP Calc folders all said the same thing: the data exists, but the surface makes me pay attention tax every time I need it.

    Cluttered Schoology collage showing a busy dashboard feed, overdue and upcoming columns, and long AP Calculus folders full of worksheets and solutions
    The pain point slide. The data was there; the interface was the problem.
  6. Architecture sketch

    Drew the pipeline before writing code. Schoology feeds a synchronizer, the synchronizer writes the database, the MCP server reads that database, and ChatGPT calls the MCP server. The important rule: ChatGPT never waits on a live Schoology crawl.

    Horizontal architecture diagram showing Schoology flowing into a Synchronizer, then a database, then an MCP Server, then ChatGPT
    The whole system in one line: crawl in the background, answer from the mirror.
  7. MCP wiring

    The MCP server exposed the useful questions directly: summary today, next 48 hours, this week, course materials, assignment links. Each tool call became a database query plus a structured response ChatGPT could render or explain. The agent was no longer browsing Schoology; it was asking my copy of Schoology.

  8. Widget render

    The Apps SDK piece turned the tool result into a briefing instead of a wall of text. Count at the top, assignments grouped by window, direct links back into Schoology. The interface lived in ChatGPT, but the shape of the UI came from my server.

  9. Demo day

    Two prompts on stage. 'Get my Schoology summary today and next 48 hours' returned the Daily Briefing widget: five assignments due today, tomorrow grouped underneath, every title clickable straight to Schoology. 'Get all my English class assignments and give me all the links to the poems' took about 30 seconds, then returned a sectioned AP English IV list with the Daily Poetry folder links pulled out cleanly.

    Two ChatGPT screenshots side by side: a Schoology Pro Daily Briefing widget listing assignments due today and tomorrow, and a long AP English IV response with assignment and poem links pulled from Schoology
    The two demo paths: a compact briefing widget, then a long materials query with direct links.
  10. What's next

    The same shape extends cleanly: a performance dashboard for grade tracking, an interactive planner for turning assignments into a Kanban board, and proactive alerts when grades or due dates change. Each future card is just another query over the mirrored Schoology data and another widget shape for the Apps SDK host.

    Future roadmap cards for Schoology MCP showing Performance Dashboard for grade tracking, Interactive Planner as a Kanban board, and Proactive Alerts for new grade notifications
    Once the mirror exists, future surfaces are mostly new queries and new widgets.

From the gallery

8 figures

Apps SDK and Schoology title slide
The project frame.
Schoology dashboard and course materials clutter collage
The dashboard I wanted to stop opening.
Schoology to Synchronizer to database to MCP Server to ChatGPT pipeline
The server path.
Generic MCP host and server architecture diagram
The protocol shape.
Pizzaz Apps SDK layout examples
The widget reference.
OpenAI DevDay Spotify app demo inside ChatGPT
The moment the host clicked.
ChatGPT Schoology demo showing a Daily Briefing widget and an AP English IV materials response
The live demo output.
Schoology MCP future roadmap with Performance Dashboard, Interactive Planner, and Proactive Alerts
The next tools the same mirror can support.

What I came back with

Ask ChatGPT first; open Schoology only to submit.

Lesson from the terrain

The leverage was not the model. It was moving Schoology out of the browser and into a shape an agent could query. MCP gave the boundary, the local mirror made it fast, and the Apps SDK made the answer feel like software instead of a transcript. Once those three pieces were in place, Schoology stopped being a dashboard I had to inspect and became a data source ChatGPT could brief me on.

Cross-links