CSG Portal MCP Server

CSG Portal MCP Server

Enables access to Columbus School for Girls Veracross portal features including directory search for students/parents/staff, calendar events, and Lower School lunch volunteer scheduling through secure browser authentication.

Category
访问服务器

README

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)

Installation

For Claude Desktop Users

  1. Install the MCP server globally:
npm install -g @bradgriffith/csg-portal-mcp
  1. Add 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"]
    }
  }
}
  1. 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.

  1. 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
  2. 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:

  1. Local Development: Install MongoDB locally
  2. 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, gradeLevel
  • Grade 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 start

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Troubleshooting

Common Issues

"No user email provided"

  • Use set_default_user tool first, or provide userEmail parameter

"Browser authentication required"

  • Use authenticate_browser tool to log in via your browser

"Calendar search failed"

  • Check your authentication status with check_authentication
  • Try the refresh: true parameter 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

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 🏫

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选