# goblingains (remote · api.goblingains.com)

Conditioning workouts from a coached library: suggest, vary or invent one for your kit and time.

- Trust score: 72/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.goblingains.com`: 72/100 (this document), [markdown](https://verifymcp.io/servers/com-goblingains-workouts/api.md), [page](https://verifymcp.io/servers/com-goblingains-workouts/api)

## Channel facts

- Endpoint: `https://api.goblingains.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 55/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2887 tokens (~412/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the goblingains MCP server?

goblingains is a hosted endpoint at https://api.goblingains.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-goblingains-workouts 'https://api.goblingains.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-goblingains-workouts": {
      "url": "https://api.goblingains.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-goblingains-workouts": {
      "type": "http",
      "url": "https://api.goblingains.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-goblingains-workouts]
url = "https://api.goblingains.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-goblingains-workouts": {
      "type": "remote",
      "url": "https://api.goblingains.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-goblingains-workouts --url 'https://api.goblingains.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-goblingains-workouts:
    url: "https://api.goblingains.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-goblingains-workouts": {
      "Transport": "http",
      "Url": "https://api.goblingains.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-goblingains-workouts -t streamable-http -u 'https://api.goblingains.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-goblingains-workouts": {
      "type": "http",
      "url": "https://api.goblingains.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 70, 0)

- [security] Tool “report_workout” rewrote its description, which is the text the model reads
- [functional improvement] Stability: unverified → 0.03
- [functional] Destructive annotations: 100 → pass
- [cosmetic] Tool “find_movements” changed its title: Find movements
- [cosmetic] Tool “generate_workouts” changed its title: Generate new workouts
- [cosmetic] Tool “list_archetypes” changed its title: List workout types
- [cosmetic] Tool “list_equipment” changed its title: List equipment
- [cosmetic] Tool “report_workout” changed its title: Report a workout
- [cosmetic] Tool “suggest_workouts” changed its title: Suggest workouts
- [cosmetic] Tool “vary_workout” changed its title: Vary a workout

### 2026-11-01 (score 70)

First indexed and scored.

## MCP tools (7)

### `list_archetypes` (~71 tokens)

List workout types

The workout archetypes the generator makes, one per line: key, name,
    formats, minutes, line count, and the session slots it serves.

Input parameters:

- `style`: Keep only one style's archetypes: crossfit, hyrox or hybrid; all when omitted. Example: "hyrox".

Output parameters:

- `result` (string)

### `list_equipment` (~68 tokens)

List equipment

The equipment suggest_workouts' `equipment` takes, one per line:
    key: name, with "(machine)" on ergometers (rower, ski erg, bikes).
    Keys, names and common names ("echo", "row erg", "DB", "kb") all work.

Output parameters:

- `result` (string)

### `find_movements` (~111 tokens)

Find movements

Movement slugs whose name holds `query` (e.g. "row", "sled"), for
    suggest_workouts' include and exclude, machines and runs first.

Input parameters:

- `kind`: Keep one movement kind only, one of strength, olympic, plyo, cyclic, carry, mobility (cyclic: row, ski, bike, run); all when omitted. Example: "cyclic".
- `query` (string, required): Text the movement name holds, any case. Example: "sled".

Output parameters:

- `result` (string)

### `suggest_workouts` (~903 tokens)

Suggest workouts

New workouts from our generator, as text. Ask this instead of writing
    workouts yourself. Nothing is saved.

    Example, two people with an echo bike, rower and ski erg, 40-60 min:
    suggest_workouts(count=5, people=2, minutes_min=40, minutes_max=60,
    equipment=["echo-bike", "row-ergometer", "ski-erg"], bodyweight=False)

    A shortfall says what blocked it.

Input parameters:

- `archetype`: A key or name from list_archetypes; any when omitted. Example: "A5" or "chipper".
- `bodyweight` (boolean): False also leaves out movements needing no equipment (burpees, runs), so only the listed equipment is used. Example: false.
- `cap_minutes`: A time cap the workout must fit, in whole minutes. Example: 30.
- `count` (integer): How many workouts, at most 5; from 3 on, a mix of archetypes (at most 2 of one unless nothing else fits). Example: 3.
- `equipment`: What the athletes have, as list_equipment keys or names ("echo-bike" or "echo", "row erg", "ski erg"), one item per entry. Say "1 dumbbell" or "1 kettlebell" when there is only one: movements needing…
- `exclude`: Movement slugs or names (from find_movements) every workout must leave out. Example: ["burpees"].
- `include`: Movement slugs or names (from find_movements) every workout must hold. Example: ["wallballs", "sled-push"].
- `minutes_max`: Longest estimated workout length, in minutes. Example: 60.
- `minutes_min`: Shortest estimated workout length, in minutes. Example: 40.
- `only` (boolean): True: the workouts hold the included movements and nothing else (each may repeat). Needs include. Example: true.
- `partner`: True: only partner workouts (two people share the work: turns at a station, or each on a station at once, then swap). False: none. Omitted: either. Example: true.
- `people` (integer): How many train together with one of each machine. Above 1, only workouts they can share come back: partner workouts (taking turns on a station), or EMOMs/intervals with a different machine on every l…
- `sex`: Who trains, for the weights and machine doses: "men", "women", or "mixed" (a man and a woman together: each at their own; Hyrox stations at the mixed doubles race load). Omitted when the user did not…
- `show_scores` (boolean): True adds a line of scores under each workout: feasibility (0-100, can it be done as written), difficulty (0-100, the chance of not finishing inside the cap), and against the workout it was made from…
- `temperature` (number): 0 to 1. 0: the same ask always brings the same workouts. Above 0: other ones each call, the higher the further from the library workouts they vary (0.3 close variations, 1 far ones). Example: 0.3.

Output parameters:

- `result` (string)

### `vary_workout` (~681 tokens)

Vary a workout

Variations of one library workout from our generator (no AI), as
    text, in its own format or another. Nothing is saved.

    A shortfall says what blocked it.

Input parameters:

- `bodyweight` (boolean): False also leaves out movements needing no equipment (burpees, runs), so only the listed equipment is used. Example: false.
- `count` (integer): How many variations, at most 5. Example: 3.
- `equipment`: What the athletes have, as list_equipment keys or names ("echo-bike" or "echo", "row erg", "ski erg"), one item per entry. Say "1 dumbbell" or "1 kettlebell" when there is only one: movements needing…
- `format`: Turn it into this format first: for_time, amrap, emom, intervals. About its minutes: an EMOM gives each line its own minute when a round is over 40 s, intervals rest as long as a round's work. Omitte…
- `name` (string, required): The library workout's name or part of it, any case; several matches are an error listing them (up to 10) to ask again. Example: "Fran".
- `people` (integer): How many train together with one of each machine. Above 1, only workouts they can share come back: partner workouts (taking turns on a station), or EMOMs/intervals with a different machine on every l…
- `sex`: Who trains, for the weights and machine doses: "men", "women", or "mixed" (a man and a woman together: each at their own; Hyrox stations at the mixed doubles race load). Omitted when the user did not…
- `show_scores` (boolean): True adds a line of scores under each workout: feasibility (0-100, can it be done as written), difficulty (0-100, the chance of not finishing inside the cap), and against the workout it was made from…
- `temperature` (number): 0 to 1, how far they stray from it (0.2 close, 1 far). Example: 0.5.

Output parameters:

- `result` (string)

### `generate_workouts` (~642 tokens)

Generate new workouts

New workouts unlike any in the library, from our generator (no AI),
    as text: evolved from the library's workouts and movements (more lines,
    fewer, other formats) into kinds it does not hold. For one person.
    Nothing is saved; other ones each call. suggest_workouts and
    vary_workout stay close to library workouts instead.

    A shortfall says what blocked it.

Input parameters:

- `bodyweight` (boolean): False also leaves out movements needing no equipment (burpees, runs), so only the listed equipment is used. Example: false.
- `count` (integer): How many workouts, at most 5. Example: 3.
- `equipment`: What the athletes have, as list_equipment keys or names ("echo-bike" or "echo", "row erg", "ski erg"), one item per entry. Say "1 dumbbell" or "1 kettlebell" when there is only one: movements needing…
- `exclude`: Movement slugs or names (from find_movements) every workout must leave out. Example: ["burpees"].
- `format`: Only this format: for_time, amrap, emom, intervals. Any when omitted. Example: "amrap".
- `include`: Movement slugs or names (from find_movements) every workout must hold; fewer come back the more are named. Example: ["wallballs"].
- `minutes_max`: Longest estimated workout length, in minutes. Example: 25.
- `minutes_min`: Shortest estimated workout length, in minutes. Example: 10.
- `sex`: Who trains, for the weights and machine doses: "men", "women", or "mixed" (a man and a woman together: each at their own; Hyrox stations at the mixed doubles race load). Omitted when the user did not…
- `show_scores` (boolean): True adds a line of scores under each workout: feasibility (0-100, can it be done as written), difficulty (0-100, the chance of not finishing inside the cap), and against the workout it was made from…

Output parameters:

- `result` (string)

### `report_workout` (~194 tokens)

Report a workout

A user's verdict on a workout from these tools: a mistake (wrong
    equipment, a weight, a dose that cannot fit), or a workout they found bad
    or good. Stores the user's words for Goblin Gains, nothing else about the
    user.

Input parameters:

- `note` (string, required): What the user said about the workout, in their words. Example: "Farmers carry needs two dumbbells; I said I have one."
- `verdict` (string, required): One of mistake, bad, good: "mistake" (something in it is wrong), "bad" (it works but is a poor workout), "good". Example: "mistake".
- `workout`: The workout's save link from suggest_workouts, vary_workout or generate_workouts, or its id; omitted for the tools as a whole. Example: "https://app.goblingains.com/w/<id>".

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-goblingains-workouts/api#diagnostics

## Score history

- 2026-11-05: 72
- 2026-11-04: 71
- 2026-11-03: 71
- 2026-11-02: 70
- 2026-11-01: 70

## Common questions

### What is the goblingains MCP server?

goblingains is an MCP server listed in the public MCP registry as com.goblingains/workouts. Conditioning workouts from a coached library: suggest, vary or invent one for your kit and time. This page covers its hosted endpoint (https://api.goblingains.com/mcp).

### Is the goblingains MCP server safe to use?

goblingains scores 72 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the goblingains MCP server expose?

goblingains exposes 7 tools: list_archetypes, list_equipment, find_movements, suggest_workouts, vary_workout, and 2 more. Their descriptions and schemas cost roughly 2,670 tokens of context every time the server is loaded.

### Does the goblingains MCP server require authentication?

No. We connected to goblingains without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the goblingains MCP server still maintained?

goblingains is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.goblingains.com/mcp
- Website: https://goblingains.com/ai
- Changelog RSS feed: https://verifymcp.io/servers/com-goblingains-workouts/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-goblingains-workouts/api.json
- HTML version of this page: https://verifymcp.io/servers/com-goblingains-workouts/api
