opl_lifter_history

Pack: openpowerlifting · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/opl_lifter_history for the schema, then POST the same URL with its arguments for the data.

Meet-by-meet results and career bests for one powerlifter.

Tool description as the model sees it

Competition history of one powerlifter from the OpenPowerlifting results database: every meet entered (most recent first) with federation, event, equipment, division, bodyweight and weight class, best squat/bench/deadlift, total, place and Dots/Wilks/Goodlift points, plus career bests. Pass name as shown in results (e.g. “Ray Williams”; case-insensitive, exact name). Lifters who share a name are disambiguated in the data as “Name #1”, “Name #2”: a name that matches several lifters returns their candidates (name, country, entry count, years, best total) instead of mixing them — pass the exact “Name #N”. equipment (Raw, Wraps, Single-ply, Multi-ply, Unlimited, Straps) narrows the history and the bests. Rows page with limit/offset and report truncated/total_matching. An unknown name returns found:false with data_as_of, never an empty list. Weights are in kilograms.

Parameters

NameTypeRequiredDescription
namestringyesLifter name as in results, e.g. “Ray Williams” or “John Smith #2”.
equipmentstringnoOnly entries in this equipment category.
limitnumbernoEntries per page, 1-200 (default 50).
offsetnumbernoEntries to skip (default 0).

Example call

Arguments

{
  "name": "Ed Coan",
  "limit": 5
}

curl

curl -X POST https://gateway.pipeworx.io/openpowerlifting/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"opl_lifter_history","arguments":{"name":"Ed Coan","limit":5}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('opl_lifter_history', {
  "name": "Ed Coan",
  "limit": 5
});

Response shape

FieldTypeDescription
foundboolean
lifterstring
sexstring
countrystring
careerobject
total_matchingnumber
returnednumber
truncatedboolean
hintstring
resultsarray
sourcestring
licencestring
data_as_ofstring
latest_meet_datestring
copy_refreshed_atstring
Full JSON Schema
{
  "type": "object",
  "properties": {
    "found": {
      "type": "boolean"
    },
    "lifter": {
      "type": "string"
    },
    "sex": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "career": {
      "type": "object",
      "properties": {
        "meets": {
          "type": "number"
        },
        "first_meet": {
          "type": "string"
        },
        "last_meet": {
          "type": "string"
        },
        "federations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "best_squat_kg": {
          "type": "number"
        },
        "best_bench_kg": {
          "type": "number"
        },
        "best_deadlift_kg": {
          "type": "number"
        },
        "best_total_kg": {
          "type": "number"
        },
        "best_dots": {
          "type": "number"
        }
      },
      "additionalProperties": true
    },
    "total_matching": {
      "type": "number"
    },
    "returned": {
      "type": "number"
    },
    "truncated": {
      "type": "boolean"
    },
    "hint": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "meet_id": {
            "type": "number"
          },
          "date": {
            "type": "string"
          },
          "meet": {
            "type": "string"
          },
          "federation": {
            "type": "string"
          },
          "sex": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "equipment": {
            "type": "string"
          },
          "division": {
            "type": "string"
          },
          "age": {
            "type": "number"
          },
          "age_class": {
            "type": "string"
          },
          "bodyweight_kg": {
            "type": "number"
          },
          "weight_class": {
            "type": "string"
          },
          "squat_kg": {
            "type": "number"
          },
          "bench_kg": {
            "type": [
              "null",
              "number"
            ]
          },
          "deadlift_kg": {
            "type": [
              "null",
              "number"
            ]
          },
          "total_kg": {
            "type": "number"
          },
          "place": {
            "type": "string"
          },
          "dots": {
            "type": "number"
          },
          "wilks": {
            "type": "number"
          },
          "goodlift": {
            "type": [
              "null",
              "number"
            ]
          },
          "tested": {
            "type": "boolean"
          }
        },
        "additionalProperties": true
      }
    },
    "source": {
      "type": "string"
    },
    "licence": {
      "type": "string"
    },
    "data_as_of": {
      "type": "string"
    },
    "latest_meet_date": {
      "type": "string"
    },
    "copy_refreshed_at": {
      "type": "string"
    }
  },
  "additionalProperties": true
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the openpowerlifting pack
{
  "mcpServers": {
    "openpowerlifting": {
      "url": "https://gateway.pipeworx.io/openpowerlifting/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 22, 2026