Skip to main content
Glama

Montessori MCP

An MCP server that connects Claude to Onespot (The Montessori App, by Seabird Apps) and Transparent Classroom. Gives Claude access to school notifications, classroom feeds, posts, events, and TC account data — all scoped to the authenticated user's own data.

Installation (hosted)

The easiest way is the hosted server on Render — no npm, no config files.

  1. In Claude, go to Settings → Integrations (Claude.ai) or Settings → Customize → Connectors (Claude desktop)

  2. Add this URL: https://montessori-mcp.onrender.com/mcp

  3. Claude will open a browser window with a Transparent Classroom login form

  4. Sign in once — all future sessions are silent

Note: The free-tier Render instance spins down after inactivity. The first request after a cold start may take up to 60 seconds.

Related MCP server: io.github.thehesiod/psquare

Available Tools

Onespot / The Montessori App

Tool

Description

onespot_get_my_profile

Your Onespot profile and detected app ID.

onespot_list_notifications

School-wide push notifications — closures, building updates, admin announcements.

onespot_list_portals

All sections of the school app: feeds, chats, calendar, static pages.

onespot_list_posts

Recent posts in a specific activity feed. Requires a feed_id from onespot_list_portals.

onespot_get_post

A specific post with all comments and author names.

onespot_post_message

Post a new message to an activity feed.

onespot_add_comment

Comment on an existing post.

onespot_list_events

School calendar events.

onespot_explore_path

Explore any Firebase RTDB path directly. Useful for debugging.

Transparent Classroom

Tool

Description

Role required

tc_get_my_info

Your TC profile: name, role, school ID.

Any

tc_list_children

All children at the school.

Staff / Admin

tc_list_classrooms

All classrooms.

Staff / Admin

tc_list_lessons

Lesson history for a child.

Staff / Admin

tc_list_observations

Teacher observations for a child.

Staff / Admin

tc_list_events

TC calendar events.

Staff / Admin

tc_list_users

Staff directory.

Staff / Admin

tc_list_conference_reports

Progress/conference reports for a child.

Staff / Admin

Note for parent accounts: TC's REST API does not grant parents access to school-wide data. Staff-only tools return Forbidden. All parent-facing school data is available through the onespot_ tools instead.

How it works

Authentication uses the MCP OAuth 2.1 flow. When you connect, Claude opens a Transparent Classroom login page in your browser. After you sign in, your TC API token and Firebase refresh token are encrypted (AES-256-GCM) and embedded in a signed JWT that Claude stores. The server validates that JWT on every request — no database lookup required. Your password is never stored.

Firebase ID tokens expire hourly; the server exchanges the stored refresh token for a fresh one on each request that uses Onespot tools.

Local development

1. Clone and install

git clone https://github.com/tgboyles/montessori-mcp
cd montessori-mcp
npm install

2. Create .env

NODE_ENV=development
PORT=3000
JWT_SECRET=dev-secret-32-bytes-minimum-here!!
ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000
SERVER_URL=http://localhost:3000
TC_EMAIL=you@example.com
TC_PASSWORD=yourpassword

REDIS_URL is optional — when unset the server uses an in-memory store (fine for local dev on a single process).

3. Build and run

npm run build
node dist/index.js

In dev mode with TC_EMAIL/TC_PASSWORD set, the server authenticates with TC on startup and prints a Bearer token to stderr:

[dev] Bearer token: eyJhbGci...

Use that token directly in a REST client (Bruno, Insomnia, curl) to call POST http://localhost:3000/mcp without going through OAuth.

Testing the full OAuth flow locally

The OAuth flow requires a publicly reachable URL. Use ngrok:

ngrok http 3000

Update .env with the ngrok URL:

SERVER_URL=https://abc123.ngrok-free.app

Restart the server, then add https://abc123.ngrok-free.app/mcp as a Claude connector. The login page redirect and token exchange will all go through ngrok.

Run tests

npm test          # all tests (unit + integration)
npm run test:unit # unit tests only (no credentials needed)

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/tgboyles/montessori-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server