spark-mcp
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., "@spark-mcpWhat classes are available this Saturday?"
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.

spark-mcp
MCP server for the Spark Membership platform — a CRM used by hundreds of martial arts studios. Manage class scheduling, bookings, attendance, and more through any MCP client (e.g. Claude Code).
Built by reverse-engineering the Spark Membership mobile app API.
Quick Start (Docker)
Docker is the preferred way to run spark-mcp — no Python install needed.
1. Pull the image:
docker pull ghcr.io/aserper/spark-mcp:latest2. Add to your Claude Code config (.mcp.json in your project root or ~/.claude/settings.json):
{
"mcpServers": {
"spark": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "SPARK_EMAIL", "-e", "SPARK_PASSWORD", "-e", "SPARK_LOCATION_ID",
"ghcr.io/aserper/spark-mcp"],
"env": {
"SPARK_EMAIL": "your-email@example.com",
"SPARK_PASSWORD": "your-password",
"SPARK_LOCATION_ID": "1234"
}
}
}
}3. Restart Claude Code and start asking about your classes.
Related MCP server: aidoo-mcp-server
Finding your Location ID
Every studio on Spark Membership has a numeric location ID. Use the included find_location.py script to look it up.
Search by state code:
# Docker
docker run --rm --entrypoint python ghcr.io/aserper/spark-mcp find_location.py MA
# Local
python find_location.py MASearch by studio name:
# Docker
docker run --rm --entrypoint python ghcr.io/aserper/spark-mcp find_location.py "jiu jitsu"
# Local
python find_location.py natickInteractive mode (lists countries, states, then locations):
# Docker
docker run --rm -it --entrypoint python ghcr.io/aserper/spark-mcp find_location.py
# Local
python find_location.pyExample output:
ID Name
-- ----
1588 Metrowest Academy of Jiu Jitsu (Natick)
6218 Villaris Martial Arts of Natick (Natick)Use the ID value as your SPARK_LOCATION_ID.
Tools
Tool | Description |
| Authenticate with email, password, and location ID |
| List available classes for a given date |
| List classes you're currently enrolled in |
| Book a class by roster ID and date |
| Cancel a class reservation |
| Join the waitlist for a full class |
| List classes you're on the waitlist for |
| Check in to a class |
| Get the studio dashboard overview |
| View attendance history |
| Get studio announcements |
| Get membership status |
Usage Examples
Once configured, you can ask Claude things like:
"What classes are available this Saturday?"
"Book me into the 9am Ninjas class on March 21"
"What am I signed up for?"
"Cancel my Saturday booking"
"Show my attendance history"
"Any new announcements from the studio?"
Alternative: Local Install
If you prefer not to use Docker:
git clone https://github.com/aserper/spark-mcp.git
cd spark-mcp
uv venv && source .venv/bin/activate
uv pip install -e .Then configure Claude Code with:
{
"mcpServers": {
"spark": {
"type": "stdio",
"command": "/path/to/spark-mcp/.venv/bin/python",
"args": ["-m", "spark_mcp"],
"env": {
"SPARK_EMAIL": "your-email@example.com",
"SPARK_PASSWORD": "your-password",
"SPARK_LOCATION_ID": "1234"
}
}
}
}Authentication
Credentials can be provided in three ways:
Environment variables (recommended) — set
SPARK_EMAIL,SPARK_PASSWORD, andSPARK_LOCATION_IDin your MCP config. The server auto-authenticates on first tool call.logintool — call it manually at runtime without any env vars.Mix — set email/password in env vars and use
loginto switch locations.
Tokens are automatically refreshed when they expire.
API Reference
All endpoints hit https://mobileapi.sparkmembership.com/api/student/. Auth uses Bearer tokens with automatic refresh. See api-discovery.md for the full endpoint reference.
OpenClaw / Claude Code Skill (Optional)
For a higher-level, natural language interface, install the spark skill:
# Via mcporter
mcporter config import spark ./openclaw-skill/SKILL.md
# Or manually copy to your OpenClaw skills directory
cp -r openclaw-skill ~/.openclaw/skills/sparkThen use natural language commands:
spark who # Discover family members
spark book hailey thursday # Book Hailey for next Thursday
spark bulk "ily saturdays 4 weeks" # Bulk book Saturdays
spark my-classes # Show current bookingsSee openclaw-skill/SKILL.md for full documentation.
Requirements
Docker (preferred), or Python 3.11+
A Spark Membership account (through your studio's app)
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Zooza — class scheduling, attendance, and booking for activity businesses.
MCP server for lacita - appointment management software
MCP server providing attendance data queries via the CloudTime API.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for Mindbody, enabling AI agents to fetch client info, query class schedules, book classes/appointments (env-gated), and process checkout (payment-gated).5MIT
- FlicenseBqualityDmaintenanceMCP server for Aidoo fitness studio management software, enabling access to members, contracts, classes, bookings, and more directly from Claude.25-
- FlicenseBqualityDmaintenanceMCP server for interacting with the Eventin booking system, enabling natural language management of bookings, events, and venues.2-
- FlicenseBqualityDmaintenanceMCP server for integrating with the EVO gym management API, enabling access control, member management, activity scheduling, sales, and workout management through natural language.12-