WHOOP MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WHOOP MCP ServerWhat was my recovery score this morning?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Start the OAuth 2.0 flow — call this once to connect your WHOOP account |
| Latest recovery score, HRV, resting heart rate, SpO2, skin temperature |
| Sleep duration, efficiency, stage breakdown, disturbances, respiratory rate |
| Recent workouts with strain, sport type, HR zones, calories |
| Physiological cycles (days) with strain and recovery summary |
| Height, weight, and max heart rate |
| 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.000Zinclude_naps—get_sleeponly; include nap records (defaultfalse)
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
Go to https://developer.whoop.com/ and sign in.
Create a new application.
Add
http://localhost:8080/callbackas a Redirect URI (or use a custom port — just keep it consistent withWHOOP_REDIRECT_URI).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:recoveryread:sleepread:workoutread:cyclesread:body_measurementread:profile
Copy your Client ID and Client Secret.
2. Install and build
git clone <this-repo>
cd whoop-mcp
npm install
npm run build3. Configure environment variables
cp .env.example .envEdit .env:
WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here
WHOOP_REDIRECT_URI=http://localhost:8080/callbackSecurity note:
.envis never committed. Tokens are stored in~/.whoop-mcp-tokens.jsonwith600permissions (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
.envfile in the project root (loaded bydotenv).
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/callbackOr 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
authenticatetool 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 inWHOOP_TOKEN_FILE).The file is created with
0600permissions 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 startTroubleshooting
Problem | Fix |
| Ensure |
| Call the |
Port 8080 already in use | Change |
Token refresh fails | Delete |
Available Tools
7 toolsauthenticateA
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records to return (default 5, max 25) | |
| end_date | No | ISO 8601 end date filter | |
| start_date | No | ISO 8601 start date filter |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records to return (default 1, max 25) | |
| end_date | No | ISO 8601 end date filter, e.g. 2024-01-31T23:59:59.000Z | |
| start_date | No | ISO 8601 start date filter, e.g. 2024-01-01T00:00:00.000Z |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records to return (default 1, max 25) | |
| end_date | No | ISO 8601 end date filter | |
| start_date | No | ISO 8601 start date filter | |
| include_naps | No | Whether to include nap records in results (default false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of records to return (default 5, max 25) | |
| end_date | No | ISO 8601 end date filter | |
| start_date | No | ISO 8601 start date filter |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v1.0.0- First observed
authenticate - First observed
get_body_measurements - First observed
get_cycles - First observed
get_profile - First observed
get_recovery - First observed
get_sleep - First observed
get_workouts
TDQS
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.
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.
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.
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
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
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Your WHOOP data in the assistant, read-only: recovery, sleep, strain, workouts, cycles and body meas
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to access and analyze Whoop health data including recovery, sleep, strain, and workouts through a custom MCP connector.16310MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to read your Whoop recovery, sleep, cycle, and workout data through natural language queries.163MIT
- FlicenseAqualityBmaintenanceProvides Claude Desktop with access to WHOOP fitness data including recovery, sleep, strain, and workouts.41-
- FlicenseAqualityCmaintenanceEnables Claude to read your WHOOP health data including recovery, sleep, strain, and workouts through the official WHOOP API, so you can ask natural language questions about your fitness metrics.7-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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