Skip to main content
Glama
aaronarnold2

concept2-mcp-server

by aaronarnold2

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CONCEPT2_ACCESS_TOKENYesOAuth2 bearer token from Concept2

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
concept2_get_userA

Retrieve a Concept2 Logbook user's profile information.

Use "me" as the user ID to get the authenticated user's own profile.

Returns user details including: id, username, first_name, last_name, gender, dob, age, weight, location, country, weight_class, max_heart_rate, affiliations, roles.

Args:

  • user_id: User ID (integer) or "me" for the authenticated user (default: "me")

  • response_format: 'markdown' or 'json' (default: 'markdown')

Examples:

  • Get own profile: user_id="me"

  • Get another user: user_id=12345

concept2_update_userA

Update the authenticated user's Concept2 Logbook profile.

Only the authenticated user's own profile can be updated (user_id must be "me" or the authenticated user's ID).

Updatable fields: first_name, last_name, gender, dob, weight, location, country, weight_class, max_heart_rate.

Args:

  • user_id: User ID or "me" (default: "me")

  • first_name, last_name: Name fields (optional)

  • gender: 'M' or 'F' (optional)

  • dob: Date of birth in YYYY-MM-DD format (optional)

  • weight: Weight in kg (optional)

  • location: City/location string (optional)

  • country: Country code (optional)

  • weight_class: 'H' (heavyweight) or 'L' (lightweight) (optional)

  • max_heart_rate: Maximum heart rate in bpm (optional)

Returns the updated user profile.

concept2_list_resultsA

List workout results (rows/ergs) for a Concept2 Logbook user with pagination and filtering.

Returns a paginated list of workout results. Each result includes: id, date, type, distance, time, time_formatted, workout_type, weight_class, stroke_rate, avg_pace, heart_rate, calories, comments.

Args:

  • user_id: User ID or "me" (default: "me")

  • page: Page number (default: 1)

  • per_page: Results per page (default: 50, max: 250)

  • type: Filter by machine type ('rower', 'skierg', 'bikeerg')

  • from: Filter results from this date (YYYY-MM-DD)

  • to: Filter results to this date (YYYY-MM-DD)

  • response_format: 'markdown' or 'json' (default: 'markdown')

Returns pagination metadata: total, count, per_page, current_page, total_pages.

Examples:

  • List all results: user_id="me"

  • List only rowing: user_id="me", type="rower"

  • List results in date range: from="2024-01-01", to="2024-12-31"

concept2_get_resultA

Retrieve a single workout result by ID from the Concept2 Logbook.

Returns full details of a workout including: id, date, type, distance, time, workout_type, weight_class, stroke_rate, heart_rate, calories_total, drag_factor, comments, privacy, split_data, and whether stroke data is available.

Args:

  • user_id: User ID or "me" (default: "me")

  • result_id: The workout result ID (integer, required)

  • response_format: 'markdown' or 'json' (default: 'markdown')

concept2_create_resultA

Log a new workout result to the Concept2 Logbook.

Required fields: type, date, distance, time, weight_class. Optional: timezone, workout_type, stroke_rate, heart_rate, calories_total, drag_factor, comments, privacy.

Args:

  • user_id: User ID or "me" (default: "me")

  • type: Machine type — 'rower', 'skierg', or 'bikeerg' (required)

  • date: Workout date in YYYY-MM-DD format (required)

  • distance: Distance in meters (required)

  • time: Time in tenths of a second (e.g., 3600 = 6:00.0) (required)

  • weight_class: 'H' (heavyweight) or 'L' (lightweight) (required)

  • timezone: Timezone string (e.g., 'America/New_York') (optional)

  • workout_type: Type of workout (e.g., 'JustRow', 'FixedTimeSplit', 'Intervals') (optional)

  • stroke_rate: Average stroke rate in spm (optional)

  • heart_rate_avg/min/max: Heart rate values in bpm (optional)

  • calories_total: Total calories burned (optional)

  • drag_factor: Machine drag factor (optional)

  • comments: Notes about the workout (optional)

  • privacy: 'private', 'friends', or 'public' (optional)

Returns the created result with its assigned ID.

concept2_create_results_bulkA

Log multiple workout results to the Concept2 Logbook in a single request.

Each result in the array must include the same required fields as concept2_create_result: type, date, distance, time, weight_class.

Args:

  • user_id: User ID or "me" (default: "me")

  • results: Array of workout objects, each with required fields:

    • type: 'rower', 'skierg', or 'bikeerg'

    • date: YYYY-MM-DD

    • distance: meters (number)

    • time: tenths of a second (integer)

    • weight_class: 'H' or 'L' Optional per result: timezone, workout_type, stroke_rate, heart_rate, calories_total, drag_factor, comments, privacy.

  • response_format: 'markdown' or 'json'

Returns the created results with their assigned IDs.

concept2_update_resultA

Update an existing workout result in the Concept2 Logbook.

Only the result's owner can update it. Provide only the fields you want to change. Updatable fields: date, distance, time, workout_type, stroke_rate, heart_rate, calories_total, drag_factor, comments, privacy, weight_class.

Args:

  • user_id: User ID or "me" (default: "me")

  • result_id: The workout result ID to update (required)

  • (Any updatable fields — only provided fields will be changed)

  • response_format: 'markdown' or 'json'

concept2_get_result_strokesA

Retrieve per-stroke data for a specific workout result from the Concept2 Logbook.

Stroke data is only available if the workout was recorded with stroke tracking enabled (check the 'stroke_data' field on the result). Returns an array of stroke objects with per-stroke metrics.

Each stroke object may include: ts (timestamp), d (distance), p (pace in ms/500m), spm (stroke rate), hr (heart rate).

Args:

  • user_id: User ID or "me" (default: "me")

  • result_id: The workout result ID (required)

  • response_format: 'markdown' or 'json' (default: 'json' — stroke data is typically large)

concept2_export_resultA

Export a workout result in a specific format from the Concept2 Logbook.

Available export types vary by workout but typically include: 'tcx', 'fit', 'csv'.

Args:

  • user_id: User ID or "me" (default: "me")

  • result_id: The workout result ID (required)

  • export_type: Export format — 'tcx', 'fit', or 'csv' (required)

Returns the raw export file content as text.

concept2_list_challengesA

List all available Concept2 challenges (all time).

Returns a list of challenges including: id, name, type, status, start_date, end_date, distance, time, description.

Args:

  • response_format: 'markdown' or 'json' (default: 'markdown')

concept2_get_current_challengesA

Retrieve currently active Concept2 challenges.

Returns challenges that are currently running, including their details: id, name, type, start_date, end_date, distance, time, description.

Args:

  • response_format: 'markdown' or 'json' (default: 'markdown')

concept2_get_upcoming_challengesA

Retrieve upcoming Concept2 challenges starting within a given number of days.

Args:

  • days: Number of days ahead to look for upcoming challenges (default: 30, max: 365)

  • response_format: 'markdown' or 'json' (default: 'markdown')

concept2_get_season_challengesA

Retrieve Concept2 challenges for a specific season/year.

Args:

  • year: The season year (e.g., 2024) (required)

  • response_format: 'markdown' or 'json' (default: 'markdown')

concept2_get_event_challengesB

Retrieve Concept2 event challenges for a specific year.

Event challenges are typically tied to specific Concept2 events and competitions.

Args:

  • year: The year to retrieve event challenges for (e.g., 2024) (required)

  • response_format: 'markdown' or 'json' (default: 'markdown')

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aaronarnold2/concept2-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server