Skip to main content
Glama

One-command install with Delx Wellness for Hermes: npx -y delx-wellness-hermes setup — preconfigures this connector and the other 8 in a dedicated Hermes profile.

Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below.


HTTP (v2 stateless)

Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:

npx -y polar-mcp-unofficial --http
# GET  http://127.0.0.1:3000/health
# POST http://127.0.0.1:3000/mcp   (sessionless)

Env: POLAR_MCP_HOST, POLAR_MCP_PORT, POLAR_MCP_TRANSPORT=http.

Local-first MCP server that connects AI agents to your Polar training, sleep, Nightly Recharge and continuous-sample data.

Unofficial project. Not affiliated with, endorsed by or supported by Polar Electro Oy. Polar is a trademark of its respective owner. Use this only with your own Polar account and in line with the Polar AccessLink API terms.

Built by David Mosiah for people who use Claude, Cursor, Hermes, OpenClaw or other MCP-compatible agents to think about training load, recovery and endurance - without copy-pasting numbers from Polar Flow.

Part of Delx Wellness, a registry of local-first wellness MCP connectors.

If this connector helps your agent workflow, please star the repo. Stars make the project easier for other AI builders to discover and help Delx keep shipping local-first wellness infrastructure.

Related MCP server: Withings MCP

Why this exists

Polar has one of the deepest training-physiology stacks among consumer wearables - Nightly Recharge, continuous samples, PPI (pulse-to-pulse intervals), training targets, sport profiles, orthostatic and fitness tests. The Polar AccessLink Dynamic API v4 exposes this data, but with 16 fine-grained OAuth scopes and a structure that's harder to navigate than typical consumer APIs.

This package handles the OAuth dance locally, normalizes responses across the v4 endpoints, redacts GPS by default, and exposes Polar through the Model Context Protocol. Tokens never leave your machine.

Setup in 60 seconds

You'll need a Polar AccessLink client (create one here) with redirect URI http://127.0.0.1:3000/callback.

npx -y polar-mcp-unofficial setup    # interactive: paste client id + secret
npx -y polar-mcp-unofficial auth     # opens browser, captures the OAuth code
npx -y polar-mcp-unofficial doctor   # verifies you're ready

Recommended scopes (request the ones matching the data you want):

activity:read calendar:read continuous_samples:read devices:read
nightly_recharge:read ppi_data:read profile:read routes:read
skin_contact:read sleep:read sports:read temperature_measurement:read
tests:read training_sessions:read training_targets:read user_subscription:read

Then add this to your MCP client config:

{
  "mcpServers": {
    "polar": {
      "command": "npx",
      "args": ["-y", "polar-mcp-unofficial"]
    }
  }
}

For Claude Desktop, run setup --client claude and the snippet is written for you.

Try it with your agent

Three things to ask first:

Use polar_connection_status to check setup, then run polar_daily_summary.
Give me a 5-line training brief for today.
Call polar_weekly_summary with response_format=json. Identify my biggest
training-load/recovery bottleneck and give me a next-week plan.
Use the polar_training_load_investigation prompt, after=2026-04-01.
Walk me through my recent training sessions + Nightly Recharge.

Data availability

This package uses the official Polar AccessLink Dynamic API v4. When this README says raw, it means the upstream Polar JSON for a supported endpoint - not raw device sensor streams.

Data

Available

Notes

Daily activity + calendar

yes

Requires activity:read / calendar:read

Sleep + sleep/wake vectors

yes

Requires sleep:read

Nightly Recharge (recovery score)

yes

Requires nightly_recharge:read; supported devices

Training sessions + training targets

yes

Requires training_sessions:read / training_targets:read

Continuous samples (HR over time)

yes

Requires continuous_samples:read

PPI samples (pulse-to-pulse intervals, HRV-relevant)

yes

Requires ppi_data:read; supported devices

Temperature measurements

yes

Requires temperature_measurement:read; supported devices

Skin contact periods

yes

Requires skin_contact:read

Tests (fitness / orthostatic / running)

yes

Requires tests:read

Routes + GPS geometry

opt-in

GPS coordinates redacted unless raw mode

Sports + sport profiles + devices

yes

Catalog and user metadata

Live device telemetry

-

Not exposed by Polar AccessLink

Tools

Start with these:

  • polar_quickstart - personalized 3-step setup walkthrough that adapts to what's already configured

  • polar_connection_status - verify local setup, scopes and readiness before calling Polar

  • polar_data_inventory — inventory supported data domains, scopes, privacy modes and recommended first calls without calling Polar APIs.

  • polar_demo - synthetic example payloads so agents see the contract before calling the real API

  • polar_daily_summary - sleep, activity, Nightly Recharge and training brief for today

  • polar_weekly_summary - scorecard, comparison vs prior week, next-week plan

  • polar_wellness_context - Nightly Recharge, sleep and training load in the shared wellness_context shape

Auth & diagnostics

  • polar_capabilities, polar_agent_manifest, polar_privacy_audit, polar_cache_status

  • polar_get_auth_url, polar_exchange_code, polar_revoke_access

Account

  • polar_get_account_data, polar_list_user_devices, polar_list_subscriptions

Shared wellness profile (local, never Polar data)

  • polar_onboarding, polar_profile_get, polar_profile_update — the Delx Wellness profile shared with the other connectors; stores only what the user typed, never tokens or biomarkers

Activity & sleep

  • polar_list_activity, polar_list_calendar

  • polar_list_sleeps, polar_list_sleep_wake_vectors — sleep lists hydrate available dates with the v4 sleep-result, sleep-evaluation, and sleep-score features by default

  • polar_list_nightly_recharge

Heart & physiology (date range)

  • polar_heart_series — agent-safe-series/v1 bounded HR from continuous samples (prefer this for agents)

  • polar_list_continuous_samples, polar_list_ppi_samples

  • polar_list_temperature_measurements, polar_list_skin_contacts

Training

  • polar_list_training_sessions, polar_list_training_targets, polar_list_training_target_favorites

  • polar_list_tests

Sports & routes

  • polar_list_sports, polar_list_sport_profile_catalog, polar_list_sport_profiles

  • polar_get_route - GPS coordinates redacted unless raw mode

Prompts

  • polar_daily_checkin - practical daily training and recovery check-in

  • polar_weekly_review - review trends across activity, sleep and recovery

  • polar_training_load_investigation - investigate training sessions + recovery context

Resources

  • polar://capabilities, polar://agent-manifest, polar://inventory

  • polar://summary/daily, polar://summary/weekly

  • polar://account-data, polar://latest/sleep

Privacy & security

  • OAuth tokens are stored in ~/.polar-mcp/tokens.json with 0600 permissions and are never returned by tools.

  • The server never prints access or refresh tokens.

  • POLAR_PRIVACY_MODE defaults to structured. Structured mode preserves the complete upstream physiological payload while removing secret/GPS fields; normalized aliases are additive and never replace nested v4 objects. Raw Polar JSON is opt-in via raw mode or per-call override.

  • GPS route geometry is redacted in summary and structured modes - only raw mode exposes raw coordinates.

  • Date formats and supported features are validated per endpoint. Feature queries that Polar limits to one day are hydrated one available date at a time.

  • The MCP client never sees access or refresh tokens.

  • This is not medical advice. The server exposes user-authorized data for personal AI workflows, not diagnosis or training prescription.

Configuration

setup writes most of these into ~/.polar-mcp/config.json (0600). Manual env override is supported:

POLAR_CLIENT_ID=<client-id>
POLAR_CLIENT_SECRET=<client-secret>
POLAR_REDIRECT_URI=http://127.0.0.1:3000/callback

# Optional
POLAR_SCOPES="activity:read calendar:read continuous_samples:read ..."
POLAR_PRIVACY_MODE=structured        # summary | structured | raw
POLAR_CACHE=sqlite                   # optional read-through cache
POLAR_TOKEN_PATH=~/.polar-mcp/tokens.json
POLAR_CACHE_PATH=~/.polar-mcp/cache.sqlite

Hermes / remote setup

npx -y polar-mcp-unofficial setup --client hermes --no-auth
npx -y polar-mcp-unofficial auth                      # run locally if browser auth is needed
npx -y polar-mcp-unofficial doctor --client hermes
hermes mcp test polar

After Hermes config changes, use /reload-mcp or hermes mcp test polar. Don't restart the gateway for normal data access.

If browser OAuth has to happen on a different machine than Hermes, run auth locally and copy ~/.polar-mcp/tokens.json to the server with chmod 600.

Requirements

Development

git clone https://github.com/davidmosiah/polar-mcp.git
cd polar-mcp
npm install
npm test
npm run build

Test with MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

See also

The full Delx Wellness connector library:

One-command setup for Hermes — preconfigures every connector above plus wellness skills + onboarding: delx-wellness-hermes.

📧 Contact & Support

License

MIT - see LICENSE.

Disclaimer

This software is provided as-is. It is not a medical device, does not provide medical advice, and should not be used for diagnosis, treatment or training prescription. Always consult qualified professionals for medical or training concerns.

Available Tools

37 tools
polar_agent_manifestPolar Agent ManifestA
Read-onlyIdempotent

Machine-readable install, runtime and client guidance for AI agents. Does not call Polar or expose secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientNogeneric
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
linksYes
oauthYes
clientYes
hermesYes
packageYes
projectYes
mcp_nameYes
resourcesYes
unofficialYes
agent_rulesYes
standard_toolsYes
troubleshootingYes
recommended_first_callsYes

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: 'Does not call Polar or expose secrets,' which goes beyond what annotations convey.

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?

Single sentence of 12 words, no filler, front-loaded with purpose. Every word earns its place.

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

Completeness2/5

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

Despite output schema existing, the description omits parameter meaning and usage details, which are critical for a tool with zero schema descriptions. Incomplete for effective use.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not mention the two parameters (client, response_format) or their enums. Fails to compensate for lacking schema descriptions.

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 states it provides 'machine-readable install, runtime and client guidance' and explicitly says it 'does not call Polar or expose secrets,' clearly distinguishing it from sibling tools that involve API calls or data access.

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 implies usage for setup and guidance contexts but does not explicitly state when not to use or name alternative tools. Clear context without exclusions.

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

polar_cache_statusPolar Cache StatusA
Read-onlyIdempotent

Show optional local SQLite cache status. Enable with POLAR_CACHE=sqlite or POLAR_CACHE=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
pathYes
enabledYes
entriesYes
http_cacheNo
newest_cached_atNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the bar is lower. The description adds value by explaining that the cache is optional and how to enable it (via environment variables), which provides useful behavioral context beyond the annotations.

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, well-structured sentence that front-loads the core purpose. Every word adds value, with no redundancy or filler.

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?

The tool is simple with one optional parameter and an output schema, so the description does not need to detail return values. It covers the key context (optional cache, enablement) but lacks explanation of what 'status' entails. Still, it is complete enough for an agent with access to the output schema.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. However, the description does not mention the 'response_format' parameter at all, failing to clarify its purpose or the available options (markdown/json). The agent cannot infer the configurable output format from the description alone.

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 tool shows local SQLite cache status, using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like polar_connection_status or polar_data_inventory, leaving room for ambiguity in tool selection.

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 usage by stating it shows cache status and how to enable it, but it does not specify when to use this tool over alternatives or provide exclusions. Usage context is implied but not explicit.

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

polar_capabilitiesPolar MCP CapabilitiesA
Read-onlyIdempotent

Explain supported Polar data, privacy boundaries, recommended agent workflow and project links.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
linksYes
creatorYes
projectYes
mcp_nameYes
auth_modelYes
unofficialYes
api_boundaryYes
privacy_modesYes
client_aliasesYes
supported_dataYes
contribution_pathsYes
recommended_agent_flowYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description is not required to repeat those. It adds context by specifying the topics covered (Polar data, privacy boundaries, workflow, project links), which goes beyond the annotations.

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

Conciseness4/5

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

Single sentence, 12 words, highly concise. Could be improved by listing topics more explicitly, but it's sufficiently clear and front-loaded.

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?

Given the tool is a meta capabilities overview, the description covers the key topics. An output schema exists to describe return values. The description is complete enough for its purpose.

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 only parameter (response_format) is self-explanatory from its enum and default, and the schema coverage is 0%, so the description should ideally mention it. However, the parameter is trivial and the default is 'markdown', so the lack of mention is a minor gap.

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?

Description clearly states it explains supported Polar data, privacy boundaries, recommended agent workflow, and project links. This distinguishes it from sibling tools that retrieve specific data types (e.g., polar_list_activity).

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?

Description implies use for understanding capabilities and workflow, but does not explicitly state when to use it vs. alternatives or when not to use it. No exclusions or alternative references are provided.

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

polar_connection_statusPolar Connection StatusA
Read-onlyIdempotent

Check local Polar config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Polar or exposing secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault
clientNogeneric
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
nodeYes
cacheYes
oauthYes
tokenYes
clientNo
configYes
next_stepsYes
missing_envYes
privacy_modeYes
redirect_uriNo
required_envYes
client_checksNo
ready_for_polar_apiYes
automatic_auth_supportedYes

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint false. The description adds detailed behavioral context: checks specific local states, avoids network calls, does not expose secrets, and optionally checks MCP client readiness.

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, well-structured sentence that immediately states the verb 'Check' and lists all items concisely with no wasted words.

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's purpose and behavior are well-covered, and an output schema exists to document return values. However, the lack of parameter descriptions leaves a gap in completeness, especially given the low schema coverage.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the two parameters ('client' and 'response_format') or their enums. The mention of 'optional MCP client readiness' hints at the client parameter but is insufficient.

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 it checks local Polar configuration items (config, token, Node version, privacy mode, cache, MCP client) without external calls. This distinguishes it from siblings that interact with the Polar API.

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 implies usage for local diagnostics by explicitly stating 'without calling Polar'. No explicit when-not-to-use or alternative tools are mentioned, but the context is clear.

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

polar_daily_summaryPolar Daily Training SummaryA
Read-onlyIdempotent

Build a practical daily summary from Polar sleep, activity, Nightly Recharge and training data when available. Read-only and non-medical.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window for recent training context.
timezoneNoIANA timezone used only for display, e.g. America/New_York.UTC
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
generated_atYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds 'non-medical' context and mentions graceful handling of missing data ('when available'), which goes beyond annotations without contradicting them.

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 extremely concise, using two short sentences to convey purpose, data sources, and safety. Every word serves a purpose with no redundancy.

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?

Given the output schema exists and annotations are rich, the description adequately covers the tool's function. However, it lacks specifics about the summary contents (e.g., format or key metrics), which would slightly improve completeness.

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 provides clear descriptions for all three parameters (days, timezone, response_format) with 67% coverage. The description adds no further parameter details, so it meets the baseline expectation without exceeding it.

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 action ('Build') and the resource ('practical daily summary') from specific data types (sleep, activity, Nightly Recharge, training). It also clarifies it's read-only and non-medical, and distinguishes from siblings that list raw data by offering an aggregated summary.

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 usage for daily summaries ('when available') but does not explicitly state when to use this tool vs alternatives like polar_weekly_summary or polar_wellness_context. There is no guidance on when not to use it or which sibling to prefer for different needs.

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

polar_data_inventoryPolar Data InventoryA
Read-onlyIdempotent

Inventory supported Polar data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Polar APIs or expose user data.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
authNo
kindYes
linksYes
notesYes
scopesYes
sourceYes
totalsYes
mcp_nameYes
categoriesYes
unofficialYes
first_toolsYes
api_boundaryNo
generated_atYes
privacy_modesYes
data_access_modelYes
recommended_agent_flowYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context that it does not call Polar APIs or expose user data, reinforcing safety and clarifying what the tool actually does beyond annotations.

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 concise sentences that front-load the core purpose and key exclusions. Every sentence adds value with no 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 informational tool with one optional parameter and an output schema, the description covers what the tool returns (inventory of data domains, auth scopes, privacy boundaries, recommended first calls) and its non-API nature. No gaps remain for an agent to execute correctly.

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

Parameters2/5

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

Schema has one parameter (response_format) with enum but no description (0% coverage). The tool description does not mention the parameter, even though it controls output format. The enum values are self-explanatory, but the description should have explicitly stated the parameter's role.

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?

Description clearly states verb 'Inventory' and specific resources: data domains, auth scope requirements, privacy boundary, and recommended first calls. It distinguishes from siblings by noting it does not call Polar APIs or expose user data, making its purpose unique.

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 implies use for understanding prerequisites before making API calls and notes it does not call APIs, guiding agents away from using it for data retrieval. However, it does not explicitly name alternative tools or provide when-not-to-use scenarios.

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

polar_demoPolar DemoA
Read-onlyIdempotent

Returns realistic example payloads of polar_daily_summary, polar_wellness_context, and polar_list_nightly_recharge so agents see the contract before calling real Polar APIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

TDQS

A4.1/5.0
Behavior4/5

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

Description adds value beyond annotations by specifying that it returns example payloads, but annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety.

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?

Single sentence that is front-loaded with the core action and purpose, no wasted words.

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?

Tool is simple with one optional parameter and no output schema; description covers purpose and example content, though omits mention of the response format parameter.

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

Parameters2/5

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

Schema coverage is 0% and description does not mention the response_format parameter or its enum values, so it adds no meaning beyond what the schema provides.

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?

Description states specific verb 'Returns' and specific resource 'example payloads of polar_daily_summary, polar_wellness_context, and polar_list_nightly_recharge'. Clearly distinguishes from sibling tools that are the real endpoints.

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?

Description implies usage to see contract before calling real APIs, providing clear context but not explicitly stating when not to use or alternatives.

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

polar_exchange_codeExchange Polar OAuth CodeA

Exchange a Polar OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesOAuth authorization code, or a full redirect URL containing ?code=...
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
noteYes
scopeNo
expires_atNo
token_pathYes

TDQS

A3.8/5.0
Behavior4/5

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

Discloses key behavioral traits: tokens are stored locally with 0600 permissions and never returned. Annotations indicate readOnlyHint=false consistent with write operation; no contradiction. However, lacks details on error handling or token lifetime.

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?

Single, efficient sentence conveying the main purpose and notable behavior (permissions, non-return of tokens). No fluff.

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?

Adequately covers the core operation, but lacks mention of the prerequisite step (needs a valid authorization code from polar_get_auth_url) and potential errors. Output schema exists so return values may be documented externally.

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

Parameters2/5

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

Schema covers the 'code' parameter well (accepts code or redirect URL), but the 'response_format' parameter has no description and appears only in enum/default. The tool description adds no additional semantics beyond schema, and schema coverage is only 50%.

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 tool exchanges an OAuth code for tokens, which is specific and distinguishes it from siblings like polar_get_auth_url that generate the auth URL.

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?

Implied usage as the second step after obtaining an OAuth code, but no explicit mention of prerequisites (e.g., 'use after polar_get_auth_url') or conditions when not to use this tool.

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

polar_get_account_dataPolar Account DataA
Read-onlyIdempotent

Read Polar user account fields exposed by AccessLink. Requires profile:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
endpointYes
privacy_modeYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and openWorldHint, so the description adds value by specifying the OAuth scope requirement ('profile:read') and hinting at the data scope ('exposed by AccessLink'). It also partially describes the privacy_mode parameter's behavior. This adds meaningful context beyond annotations.

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 two sentences: first states the core purpose, second adds a key requirement. No extra words. Front-loaded and efficient.

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 2 optional parameters and an output schema (not shown). The description covers purpose and auth requirement, and hints at privacy_mode behavior. However, it does not explain what 'account fields' includes, nor does it address response_format or the nature of the output. With openWorldHint, some completeness is acceptable, but more detail would help.

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 50% (only privacy_mode has a schema description; response_format has a default but no description). The description adds value for privacy_mode by explaining defaults and effects, but does not mention response_format. With low coverage, the description partially compensates but could do more.

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 'Read Polar user account fields', which is a specific verb+resource. The title 'Polar Account Data' matches. Among many sibling tools, this is distinct from polar_profile_get (which likely reads profile fields) by mentioning 'account fields' and 'AccessLink'. Purpose is unambiguous.

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 mentions a prerequisite ('Requires profile:read'), which gives some usage context. However, it does not explicitly state when to use this tool versus alternatives (e.g., polar_profile_get for more specific profile data), nor does it provide exclusions or failure conditions. Usage is implied but not fully guided.

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

polar_get_auth_urlGet Polar OAuth URLA
Read-onlyIdempotent

Generate a Polar OAuth authorization URL. Use this first when no local token exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional OAuth state value generated by the caller.
scopesNoOptional scope override. Defaults to read-only Polar scopes used by this server.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopesYes
auth_urlYes
next_stepYes
redirect_uriYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it generates a URL, consistent with these hints. No additional behavioral traits are disclosed, but annotations cover the main safety and idempotency aspects.

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

Conciseness4/5

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

The description is very concise (two sentences) and front-loaded with the purpose. It effectively communicates the core function and usage context, though could be slightly expanded to cover parameter semantics without losing conciseness.

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?

Given the output schema exists and the tool is simple, the description is mostly adequate. However, it omits mention of the response_format parameter controlling output format, which is relevant for an agent to properly handle the response.

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

Parameters2/5

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

Schema description coverage is 67% (state and scopes have descriptions, response_format does not). The description does not add any parameter details beyond what the schema provides, failing to compensate for the missing response_format description.

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 verb 'Generate' and resource 'Polar OAuth authorization URL'. It distinguishes from sibling tools by specifying 'Use this first when no local token exists.' indicating the tool's role in the OAuth flow.

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 provides explicit guidance: 'Use this first when no local token exists.' This implies the workflow order relative to polar_exchange_code, but does not mention scenarios where a token already exists or alternatives.

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

polar_get_routePolar RouteA
Read-onlyIdempotent

Load a Polar route by route id. Routes are GPS-sensitive; default privacy modes redact coordinates. Requires routes:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
route_idYesPolar route id returned by a calendar or training-session record.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
endpointYes
privacy_modeYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context about GPS sensitivity, default privacy redaction, and required scope 'routes:read', enhancing transparency beyond the annotations.

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 two sentences, front-loaded with the core purpose, and every sentence provides unique value. No redundant or excessive text.

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?

Given the tool's simplicity (get by ID) and the presence of an output schema, the description covers purpose, privacy, and auth requirements fully. No gaps for an agent to use the tool 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 covers 67% of parameters with descriptions. The description adds privacy context that clarifies the behavior of the 'privacy_mode' parameter, but does not detail 'response_format'. Overall, it adds meaningful explanation beyond the schema.

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 'Load a Polar route by route id.' This provides a specific verb-resource pair that distinguishes this tool from siblings, most of which are list or other operation tools.

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 mentions privacy sensitivity and authentication requirement, but does not explicitly guide when to use this tool versus alternatives or when not to use it. Context is implied but not explicit.

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

polar_list_activityPolar Daily ActivityB
Read-onlyIdempotent

List Polar daily activity records. Requires activity:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint as false, covering safety and idempotency. The description adds the requirement for 'activity:read' scope, which is useful beyond annotations. However, no further behavioral traits are disclosed, such as pagination behavior or rate limits, leaving 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?

The description is extremely concise with two sentences, no superfluous words. It front-loads the core action and includes essential permission info. Every sentence earns its place.

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?

Given the 8 parameters with detailed schema descriptions, output schema exists, and annotations provide safety guarantees, the tool is well-documented contextually. The description could add contextual context about when it is appropriate to use compared to other list tools, but overall completeness is high.

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 high (88%), so the schema already documents parameters well. The description does not add additional parameter meaning beyond what is in the schema; it only adds a general permission note. Baseline of 3 is appropriate.

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 'List Polar daily activity records', specifying the verb 'List' and the resource 'daily activity records'. It distinguishes from siblings by focusing on daily activity, but does not explicitly differentiate from other list tools like list_training_sessions, which is acceptable given the specific resource.

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 only mentions 'Requires activity:read', which is a permission requirement. It provides no guidance on when to use this tool versus alternatives, nor does it specify when not to use it. No explicit when/when-not/alternatives are provided.

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

polar_list_calendarPolar CalendarA
Read-onlyIdempotent

List Polar calendar entries in a date range. Requires calendar:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds only the auth requirement (calendar:read), which is useful but minimal. No contradictions observed.

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 extremely concise: one sentence plus a scope note. Every word adds value; no redundancy or fluff.

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?

Given the complexity of 8 parameters (including pagination and privacy options) and an output schema, the description omits details about pagination and response format. However, the high schema coverage and presence of output schema partially compensate, making it minimally 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?

Schema coverage is 88%, so the baseline is 3. The description only implicitly references date range parameters (after/before) but adds no additional meaning beyond what the schema provides for other parameters like privacy_mode or pagination.

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 tool lists Polar calendar entries in a date range, which is a specific verb-resource combination. It also specifies required scope (calendar:read), distinguishing it from sibling tools like polar_list_activity or polar_list_sleeps.

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 lacks guidance on when to use this tool instead of alternatives, such as other list tools. It does not mention when not to use it or provide explicit context for appropriate usage scenarios.

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

polar_list_continuous_samplesPolar Continuous SamplesA
Read-onlyIdempotent

List continuous sample records for a date range. Requires continuous_samples:read. Not medical advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint, destructiveHint false, etc. The description adds permission requirement and 'Not medical advice' disclaimer, but does not elaborate on pagination behavior or other nuances.

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 sentences, front-loaded with action and resource. Concise and efficient.

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?

Tool has output schema and annotations cover safety. The description provides permission info but lacks details on pagination or how all_pages works. Mostly sufficient given richness of schema and annotations.

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 88%, so baseline is 3. The description only adds 'date range' which aligns with after/before parameters. No additional parameter semantics beyond the schema.

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 tool lists continuous sample records for a date range, using a specific verb and resource. This distinguishes it from sibling list tools for other resources.

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 on when to use this tool versus alternatives, nor when not to use it. The required permission is mentioned but no comparisons to other tools.

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

polar_list_nightly_rechargePolar Nightly RechargeA
Read-onlyIdempotent

List Nightly Recharge results in a date range. Requires nightly_recharge:read. Not medical advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds context by stating the required auth scope and a disclaimer ('Not medical advice'). No contradictions with annotations.

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 concise: two sentences covering purpose, scope requirement, and disclaimer. It is front-loaded with the core action and avoids unnecessary verbosity.

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?

Given the 8 parameters and optional features like privacy_mode and response_format, the description is minimal. However, the presence of an output schema and high schema coverage reduce the need for extensive description. It could explain what Nightly Recharge is or how pagination works, but this is adequately covered by the schema.

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?

With 88% schema description coverage, the schema already thoroughly documents parameters. The description adds minimal extra value beyond stating 'in a date range', which is implied by the 'after' and 'before' parameters.

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 tool lists Nightly Recharge results with a date range, using a specific verb and resource. However, it does not distinguish this tool from sibling list tools like polar_list_activity or polar_list_sleeps, missing an opportunity to differentiate.

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 mentions the required scope 'nightly_recharge:read', which provides some usage guidance. However, it does not specify when to use this tool versus alternatives, nor does it provide exclusion criteria or when not to use it.

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

polar_list_ppi_samplesPolar PPI SamplesB
Read-onlyIdempotent

List pulse-to-pulse interval samples in a date range. Requires ppi_data:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds the auth requirement 'Requires ppi_data:read', which is useful but does not disclose other behavioral traits like pagination or rate limits.

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 plus a permission note, with no superfluous content. It is front-loaded and efficient.

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?

With 8 parameters and an output schema present, the description is adequate but minimal. It does not explain what PPI samples are or provide context beyond the date range and permission. Could be more complete for a health data tool.

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 88%, so the schema handles most parameter explanations. The description's mention of 'date range' maps to after/before parameters but adds no new meaning. Baseline is 3 due to high schema coverage.

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 verb 'list' and the resource 'pulse-to-pulse interval samples', with a date range constraint. It also mentions required permission. However, it does not explicitly differentiate from sibling list tools like polar_list_activity or polar_list_sleeps.

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 provides no guidance on when to use this tool versus alternatives. It only mentions the date range and permission, but no context on when this tool is appropriate or when other tools should be used instead.

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

polar_list_skin_contactsPolar Skin ContactsA
Read-onlyIdempotent

List skin contact periods in a date range. Requires skin_contact:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds the date range constraint and required scope, but does not elaborate on behavior like pagination limits or rate limiting. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single sentence, very concise with no unnecessary words. It efficiently conveys the core purpose. However, it could be slightly expanded to include more context without losing conciseness.

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?

Given the tool has 8 parameters, detailed annotations, and an output schema, the description covers the basic purpose but misses details about pagination (all_pages, max_pages), privacy modes, and response format. The schema compensates, but the description could be more informative.

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 88%, with most parameters having descriptive explanations. The description does not add any additional meaning beyond what the schema provides. 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 clearly states the verb 'list', resource 'skin contact periods', and scope 'in a date range'. It further specifies the required OAuth scope 'skin_contact:read'. This distinguishes it from sibling list tools like polar_list_activity or polar_list_sleeps by the specific resource.

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 mentions the required scope but does not provide explicit guidance on when to use this tool versus alternatives (e.g., when to choose skin contacts over other list tools). It lacks 'when-not-to-use' statements.

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

polar_list_sleepsPolar SleepsA
Read-onlyIdempotent

List Polar sleep records in a date range. Requires sleep:read. Not medical advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A4/5.0
Behavior4/5

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

The description adds value beyond annotations by stating the required authorization scope 'sleep:read' and the disclaimer 'Not medical advice'. It does not contradict any annotations.

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 extremely concise, consisting of three short sentences, each providing essential information. It is front-loaded with the core purpose.

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?

Given the presence of an output schema and detailed parameter descriptions, the description provides adequate completeness by adding authorization requirements and a disclaimer. It covers the key contextual points.

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 high (88%), so the baseline is 3. The description does not add significant meaning beyond the schema's parameter descriptions.

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 verb 'List', the resource 'Polar sleep records', and the scope 'in a date range'. It distinguishes from sibling tools by specifying 'sleep records', which is not used by any other sibling tool.

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 mentions the required authorization scope 'sleep:read', which provides some context for when the tool can be used, but it does not compare to alternative tools or specify when not to use it.

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

polar_list_sleep_wake_vectorsPolar Sleep Wake VectorsB
Read-onlyIdempotent

List sleep/wake vector records in a date range. Requires sleep:read. Not medical advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe, read-only operation. The description adds only a medical disclaimer, which does not contradict annotations but provides minimal additional behavioral insight.

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 extremely concise with two short sentences. The first sentence front-loads the core functionality, and the second adds essential context (permission and disclaimer). No unnecessary words.

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?

Given the presence of an output schema (not shown), the description does not need to detail return values. However, it lacks mention of pagination behavior, default ordering, or how date range filtering interacts with the after/before parameters, which could help the agent use the tool correctly.

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?

All 8 parameters are described in the input schema with meaningful descriptions (100% coverage). The description itself adds no additional parameter information beyond the schema, so it neither harms nor significantly aids interpretation.

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 verb 'list' and resource 'sleep/wake vector records' with a scope of 'in a date range'. However, it does not explicitly differentiate this tool from siblings like polar_list_sleeps, which appears to list sleep data but may have a different purpose.

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 provides a required permission ('sleep:read') and a disclaimer ('Not medical advice'), but offers no guidance on when to use this tool versus alternatives. No explicit when-to-use or when-not-to-use context is given.

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

polar_list_sport_profile_catalogPolar Sport Profile CatalogB
Read-onlyIdempotent

Load Polar sport profile catalog. Requires sports:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds the required auth scope 'sports:read', which provides some extra context beyond annotations, but no further behavioral details.

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

Conciseness4/5

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

Two short sentences that front-load the purpose. No wasted words, though slightly terse for a tool with 8 parameters and potential sibling confusion.

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

Completeness2/5

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

Given the complexity (8 parameters, multiple siblings), the description is too sparse. It does not explain what the catalog contains, how it differs from polar_list_sport_profiles, or any pagination behavior beyond what the schema implies.

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 88%, so the schema itself documents most parameters. The description does not add any parameter-specific meaning beyond what the schema provides, meeting baseline.

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 verb (Load) and resource (Polar sport profile catalog), but does not distinguish from the sibling tool polar_list_sport_profiles, which may have a similar purpose.

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 on when to use this tool versus alternatives like polar_list_sport_profiles. Only mentions required scope, no exclusions or context.

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

polar_list_sport_profilesPolar Sport ProfilesB
Read-onlyIdempotent

List the user's Polar sport profiles. Requires sports:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnly, openWorld, idempotent, non-destructive. The description adds a required authentication scope (sports:read), which is helpful but minimal.

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?

Extremely concise: two sentences with no unnecessary words. Every sentence adds value.

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?

Given high schema coverage and presence of an output schema, the description is adequate but does not elaborate on pagination or output behavior beyond the schema.

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 88%, so the schema carries most parameter meaning. The description adds no additional parameter insight beyond what is already in the schema.

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 tool lists a specific resource (Polar sport profiles) and notes a required scope. However, it does not differentiate from sibling tools like polar_list_sport_profile_catalog.

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 on when to use this tool versus alternatives. There is no mention of when-not or other strategies.

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

polar_list_sportsPolar SportsA
Read-onlyIdempotent

List sports available in the Polar ecosystem. Requires sports:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the auth requirement 'Requires sports:read', which is helpful beyond annotations. No contradictions.

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 sentences, front-loaded with the action. Every word is needed. No redundancy.

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?

The tool is simple (list sports) and has an output schema, so return values are documented. However, the description does not differentiate from closely related sibling tools like sport_profiles or sport_profile_catalog, which may confuse agents.

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 88%, so most parameter details are in the schema. The description does not add any parameter-specific information beyond what the schema provides, so 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 clearly states 'List sports available in the Polar ecosystem', providing a specific verb and resource. It distinguishes from sibling list tools by focusing on sports.

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 on when to use this tool versus alternatives like polar_list_sport_profiles or polar_list_sport_profile_catalog. It only mentions the required scope 'sports:read', which is minimal context.

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

polar_list_subscriptionsPolar SubscriptionsA
Read-onlyIdempotent

List user subscriptions and entitlements. Requires user_subscription:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the permission scope requirement, which is helpful but not extensive. No contradictions.

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 concise sentences, front-loaded with the core action, no redundant or missing information.

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?

Given the rich annotations, output schema, and high schema coverage, the description is sufficient for a list tool. It lacks some behavioral details but the overall definition is 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?

With 88% schema coverage, the description does not add any parameter-specific information beyond what the schema provides. Baseline of 3 is appropriate.

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 tool lists 'user subscriptions and entitlements' with a specific verb. While it doesn't explicitly differentiate from sibling 'list_*' tools, the resource name is specific enough.

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 mentions the required permission scope ('user_subscription:read') but provides no guidance on when to use this tool versus alternatives or when not to use it.

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

polar_list_temperature_measurementsPolar Temperature MeasurementsB
Read-onlyIdempotent

List temperature measurements in a date range. Requires temperature_measurement:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint) already cover safety and idempotency. Description adds the permission requirement but does not contradict annotations. Provides minimal additional behavioral context beyond structured fields.

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 sentences front-load purpose and permission. No redundant or irrelevant information. Every sentence earns its place.

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?

Output schema exists, so return format details are not needed. Description is adequate for a list tool with rich schema and annotations. Lacks guidance on pagination or when to paginate, but schema covers parameters. Minor gap in usage guidance, but overall complete for the tool's 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?

Schema description coverage is 88%, so parameters are well-documented in the schema. Description does not add meaning beyond what the schema provides. Baseline 3 is appropriate as schema does the heavy lifting.

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?

Description clearly states verb (List), resource (temperature measurements), and scope (in a date range). Does not explicitly differentiate from sibling tools, but the resource name is specific enough to avoid ambiguity.

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?

Only mentions required permission (temperature_measurement:read). No guidance on when to use this tool vs alternatives, such as other list tools (e.g., polar_list_activity). No exclusions or when-not-to-use conditions.

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

polar_list_testsPolar Test ResultsA
Read-onlyIdempotent

List Polar fitness/orthostatic/running test results in a date range. Requires tests:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint=false. The description adds the specific permission requirement (tests:read), which is valuable beyond annotations. No contradictions.

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 extremely concise with two sentences, no fluff. Every word serves a purpose.

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?

Given the tool's simplicity (read-only list with output schema and comprehensive annotations), the description covers the essential purpose and permission. It lacks info on pagination or result format, but output schema and schema descriptions likely fill that gap. Adequate.

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 88%, so the schema already explains most parameters. The description does not add any parameter-level meaning beyond what is in the schema. Baseline 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 clearly states the action (list), the specific resource (fitness/orthostatic/running test results), and the scope (in a date range). It also mentions the required permission (tests:read). This distinguishes it from sibling tools like polar_list_activity or polar_list_sleeps.

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 includes the required permission (tests:read), which guides when to use. However, it does not explicitly mention when not to use or provide direct comparisons to similar list tools among siblings. The context is clear enough for an agent.

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

polar_list_training_sessionsPolar Training SessionsA
Read-onlyIdempotent

List Polar training sessions in a date range. Requires training_sessions:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the permission requirement ('Requires training_sessions:read'), which is behavioral context not covered by annotations.

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 two concise sentences that front-load the core purpose and a critical prerequisite. No wasted words.

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?

Given the presence of an output schema and high schema coverage, the description provides necessary context (date range, permission) for a straightforward list tool. It is sufficiently 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?

Schema coverage is 88%, so the input schema already describes parameters well. The description does not add additional meaning beyond what is in the schema, meeting the baseline for high coverage.

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 action ('List'), the resource ('Polar training sessions'), and constraints ('in a date range'), effectively distinguishing it from sibling list tools like polar_list_activity.

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 usage for listing training session data but does not explicitly state when to use it versus alternatives or provide exclusion criteria. The resource name provides differentiation, but no explicit guidance.

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

polar_list_training_target_favoritesPolar Training Target FavoritesA
Read-onlyIdempotent

List user training target favorites. Requires training_targets:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read behavior is known. The description adds the authorization requirement (training_targets:read), which annotations do not cover. No further behavioral traits like rate limits or error handling are disclosed, but given the annotations, the description adds some value.

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 extremely concise with two short sentences. The first sentence front-loads the purpose, and the second adds the critical authorization note. Every word earns its place with no unnecessary text.

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?

Given the output schema exists and annotations are rich, the description is adequately complete for a simple list operation. However, it lacks information about pagination behavior or what constitutes a 'favorite' specifically, which could be beneficial. It meets minimum viability but has room for improvement.

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 88%, so the schema already documents most parameters well. The description does not add any additional meaning or clarification for parameters beyond what the schema provides. Baseline 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 clearly states the tool lists user training target favorites, distinguishing it from sibling tools like polar_list_training_targets which list all training targets. The verb 'list' and resource 'training target favorites' are specific and unambiguous.

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 only mentions the required scope 'training_targets:read' but provides no guidance on when to use this tool versus alternatives (e.g., polar_list_training_targets) or under what conditions. No contextual tips or exclusions are given.

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

polar_list_training_targetsPolar Training TargetsB
Read-onlyIdempotent

List calendar training targets in a date range. Requires training_targets:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds the permission requirement ('Requires training_targets:read'), which is useful context but does not reveal additional behavioral traits beyond what annotations provide.

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 extremely concise: one sentence plus a permission note. It is front-loaded with the primary action and contains no wasted words.

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

Completeness2/5

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

Given the tool has 8 parameters and an output schema, the description omits important context such as pagination behavior, sorting, or result format. It is too brief to fully inform the agent of all relevant aspects.

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 88%, so the schema already documents most parameters. The description does not add any parameter-specific meaning beyond what the schema provides, resulting in a baseline score.

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 tool lists calendar training targets in a date range, using a specific verb and resource. However, it does not explicitly differentiate from the similar sibling tool 'polar_list_training_target_favorites'.

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 provides no guidance on when to use this tool versus alternatives. It only mentions a required permission, not context for usage decisions.

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

polar_list_user_devicesPolar User DevicesA
Read-onlyIdempotent

List devices registered to the Polar user. Requires devices:read.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPolar page number.
afterNoOnly return Polar records after this time. Converted to Polar's inclusive from query parameter.
limitNoLocal page-size hint used for pagination safety.
beforeNoOnly return Polar records before this time. Converted to Polar's exclusive to query parameter.
all_pagesNoFetch multiple pages up to max_pages.
max_pagesNoMaximum pages to fetch when all_pages is true.
privacy_modeNoOptional per-call privacy override. Defaults to POLAR_PRIVACY_MODE or structured. raw returns upstream Polar JSON. summary minimizes sensitive health and profile details.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
recordsYes
endpointYes
has_moreYes
next_pageNo
privacy_modeYes
pages_fetchedYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the authorization requirement 'Requires devices:read', providing useful context beyond annotations.

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 efficient sentences cover the essential purpose and authorization without unnecessary words, maximizing readability for an AI agent.

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?

The description is complete enough for a straightforward listing tool, covering authorization and core purpose. The output schema exists to detail return values, so no further elaboration is needed.

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 88%, so the schema already documents parameters well. The description adds no further parameter detail, meeting the baseline but not exceeding it.

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 it lists devices registered to the Polar user, using a specific verb and resource. It distinguishes from sibling list tools by focusing on the unique resource of devices.

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 use for listing user devices but lacks explicit guidance on when not to use it or alternatives, making it adequate but not exemplary.

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

polar_onboardingWellness Onboarding FlowA
Read-onlyIdempotent

Read-only. Return the 11-question Delx Wellness onboarding flow (en or pt-BR), the current shared profile, missing critical fields, and a cross-connector hint. Use this when the user starts a fresh wellness session and you need to fill out preferred_name, goals, devices, training context, nutrition, preferences, and safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoOnboarding locale. Defaults to en.
response_formatNomarkdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only and idempotent; description adds value by detailing what is returned (flow, profile, missing fields, hint) and the session context. No contradictions.

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 sentences, no filler. Each sentence serves a distinct purpose: stating the tool's output and when to use it. Highly efficient.

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?

No output schema, but description lists all return components and the fields to be filled. Mentions the 11-question nature and locale options. Lacks detail on return format (markdown vs json), but response_format parameter covers that.

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 coverage is 50% (only locale described). Description mentions locale as 'en or pt-BR' but does not address response_format parameter, leaving half the parameters without added clarity.

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?

Description clearly states the tool returns the 11-question wellness onboarding flow, current profile, missing fields, and cross-connector hint. Verb 'Return' and resource specified distinctly from siblings like polar_wellness_context.

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?

Explicitly instructs to use when starting a fresh wellness session and needing to fill out specific fields. Lacks explicit mention of when not to use or alternatives, but context is strong.

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

polar_privacy_auditPolar Privacy AuditA
Read-onlyIdempotent

Return local privacy, cache, token-path and env-presence posture without revealing secret values.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
projectYes
cache_pathYes
token_pathYes
unofficialYes
stdout_safeYes
cache_enabledYes
config_sourceYes
secret_env_varsYes
local_config_pathYes
local_config_existsYes
raw_payloads_opt_inYes
privacy_mode_defaultYes
required_env_presentYes
gps_redaction_defaultYes
redacted_key_patternsYes
local_config_secure_permissionsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds value by stating it does not reveal secret values, which is an important behavioral trait beyond the annotations.

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 16-word sentence that is front-loaded with the core purpose and contains no extraneous information.

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?

With an output schema present and annotations covering safety, the description is complete. It succinctly explains what the tool returns without needing to detail return values or behavior beyond what is already structured.

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?

Although schema description coverage is 0%, the single optional parameter (response_format) has a clear enum and default in the schema. The description does not mention it, but the parameter is self-explanatory, so it does not significantly hinder 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 clearly states the tool returns local privacy, cache, token-path, and env-presence posture without revealing secrets. It uses a specific verb 'Return' and distinguishes from sibling tools like polar_cache_status or polar_connection_status.

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 provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or conditions. It only states what it does without context for selection.

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

polar_profile_getGet Shared Wellness ProfileA
Read-onlyIdempotent

Read the canonical Delx Wellness profile shared with the other wellness MCP connectors (Nourish, Cycle Coach, CGM, etc.). Read-only. Profile stores only what the user typed during onboarding — never OAuth tokens, API keys, or biomarkers.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

TDQS

A4.3/5.0
Behavior5/5

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

The description adds value beyond the annotations by disclosing that the profile stores only user-typed onboarding data and never OAuth tokens, keys, or biomarkers. This is consistent with the readOnlyHint and idempotentHint annotations. No contradictions.

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 two sentences long, front-loaded with purpose and followed by behavioral context. Every sentence earns its place without redundancy or fluff.

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?

Given the annotations and simplicity of the tool, the description provides sufficient context about what the profile contains and the read-only nature. However, it lacks details on the return format or error handling, and the parameter omission reduces completeness.

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

Parameters2/5

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

The description does not mention the single parameter 'response_format' at all, and the input schema has 0% coverage. Although the parameter is simple with an enum, the agent receives no guidance on its purpose or default behavior, which is a significant gap.

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 tool reads the 'canonical Delx Wellness profile' shared with other connectors, using the verb 'Read' and specifying the resource. It distinguishes from siblings like polar_profile_update and other read tools.

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 clearly states it is 'Read-only' and identifies the profile as shared with other wellness connectors, implying when to use it for general profile reading. However, it does not explicitly mention when not to use it or provide alternatives among the many sibling tools.

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

polar_profile_updateUpdate Shared Wellness ProfileA

Persist a partial patch to the canonical Delx Wellness profile. Requires explicit_user_intent=true after the user confirms they want to save. Rejects secret-like fields (oauth, token, api_key, password, cookie, refresh, session).

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYesPartial WellnessProfileDocument patch. Top-level keys: profile, goals, devices, training, nutrition, preferences, safety, notes.
response_formatNomarkdown
explicit_user_intentNoSet to true ONLY after the user has explicitly confirmed they want to save this. Otherwise the tool refuses to write.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations are all false, so description carries full burden. Discloses critical behaviors: requires user confirmation, rejects secret-like fields. Does not detail error handling or success response, but adds value beyond annotations.

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?

Three concise sentences, each adding unique value. No redundancy. Front-loaded with purpose, then usage condition, then security behavior.

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?

Covers core purpose and constraints well, but lacks information about return values or error conditions. As a mutation tool with no output schema, some completeness on expected outcome is missing.

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?

Schema already covers parameters well (67% coverage individually, but all three have descriptions). Description adds context: clarifies the conditional need for explicit_user_intent and the secret rejection relevant to the patch object. Adds meaning beyond schema.

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?

Clear verb 'persist' and resource 'partial patch to the canonical Delx Wellness profile'. Distinguishes from sibling read tools like polar_profile_get. Includes behavioral specifics like rejection of secret fields.

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?

Explicitly states requirement for explicit_user_intent after user confirmation, which is a key usage condition. Does not explicitly name alternatives, but among siblings it is the only update tool.

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

polar_quickstartPolar QuickstartA
Read-onlyIdempotent

Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Polar?'

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by explaining it adapts to current state (env vars, token presence). No contradictions.

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 sentences, front-loaded with core purpose and usage condition. No wasted words.

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?

The description covers the tool's purpose and adaptive behavior, but does not mention what output the user can expect. Given the tool's simplicity and the lack of an output schema, it is nearly complete.

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

Parameters2/5

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

Schema coverage is 0%, but the description does not explain the single optional parameter 'response_format' or its enum values. The parameter is simple, but the description should compensate for the lack of schema documentation.

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 it is a personalized 3-step setup walkthrough for connecting Polar, and it distinguishes itself from sibling tools by instructing to call it first when the user asks 'how do I connect Polar?'.

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

Usage Guidelines5/5

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

Explicitly specifies when to use: 'Call this first when the user asks 'how do I connect Polar?''. This provides clear guidance on the tool's entry-point role.

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

polar_revoke_accessRevoke Polar OAuth AccessA
Destructive

Delete the local Polar token file. Use only when the user explicitly wants to disconnect this MCP; revoke the remote grant from Polar if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
noteYes
token_pathYes
local_tokens_clearedYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already label it as destructive and not read-only. The description adds that it deletes a local file, which is consistent but does not disclose further behavioral traits like reversibility or side effects.

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 sentences efficiently convey the purpose and usage with no extraneous content. Front-loaded with the verb 'Delete'.

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?

Given the tool's destructive nature and having an output schema (context), the description is adequate for purpose and usage but fails to explain the response_format parameter, leaving a completeness gap.

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

Parameters1/5

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

Schema coverage is 0%, and the description does not mention the only parameter (response_format). The tool cannot be used correctly without understanding this parameter, which is a critical omission.

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?

Clearly states the action ('Delete the local Polar token file') and the context ('when the user explicitly wants to disconnect this MCP'). Distinguishes from sibling tools by specifying a unique operation.

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

Usage Guidelines5/5

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

Explicitly tells when to use ('only when the user explicitly wants to disconnect this MCP') and mentions an additional step ('revoke the remote grant from Polar if needed'), providing clear guidance.

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

polar_weekly_summaryPolar Weekly Training ReviewA
Read-onlyIdempotent

Build a weekly Polar scorecard with sleep, activity, Nightly Recharge, training load context, bottlenecks and actions. Read-only and non-medical.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoRecent analysis window in days.
timezoneNoIANA timezone used only for display, e.g. America/New_York.UTC
compare_daysNoPrior comparison window in days. Use 0 to disable comparison.
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
generated_atYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds 'Read-only and non-medical', which aligns with annotations without contradiction, but adds limited additional context beyond what annotations provide.

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 that conveys the core purpose and key output components without any extraneous words.

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?

With an output schema available, the description sufficiently covers the tool's purpose and output components. It is complete enough for a summary tool, though it could briefly note the time range context.

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 coverage is high (all four parameters have descriptions), so baseline is 3. The description does not add parameter meaning beyond schema; it lists output components but not parameter details.

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 verb 'build' and the resource 'weekly Polar scorecard', listing components (sleep, activity, Nightly Recharge, etc.) and distinguishing from sibling tools like polar_daily_summary by specifying the weekly scope.

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 use for weekly review but does not explicitly state when to use this tool versus alternatives (e.g., polar_daily_summary for daily needs). No exclusion criteria or alternative suggestions are provided.

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

polar_wellness_contextPolar Wellness ContextA
Read-onlyIdempotent

Normalize Polar Nightly Recharge, sleep and training load into the shared wellness_context shape for recommendation engines.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window for normalized Polar wellness context.
notesNo
sorenessNo
timezoneNoIANA timezone used only for display, e.g. America/New_York.UTC
injury_flagsNo
response_formatNomarkdown

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
sourceYes
sorenessYes
generated_atYes
injury_flagsYes
recent_training_loadYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds value by explaining the normalization purpose and target shape, which complements the annotations without contradicting them.

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 that immediately conveys the tool's purpose and output. Every word is necessary with no redundancy.

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

Completeness2/5

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

Although an output schema exists, the description offers no details on parameter usage, which is critical given the low schema coverage. The tool's completeness is inadequate for an agent to correctly invoke all parameters.

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

Parameters2/5

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

Schema description coverage is only 33% (days, timezone documented), and the description provides no parameter information. It fails to compensate for the low schema coverage, leaving six parameters without meaningful guidance beyond the schema defaults.

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 it normalizes Polar Nightly Recharge, sleep, and training load into a shared wellness_context shape for recommendation engines. It specifies the resource (Polar data types) and the action (normalize), and distinguishes from sibling data retrieval tools.

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 use when normalized context is needed for recommendation engines, but does not explicitly state when not to use it or provide alternatives such as raw list tools. Some inference is possible from sibling names, but not directly from the description.

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

TDQS

B3.4/5.0
Disambiguation4/5

Tools have distinct purposes targeting specific Polar data domains (sleep, activity, training, etc.), but the large number of informational/setup tools (e.g., polar_capabilities, polar_data_inventory, polar_quickstart) could cause some confusion about which to call first.

Naming Consistency3/5

All tools share the 'polar_' prefix, but beyond that the pattern is inconsistent: most data access tools use verb_noun (list_activity, get_route), while informational tools use noun phrases (polar_onboarding, polar_capabilities), and a few use noun_verb (polar_profile_get). This mix reduces predictability.

Tool Count2/5

With 37 tools, the count exceeds the recommended upper limit of 25 for typical servers. While the broad Polar ecosystem may justify many endpoints, the tool surface feels heavy and could be streamlined by grouping related operations.

Completeness4/5

The tool set covers the major Polar data domains (sleep, activity, training, routes, devices, etc.) and includes authentication and profile management. It is primarily read-only, which fits the Polar API, but lacks write operations for most resources.

Maintenance

ActivityActive
ResponsivenessSyncing

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/davidmosiah/polar-mcp'

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