Skip to main content
Glama
maangy

WHOOP MCP Server

by maangy

WHOOP MCP Server

A Model Context Protocol server that gives Claude access to your WHOOP health data via the WHOOP Developer API (API v2).

Tools

Tool

Description

authenticate

Start the OAuth 2.0 flow — call this once to connect your WHOOP account

get_recovery

Latest recovery score, HRV, resting heart rate, SpO2, skin temperature

get_sleep

Sleep duration, efficiency, stage breakdown, disturbances, respiratory rate

get_workouts

Recent workouts with strain, sport type, HR zones, calories

get_cycles

Physiological cycles (days) with strain and recovery summary

get_body_measurements

Height, weight, and max heart rate

get_profile

Basic profile (name, email)

Parameters: the data tools (get_recovery, get_sleep, get_workouts, get_cycles) accept optional filters:

  • limit — number of records to return (default 1 for recovery/sleep, 5 for workouts/cycles; max 25)

  • start_date / end_date — ISO 8601 timestamps, e.g. 2024-01-01T00:00:00.000Z

  • include_napsget_sleep only; include nap records (default false)

get_body_measurements and get_profile take no parameters.

Related MCP server: Whoop MCP Server

Prerequisites

  • Node.js 18 or later

  • A WHOOP Developer account and OAuth app

Setup

1. Create a WHOOP Developer App

  1. Go to https://developer.whoop.com/ and sign in.

  2. Create a new application.

  3. Add http://localhost:8080/callback as a Redirect URI (or use a custom port — just keep it consistent with WHOOP_REDIRECT_URI).

  4. Enable the following scopes on the app — the server requests all of them, and data tools will return empty or fail if any are missing:

    • offline (required — grants the refresh token so you only authenticate once)

    • read:recovery

    • read:sleep

    • read:workout

    • read:cycles

    • read:body_measurement

    • read:profile

  5. Copy your Client ID and Client Secret.

2. Install and build

git clone <this-repo>
cd whoop-mcp
npm install
npm run build

3. Configure environment variables

cp .env.example .env

Edit .env:

WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here
WHOOP_REDIRECT_URI=http://localhost:8080/callback

Security note: .env is never committed. Tokens are stored in ~/.whoop-mcp-tokens.json with 600 permissions (owner read/write only).

4. Add to Claude's MCP configuration

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)

{
  "mcpServers": {
    "whoop": {
      "command": "node",
      "args": ["/absolute/path/to/whoop-mcp/dist/index.js"],
      "env": {
        "WHOOP_CLIENT_ID": "your_client_id_here",
        "WHOOP_CLIENT_SECRET": "your_client_secret_here",
        "WHOOP_REDIRECT_URI": "http://localhost:8080/callback"
      }
    }
  }
}

You can either set the env vars here or rely on a .env file in the project root (loaded by dotenv).

Claude Code (.claude/settings.json or via claude mcp add)

claude mcp add whoop node /absolute/path/to/whoop-mcp/dist/index.js \
  -e WHOOP_CLIENT_ID=your_client_id \
  -e WHOOP_CLIENT_SECRET=your_client_secret \
  -e WHOOP_REDIRECT_URI=http://localhost:8080/callback

Or manually in .claude/settings.json:

{
  "mcpServers": {
    "whoop": {
      "command": "node",
      "args": ["/absolute/path/to/whoop-mcp/dist/index.js"],
      "env": {
        "WHOOP_CLIENT_ID": "...",
        "WHOOP_CLIENT_SECRET": "...",
        "WHOOP_REDIRECT_URI": "http://localhost:8080/callback"
      }
    }
  }
}

5. Authenticate

Once the server is running in Claude, call the authenticate tool:

You: Use the authenticate tool to connect my WHOOP account.

Claude will display an authorization URL. Open it in your browser, approve access, and the tokens will be saved automatically to ~/.whoop-mcp-tokens.json.

Tokens refresh automatically — you only need to authenticate once.

Example prompts

What was my recovery score this morning?
Show me my last 7 days of sleep data.
How has my HRV trended over the past month?
What workouts did I do this week and what was my strain?
What are my body measurements on WHOOP?

Token storage

  • Tokens are stored in ~/.whoop-mcp-tokens.json (or the path in WHOOP_TOKEN_FILE).

  • The file is created with 0600 permissions so only your user can read it.

  • Access tokens are refreshed automatically 60 seconds before expiry using the stored refresh token.

Development

# Compile TypeScript in watch mode
npm run dev

# Run directly (after building)
npm start

Troubleshooting

Problem

Fix

Missing required environment variable

Ensure WHOOP_CLIENT_ID and WHOOP_CLIENT_SECRET are set in .env or the MCP config env block

Not authenticated

Call the authenticate tool and complete the browser flow

Port 8080 already in use

Change WHOOP_REDIRECT_URI to use a different port (e.g. http://localhost:9090/callback) and update your WHOOP app's redirect URI list

Token refresh fails

Delete ~/.whoop-mcp-tokens.json and re-authenticate

Available Tools

7 tools
authenticateA

Start the WHOOP OAuth 2.0 authorization flow. Returns a URL to open in your browser. Must be called before any data tool if you have not authenticated yet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does disclose that the tool initiates an OAuth flow and returns a browser URL. It does not detail callback/session behavior, but for a zero-parameter auth kickoff this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core action, return value, and usage condition all stated efficiently. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with no output schema, the description covers purpose, return value, and prerequisite usage. The sibling list makes its role as the auth gate for the data tools clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema already fully covers this dimension. The description adds no param-specific details, but none are needed; the rubric baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action — starting the WHOOP OAuth 2.0 authorization flow — and its immediate deliverable, a browser URL. This is unambiguous and distinguishes the tool from the data-retrieval siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says this must be called before any data tool when unauthenticated, giving the agent a clear precondition. It could add an explicit 'do not call if already authenticated' statement, but the condition is already clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_body_measurementsA

Get the user's body measurements: height, weight, and max heart rate.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the behavioral disclosure burden. The verb 'Get' implies a read-only operation and the listed fields indicate return contents, but units, value recency, or other behavior are not disclosed. This is adequate for a simple getter but leaves some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler or redundant phrasing. Every word contributes to identifying the resource and the specific data returned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only getter, the description adequately specifies what the agent will receive and requires no invocation arguments. Minor missing details like units or whether values are current/latest are not critical for tool selection or calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivally complete and the baseline of 4 applies. The description adds useful semantic context by naming the exact measurement fields returned, even though there are no parameter formats to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and resource ('user's body measurements'), then enumerates the specific values returned: height, weight, and max heart rate. It does not explicitly contrast with sibling tools like get_profile, so it falls just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives such as get_profile, get_workouts, or get_sleep. There are no conditions, exclusions, or context signals to help an agent decide between overlapping health-data tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cyclesA

Get WHOOP physiological cycles (days) with day strain, kilojoules, and heart rate summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default 5, max 25)
end_dateNoISO 8601 end date filter
start_dateNoISO 8601 start date filter

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does indicate a read-only intent through 'Get'. It names the returned metrics but does not disclose pagination behavior, authentication needs, date-range semantics, or any constraints beyond what the schema already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence with the operation, resource, and key output fields front-loaded. No filler or redundant explanation of sibling tools.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has three optional parameters and no output schema, so the description must partially explain returns; it lists day strain, kilojoules, and heart rate summary. However, it does not clarify default limit behavior, what a full cycle record looks like, or when date filters are best used, leaving moderate gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already documents, though the 'cycles (days)' phrasing helps clarify the domain of the date filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb/resource: 'Get WHOOP physiological cycles (days)', with the parenthetical clarifying cycles are daily periods. Lists distinguishing fields like day strain, kilojoules, and heart rate summary, which differentiates it from sibling tools like get_sleep or get_workouts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as get_recovery, get_sleep, or get_workouts. There are no when/when-not conditions or context hints beyond the noun 'cycles', leaving the agent to infer the appropriate use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profileA

Get the user's basic WHOOP profile (name and email).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly indicates a read operation ('Get') and discloses the exact return contents (name and email). It does not elaborate on side effects or auth, but for a zero-parameter read tool, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that immediately states the resource, the scope, and the returned fields. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, no-output-schema simple profile getter, the description is complete. It says what the tool retrieves and which fields are included, which is everything an agent needs to invoke and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so per the baseline for 0-param tools, a 4 is appropriate. The description adds meaningful context about what the returned profile contains, making the tool's purpose clearer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('WHOOP profile'), and narrows scope to basic identifying fields ('name and email'). This distinguishes it clearly from sibling data tools like get_recovery, get_sleep, and get_workouts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this is for retrieving the basic profile identity fields, which implies when it is needed. It does not explicitly name alternatives or exclusions, but with the sibling list, an agent will not mistake it for a data-specific endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recoveryA

Get WHOOP recovery data including recovery score (0–100), HRV, resting heart rate, SpO2, and skin temperature.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default 1, max 25)
end_dateNoISO 8601 end date filter, e.g. 2024-01-31T23:59:59.000Z
start_dateNoISO 8601 start date filter, e.g. 2024-01-01T00:00:00.000Z

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It lists returned metrics but does not mention default limit behavior, date-filter semantics, ordering, timezone handling, or authentication requirements. For a retrieval tool this is a moderate gap, but the description adds no behavioral context beyond the fact that data is being retrieved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the action and resource, then lists relevant data fields. No unnecessary words or repeated schema information; it earns every word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description combined with the schema gives an agent enough to make a basic call: identify the tool and know the date/limit parameters. However, without an output schema or annotations, it lacks return-format details, default behavior, and edge-case information. The absence of this context makes it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with clear descriptions for all three parameters (limit, start_date, end_date), setting the baseline at 3. The description does not add parameter-specific meaning beyond what the schema says; it merely lists the metrics returned. It neither improves nor harms parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Get' and identifies the resource as 'WHOOP recovery data', then lists specific metrics (recovery score, HRV, resting heart rate, SpO2, skin temperature). This clearly distinguishes it from sibling tools like get_sleep and get_workouts, which target different data domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool is for recovery-related data, but it does not explicitly state when to prefer it over siblings or mention alternatives. There are no exclusionary statements or conditional guidance. An agent can infer usage from the resource name, but the guidance remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sleepA

Get WHOOP sleep data including duration, efficiency, sleep stage breakdown, disturbances, and respiratory rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default 1, max 25)
end_dateNoISO 8601 end date filter
start_dateNoISO 8601 start date filter
include_napsNoWhether to include nap records in results (default false)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It makes the read-only nature apparent via 'Get' and clarifies what data is included. However, it does not disclose defaults (e.g., limit default of 1), date-range semantics, or how naps are handled—details left to the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It starts with the action and resource, then lists the relevant data categories, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with four optional parameters, the description is mostly complete: the schema covers the parameters and the description covers the return domains. Since there is no output schema or annotations, a bit more detail about response shape or default behavior would help, but the core calling context is sufficiently clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema for parameters like limit, start_date, end_date, or include_naps; it only describes the output data categories rather than the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), identifies the resource ('WHOOP sleep data'), and enumerates the returned domains (duration, efficiency, sleep stage breakdown, disturbances, respiratory rate). It is clear and informative, though it does not explicitly distinguish itself from sibling tools like get_recovery or get_body_measurements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the tool name and description: an agent can infer to use this when sleep data is needed. However, there is no explicit guidance about when to prefer this over sibling tools such as get_recovery, nor any mention of filters or prerequisites beyond what the schema provides.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_workoutsA

Get recent WHOOP workouts with strain score, sport type, heart rate zones, kilojoules, and distance.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default 5, max 25)
end_dateNoISO 8601 end date filter
start_dateNoISO 8601 start date filter

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the kind of data returned, including strain, sport type, heart rate zones, kilojoules, and distance. However, it does not explain ordering, pagination behavior, the meaning of 'recent', or whether any mutation side effects exist, though 'Get' strongly implies read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the core action and resource before enumerating the returned fields. Every word contributes to understanding what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with only three optional parameters and a fully documented schema, this description is nearly complete. It names the returned data fields and the resource, and the schema covers parameter semantics. The only notable gaps are ordering and default date-window behavior, but these are minor given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage, including descriptions for limit, end_date, and start_date. The tool description adds no parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), names the exact resource ('WHOOP workouts'), and lists concrete data fields (strain score, sport type, heart rate zones, kilojoules, distance). It is immediately distinguishable from sibling tools like get_sleep, get_recovery, and get_cycles because the target resource is explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool should be used when WHOOP workout data is needed, but it does not explicitly state when not to use it or point to any alternative. Since all siblings target different resource types, the intended use is reasonably inferable, but no explicit routing guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observedauthenticate
    • First observedget_body_measurements
    • First observedget_cycles
    • First observedget_profile
    • First observedget_recovery
    • First observedget_sleep
    • First observedget_workouts

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct data domain: authentication, recovery, sleep, workouts, cycles, body measurements, and profile. There is no meaningful overlap between these resource types, and the descriptions make the boundary between similar health metrics clear.

Naming Consistency5/5

The data tools all follow a clean get_<resource> naming convention, making the tool surface highly predictable. authenticate is the only exception, but it is clearly a distinct action verb appropriate for the OAuth flow.

Tool Count5/5

Seven tools is well-scoped for a read-only health data integration. Each tool represents a meaningful endpoint or data category, with no redundant or filler tools.

Completeness5/5

The server covers the main WHOOP data domains: recovery, sleep, workouts, daily cycles, body measurements, and user profile, plus the required authentication step. For a read-only personal health API, this is a complete and usable surface with no obvious dead ends.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/maangy/whoop-mcp'

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