Metadata-Version: 2.3
Name: moostack-mcp
Version: 0.1.0
Summary: MCP server for MooStack. Manage your studio conversationally via Claude
Author: Kaushik LS
Author-email: Kaushik LS <50703773+thekaushikls@users.noreply.github.com>
License: MIT
Classifier: License :: OSI Approved :: MIT License
Requires-Dist: click>=8.5.0
Requires-Dist: fastmcp>=4.0.5
Requires-Dist: httpx>=0.28.1
Requires-Dist: typing-extensions>=4.12.0
Requires-Python: >=3.11
Project-URL: Repository, https://github.com/thekaushikls/moostack-mcp
Description-Content-Type: text/markdown

# moostack-mcp

An MCP server that lets a MooStack studio owner manage their studio conversationally through Claude Desktop or Claude Code — no dashboard required.

It's a thin client: every tool call is proxied to your studio's MooStack backend over HTTPS.

## Requirements

- Python 3.11+
- A MooStack account (email + password) that owns or belongs to at least one studio

## Install

With [uv](https://docs.astral.sh/uv/) (recommended):

```sh
uv tool install git+https://github.com/thekaushikls/moostack-mcp
```

Or with pip:

```sh
pip install git+https://github.com/thekaushikls/moostack-mcp
```

## Set up

```sh
moostack-mcp setup
```

This will:
1. Ask for your MooStack email, password, and backend URL (press Enter to accept the default).
2. Validate the credentials against the backend.
3. Save them to `~/.moostack/config.json` (created with `0600` permissions — readable only by you).
4. Offer to auto-configure Claude Desktop by adding this server to `claude_desktop_config.json`.

Restart Claude Desktop afterwards and it will pick up the new server.

### Manual Claude Desktop setup

If you skip auto-configure, or you're on an OS it doesn't recognize, add this to your `claude_desktop_config.json` yourself (merge it into the `mcpServers` object if one already exists):

```json
{
  "mcpServers": {
    "moostack": {
      "command": "moostack-mcp",
      "args": ["serve"]
    }
  }
}
```

Config file locations:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`

## What you can do with it

**Your account & studios**
- `list_my_studios` — the studios you own or belong to, and your role in each
- `get_my_profile` / `update_my_profile` — view or edit your account details
- `list_members` — your studio's member roster

**Classes & pricing**
- `list_offerings` — every class you've set up, with its pricing tiers
- `create_offering` / `update_offering` / `delete_offering` — create a class with pricing in one step, edit it, or remove it

**Sessions & attendance**
- `list_sessions` — occurrences of a class, past and upcoming
- `create_session` — add a one-off extra session
- `view_attendance` — see who's booked into a session
- `mark_attendance` — mark students present/absent

**Student enrollments**
- `grant_sessions` — add bonus sessions to a student's enrollment
- `adjust_enrollment` — manually change a student's session count or expiry
- `override_attendance` — correct a single attendance record after the fact

**Zoom**
- `get_zoom_status` / `disconnect_zoom` — check or disconnect your studio's linked Zoom account (connecting Zoom itself is done from the MooStack web app, since it requires a browser OAuth flow)

## Run it manually

```sh
moostack-mcp serve
```

Runs the server over stdio — this is what Claude Desktop launches automatically once configured; you shouldn't normally need to run it yourself.

## License

MIT — see [LICENSE](LICENSE).
