loopclub-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Listen port. | 8787 |
| MCP_RATE_MAX | No | Coarse per-IP rate limit max requests (Cloudflare is primary). | 120 |
| MCP_BIND_HOST | No | Bind address — keep on localhost behind a proxy. | 127.0.0.1 |
| LOOPCLUB_ORIGIN | No | Origin baked into emitted ?jam= links. | https://app.loopclub.xyz |
| MCP_ALLOWED_HOSTS | No | Host-header allowlist (DNS-rebind defense). | mcp.loopclub.xyz,localhost,127.0.0.1 |
| MCP_MAX_BODY_BYTES | No | Request body cap. | 65536 |
| MCP_RATE_WINDOW_MS | No | Coarse per-IP rate limit window in milliseconds. | 60000 |
| MCP_ALLOWED_ORIGINS | No | Origin allowlist (absent Origin = allowed; foreign = 403). | https://app.loopclub.xyz,https://loopclub.xyz |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| build_loopA | Turn a described beat into a loopclub link. Returns a ?jam= deep link, an ASCII grid preview, the lit-cell count, and the instruments used. The user opens the link to audition the loop free and rent the cells in-app. Read loopclub://vocabulary and loopclub://genres first for idiomatic loops. |
| describe_loopA | Read a loop back: pass a ?jam= link (or raw pattern/synthData bigints) and get a human-readable, per-track summary plus the ASCII grid. Use it to inspect a loop a user pasted, or to verify what you just built. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| jam | Kick off a loopclub jam: generate an idiomatic, in-key loop and return the link. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| vocabulary | The grid rules: 16 steps, 9 tracks, the synth row, pitch range, and how to be musical. |
| genres | Worked example loops (house, techno, boom-bap, dnb) as ASCII + spec, for few-shot grounding. |
| how-it-works | The link → audition → rent lifecycle. Auditioning is free; pressing cells costs USDm. |
TDQS
Scored across 2 tools
build_loop creates a loop from a described beat, while describe_loop reads an existing loop back. The two operations are exact opposites with no overlapping purpose, making misselection very unlikely.
Both names follow a strict snake_case verb_noun pattern and share the same noun stem (loop). This is highly predictable and consistent.
Two tools is thin for a loop-building service, even if create/read are the core operations. It sits at the borderline of feeling under-scoped rather than clearly appropriate.
The server covers the main lifecycle of constructing a loop and inspecting it, which matches the stated purpose of generating and verifying ?jam= links. Minor gaps like updating, deleting, or listing loops are not present, but loops may be treated as immutable links.