CSG Portal MCP Server
Retrieves Lower School lunch volunteer opportunities and slot availability from SignUpGenius for Columbus School for Girls
Stores secure credentials and cached data with encryption for the CSG Veracross portal integration
Click on "Deploy 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., "@CSG Portal MCP Server Find all students in Form V for the upcoming school year"
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.
CSG Portal MCP Server
⚠️ UNOFFICIAL PROJECT - This is an unofficial, community-created MCP server for Columbus School for Girls Veracross portal integration. It is not affiliated with, endorsed by, or supported by Columbus School for Girls or Veracross.
📋 REQUIREMENTS - This server requires a valid Veracross portal user account (student, parent, or staff) with active access to the CSG portal at https://portals.veracross.com/csg
A Model Context Protocol (MCP) server that provides secure access to directory search, calendar events, and other school portal features through Claude Desktop and other MCP-compatible AI assistants.
Features
🔐 Secure Browser Authentication - No credentials stored in Claude, login via your browser
📞 Directory Search - Find students, parents, and staff with contact information
📅 Calendar Events - Search upcoming school events and activities
🍽️ Lower School Lunch Volunteers - Check volunteer slots and availability
👥 Multi-User Support - Isolated data storage per user
⚡ Smart Caching - 24-hour cache for improved performance
🏫 CSG-Specific - Tailored for Columbus School for Girls grade system (Forms I-XII)
Related MCP server: schoolpass-mcp
Installation
For Claude Desktop Users
Install the MCP server globally:
npm install -g @bradgriffith/csg-portal-mcpAdd to your Claude Desktop MCP configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"csg-portal": {
"command": "npx",
"args": ["@bradgriffith/csg-portal-mcp@latest"]
}
}
}Restart Claude Desktop
Quick Start (No Installation)
You can also use it directly without installation:
{
"mcpServers": {
"csg-portal": {
"command": "npx",
"args": ["@bradgriffith/csg-portal-mcp@latest"]
}
}
}Prerequisites
🔑 Valid Veracross Account Required - You must have an active Veracross account with access to the Columbus School for Girls portal. This includes:
Current students with portal access
Parents/guardians of current students
Faculty and staff members
Alumni (if they have retained portal access)
If you don't have access to the CSG Veracross portal, this server will not work for you.
User Setup (Claude Desktop)
First Time Setup
After installing the MCP server, you can start using it immediately! Just send prompts to Claude and include your email address.
Authentication (one-time setup): Simply ask Claude to log you in:
"Please log me in to the CSG portal using my email: parent@example.com"A web browser window will automatically open with a secure login form
Enter your regular CSG Veracross username and password
The page will show "Authentication successful!" when complete
The browser window will close automatically
Your credentials are never stored in Claude - only secure session tokens
Set Default User (optional but recommended):
"Set me as the default user with email: parent@example.com"This lets you make requests without including your email every time
Example Prompts
Once authenticated, try these example prompts:
Directory Search:
"Find all families with the last name Johnson in the CSG directory"
"Search for parents in New Albany, Ohio"
"Find all students in Form VI"
"Look up contact information for families in the 43054 zip code"Calendar Events:
"What school events are coming up in the next month?"
"Show me all upcoming Middle School events"
"Are there any events this week?"
"What's on the school calendar for the next 3 months?"Lower School Lunch Volunteers:
"Check the Lower School lunch volunteer slots for this week"
"Are there any open lunch volunteer positions for next week?"
"Show me lunch volunteer slots for August 27, 2025"
"Are there any available volunteer spots on Wednesday?"
"Show me days this week that need lunch volunteers"User Management:
"Check if I'm still authenticated with the CSG portal"
"Clear my stored credentials"Developer Setup
Note: End users don't need this section - it's only for developers who want to modify or contribute to the project.
Required Environment Variables
Create a .env file or set environment variables:
# MongoDB connection (required for production use)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DATABASE=csg_portal
# Encryption key for secure credential storage
ENCRYPTION_MASTER_KEY=your-secure-encryption-key-here
# Veracross portal URL (optional, defaults to CSG)
VERACROSS_BASE_URL=https://portals.veracross.com/csg
# SignUpGenius URLs (optional, defaults to current CSG URLs)
LS_LUNCH_SIGNUP_URL=https://www.signupgenius.com/go/10C084BADAA2BA2FFC43-57722061-lslunch#/MongoDB Setup
The server requires MongoDB for secure credential and cache storage:
Local Development: Install MongoDB locally
Production: Use MongoDB Atlas or similar cloud service
Available Tools
login
Log in to the CSG Veracross portal via secure browser authentication. No credentials are stored in Claude.
search_directory
Search the school directory for students, parents, and staff.
Parameters:
firstName,lastName,city,postalCode,gradeLevelGrade Levels: Use CSG format like "VI", "X", "3/4 Yr Olds", etc.
school_events
Check upcoming school calendar events.
Default: Searches next 3 months
Auto-fallback: Extends to 12 months if no events found
Parameters:
searchMonths,refresh
lunch_volunteers
Check Lower School lunch volunteer opportunities.
Shows: Only days with open volunteer slots (filters out fully booked days)
Positions: Salad/deli and Soup volunteer roles
Times: All shifts are 10:45am - 11:45am in the dining hall
Source: SignUpGenius (no Veracross authentication required)
Parameters:
refresh,date(YYYY-MM-DD),week("this", "next", or date)Date Filtering: Can search specific dates or weeks (Sunday-Saturday)
Smart Filtering: Only displays days that need volunteers (0 or 1 volunteer signed up)
set_default_user
Set a default user email to avoid entering it repeatedly.
check_authentication
Verify if you have a valid stored authentication session.
Security
No Credential Storage in Claude: Authentication happens via secure browser flow
Encrypted Storage: All credentials encrypted with AES-256-CBC
User Isolation: Each user's data is completely isolated using email-based hashing
Environment Variables: Sensitive configuration via environment variables only
CSG Grade System
The server understands Columbus School for Girls' Form system:
PYC: "3/4 Yr Olds", "4/5 Yr Olds"
Lower School: Forms I, II, III, IV, V
Middle School: Forms VI, VII, VIII
Upper School: Forms IX, X, XI, XII
Development
Local Development
# Clone and install
git clone https://github.com/bradgriffith/csg-portal-mcp.git
cd csg-portal-mcp
npm install
# Set up environment
cp .env.example .env
# Edit .env with your settings
# Build and run
npm run build
npm startContributing
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Troubleshooting
Common Issues
"No user email provided"
Use
set_default_usertool first, or provideuserEmailparameter
"Browser authentication required"
Use
authenticate_browsertool to log in via your browser
"Calendar search failed"
Check your authentication status with
check_authenticationTry the
refresh: trueparameter to bypass cache
"Directory search failed"
Verify you're authenticated and have portal access
Check that grade levels use correct CSG format
Debug Mode
Set NODE_ENV=development for additional logging output.
Disclaimer
This is an unofficial project created by a member of the CSG community. It is not affiliated with, endorsed by, or supported by:
Columbus School for Girls
Veracross, Inc.
Anthropic (makers of Claude)
Use at your own discretion. The author is not responsible for any issues that may arise from using this software.
License
MIT License - see LICENSE file for details.
Support
Issues: GitHub Issues
Email: brad@bradgriffith.com
Note: For official CSG IT support, please contact the school directly. This unofficial project is not supported by CSG IT services.
Built by the CSG community, for the CSG community 🏫
Available Tools
8 toolscheck_authenticationA
Check if you have a valid stored authentication session.
Inputs: userEmail.
clear_credentialsB
Clear stored login credentials
Inputs: no named parameters.
loginA
Log in to the CSG Veracross portal. Opens your browser for secure authentication - your credentials never appear in Claude.
Inputs: userEmail.
logoutA
Logout from Veracross portal and clear session
Inputs: no named parameters.
lunch_volunteersA
Check Lower School lunch volunteer opportunities. Shows only days that need volunteers (open slots) for Salad/deli and Soup positions at 10:45am-11:45am in the dining hall.
Inputs: refresh, date, week.
school_eventsA
Check upcoming school calendar events. By default searches the next 3 months, automatically extends to 12 months if no events found.
Inputs: searchMonths, refresh, userEmail.
search_directoryB
Search the CSG directory for students, parents, and staff. Results are cached for 24 hours by default. CSG uses Forms (not grades) with 4 schools: PYC (ages 3/4, 4/5), Lower School (Forms I-V), Middle School (Forms VI-VIII), Upper School (Forms IX-XII).
Inputs: firstName, lastName, city, postalCode, +3 more.
set_default_userA
Set a default user email so you don't need to provide it every time. This email will be used for all authentication and directory searches.
Inputs: userEmail (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose with no overlap. Authentication tools (check_authentication, clear_credentials, login, logout, set_default_user) handle different aspects of session management, while content tools (lunch_volunteers, school_events, search_directory) target specific school resources. The separation between authentication and content retrieval is particularly clear.
All tools follow a consistent snake_case verb_noun pattern throughout. The naming convention is predictable and readable, with clear action-object relationships (e.g., check_authentication, search_directory, set_default_user). There are no deviations in style or structure across the tool set.
With 8 tools, this server is well-scoped for a school portal interface. The count balances authentication management (5 tools) with content access (3 tools), providing comprehensive coverage without bloat. Each tool serves a distinct, necessary function in the domain.
The tool set covers core portal workflows effectively: authentication lifecycle, directory search, event checking, and volunteer opportunities. A minor gap exists in content modification capabilities (e.g., no tools for signing up for events or volunteers), but agents can work with the provided read-only operations for most common tasks.
Maintenance
Related MCP Connectors
Family schedules and household tools with OAuth. External calendars remain read-only.
Construction safety, training compliance and operations for your company (OAuth sign-in).
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Read ChurchSuite contacts, children, small groups, rotas, events and attendance; add contact notes.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables Claude to access ParentSquare school-parent communication platform, including feeds, calendar, conversations, and media files.48114 PyPI14MIT
- AlicenseAqualityAmaintenanceEnables parents to view and manage their child's school arrival and dismissal details, including calendar, pickup changes, drivers, and school information, using the SchoolPass REST API.11507 npmMIT
- AlicenseAqualityFmaintenanceEnables Claude to access the ParentSquare school-parent communication platform via its web interface and internal APIs, covering parent features like feeds, calendars, messages, forms, and payments, plus school admin roster management such as students, guardians, classes, and staff.48MIT
- AlicenseAqualityCmaintenanceEnables parents to search and inspect educational materials available in their own authorized SAS account, including catalog metadata, section and resource listings, personalized availability summaries, and private downloads of accessible unencrypted PDFs.7MIT