Halo LMS MCP Server
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., "@Halo LMS MCP Serverlist my current classes"
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.
Halo LMS MCP Server
MCP server that exposes Grand Canyon University's Halo LMS APIs as tools for AI agents. Provides access to classes, grades, discussions, announcements, inbox messages, notifications, assignment submissions, and user profiles.
Setup
1. Install dependencies
cd HaloMCP
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt2. Configure tokens
Copy the example config and fill in your tokens:
cp config.example.json config.jsonEdit config.json with your Halo auth and context tokens (without the Bearer prefix — it's added automatically):
{
"authToken": "eyJ...",
"contextToken": "eyJ...",
"transactionId": "tenant-uuid-user-uuid"
}Alternatively, set environment variables (these override config.json):
export HALO_AUTH_TOKEN="eyJ..."
export HALO_CONTEXT_TOKEN="eyJ..."
export HALO_TRANSACTION_ID="..."Related MCP server: Moodle MCP Server
Running
Claude Code (stdio)
Add to your Claude Code MCP config (~/.claude/settings.json or project .mcp.json):
{
"mcpServers": {
"halo-lms": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/HaloMCP"
}
}
}Direct (stdio)
python server.pyDocker (Streamable HTTP on port 8000)
docker compose up -dThen add it to Claude Code CLI:
claude mcp add --transport http halo-lms http://localhost:8000/mcpThe Docker container bind-mounts config.json (writable, so token refresh can persist new tokens) and your home directory (read-only) from the host, so file uploads via file_path work the same as stdio mode.
Note: Previous versions used SSE transport (
/sseendpoint). Streamable HTTP (/mcpendpoint) is the current MCP standard and is recommended for all new deployments.
Token Refresh
Halo tokens expire periodically, but the server handles this automatically:
One-time setup
After configuring config.json with your tokens, call the setup_session tool. This creates a long-lived session (~30 days) that enables automatic token refresh.
setup_session → "Session created, expires 2026-03-24T..."How it works
setup_sessioncalls Halo's next-auth API to create a session from your tokensThe session cookie is stored in
config.jsonWhen tokens expire during any API call, the server automatically:
Uses the session cookie to fetch fresh tokens
Saves the new tokens to
config.jsonRetries the failed request
This is completely transparent — no user intervention needed
When the session expires (~30 days)
Get fresh tokens from your browser (DevTools → Network/Cookies)
Update
config.jsonwith the newauthTokenandcontextTokenCall
setup_sessionagain
Manual token management
check_tokens— verify current tokens are validreload_tokens— hot-reload tokens from config.jsonrefresh— manually trigger a session-based token refreshsetup_session— create/renew the long-lived session
Available Tools
Tool | Description |
| List all enrolled course classes (call first to populate cache) |
| View assignments organized by unit for a class |
| Get grade overview for a class |
| List discussion forums for a class |
| Get posts from a discussion forum |
| Get announcements for a class |
| List all inbox threads |
| Get messages from an inbox thread |
| Send a message in an inbox thread |
| Get unread notification counts |
| Get user profile by ID |
| Upload a file to an assignment (absolute file path) |
| Submit an assignment for grading |
| Validate current auth tokens are working |
| Hot-reload tokens from config.json without restarting |
| Create a ~30-day session for automatic token refresh |
| Manually refresh tokens using the session cookie |
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseBqualityDmaintenanceAn MCP server that enables AI agents to authenticate with and interact with Open eClass platform instances, supporting UoA's SSO authentication system for retrieving course information and performing basic platform operations.48-
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.72 npmMIT
- AlicenseBqualityAmaintenanceMCP server for Canvas LMS, providing 115+ tools to read courses, assignments, submissions, rubrics, quizzes; grade, comment, manage course content, and handle Canvas admin workflows from any AI agent.163686 npm6MIT
- AlicenseAqualityBmaintenanceMCP server that connects AI assistants to Instructure Canvas LMS, enabling teachers and administrators to manage courses, assignments, grades, and more through natural language.8021 npm1MIT