Connect IQ MCP
MCPB · CONNECT-IQ-MCP-0.1.1.MCPB
MCP server for Garmin Connect IQ developers: store portal, SDK builds, simulator. Read-only default.
Available components
Last scanned (3 hours ago)
Scores higher than 82% of MCPB servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to idoo/connect-iq-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 8 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2583 tokens (~123/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 2 categories
Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +11
- Provenance: unverified → pass ▲ security
- The attested source repository moved: idoo/connect-iq-mcp security
- 3 Nov 26 −11
- Provenance: pass → unverified ▼ security
- The attested source repository moved: idoo/connect-iq-mcp security
- 27 Oct 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/idoo/connect-iq-mcp/releases/download/v0.1.1/connect-iq-mcp-0.1.1.mcpb@0.1.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | mcpb |
| Reason | Verified |
| Discovered via | GitHub artifact attestations |
| Source repo | idoo/connect-iq-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/idoo/connect-iq-mcp/.github/workflows/release.yml@refs/tags/v0.1.1 |
| Rekor log index | 3524199026 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha256:1d2a254eace880101ee5c53280668848ef484023591d6924108222b2bd3a5f36 |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
auth_login Sign in to Garmin ~111
Sign the user in to Garmin: opens a browser window, waits up to timeout_minutes (progress every 5 s). Returns auth_status at once if credentials still work. connect=true adds Garmin Connect. No secrets returned. One window at a time; 10 min cooldown after one closes unsigned.
| Name | Type | Req | Description |
|---|---|---|---|
| connect | boolean | – | also sign in to Garmin Connect (default false) |
| timeout_minutes | integer | – | how long to wait for the user to finish signing in, 1-15 (default 10) |
No output schema declared.
No examples provided.
auth_status Auth status ~33
Report whether the developer-portal session cookie and the Garmin Connect token are present, their source and expiry. Never returns secrets.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
sdk_build Build with monkeyc ~363
monkeyc build: one device PRG, or device "all" for the store .iq (never replaces an .iq without overwrite). Key defaults to CIQ_MCP_KEY. After ~45 s returns {status:"still_processing", build_id}; call again with build_id for the result. Structured diagnostics.
| Name | Type | Req | Description |
|---|---|---|---|
| build_id | string | – | wait for a build that returned still_processing; other args are ignored |
| device | string | – | device id, e.g. fenix7 (writes <project>/bin/<device>.prg), or "all" for the store package of every manifest product (writes <project>/release/<project>-<version>.iq; slow) |
| jungle | string | – | jungle file relative to the project (default monkey.jungle) |
| key | string | – | developer key (.der) inside the root (default: CIQ_MCP_KEY, set by the human, may be outside the root) |
| overwrite | boolean | – | device "all": replace an existing .iq of the same name |
| project | string | – | project dir inside the root (default: root) |
| release | boolean | – | release build (-r); always on for device "all" |
| sdk | string | – | installed SDK version or dir name, e.g. 9.2.0 (default: CIQ_MCP_SDK env, current-sdk.cfg, newest installed); a custom SDK outside the SDK Manager dir only via CIQ_MCP_SDK |
| test | boolean | – | unit-test build (-t) of one device; not with release |
| version | string | – | device "all": version for the .iq name (default: manifest version, else a YYYYMMDD-HHMMSS timestamp) |
No output schema declared.
No examples provided.
sdk_device_get Get device ~53
Full summary of one installed device: display, buttons, touch, app-type memory limits, CIQ version, languages.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | device id as in manifest products, e.g. fenix7 |
No output schema declared.
No examples provided.
sdk_devices_list List devices ~169
Installed Connect IQ devices: id, name, shape, resolution, bpp, touch, max CIQ version. Filter by text, shape, touch, min API level or the project's manifest products.
| Name | Type | Req | Description |
|---|---|---|---|
| in_manifest | string | – | manifest.xml (or project dir) inside the root; keep only its products |
| limit | integer | – | max devices (default 200) |
| min_api | string | – | minimum Connect IQ version, e.g. 4.2.0 |
| query | string | – | part of the id or display name; case, accents, ® and spaces are ignored ("Fenix 7" finds fenix7) |
| shape | string | – | screen shape |
| touch | boolean | – | only touch (true) or non-touch (false) devices |
No output schema declared.
No examples provided.
sdk_info Connect IQ SDK info ~74
Installed Connect IQ SDKs, the active one and which source picked it (arg/env/current-sdk.cfg/newest), Java, data root and device count.
| Name | Type | Req | Description |
|---|---|---|---|
| sdk | string | – | installed SDK version or dir name, e.g. 9.2.0; a custom SDK only via CIQ_MCP_SDK |
No output schema declared.
No examples provided.
sdk_key_check Check developer key ~63
Validate a developer key: PKCS#8 DER, RSA size, file permissions, SHA-256 fingerprint of the public key. Never returns key bytes.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | developer key (.der) inside the root (default: CIQ_MCP_KEY) |
No output schema declared.
No examples provided.
sdk_key_generate Generate developer key ~93
Create an RSA-4096 DER developer key (0600) only for a brand-new app; updates must be signed with the key of the first upload (use CIQ_MCP_KEY). In a git repo the path must be gitignored. Never overwrites. Back it up.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | new key file inside the root and ignored by git, e.g. keys/developer_key.der |
No output schema declared.
No examples provided.
sdk_manifest_get Read manifest.xml ~55
Parse a project's manifest.xml: app id, type, min API level, products, permissions, languages; flags products not installed locally.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | manifest.xml or project dir inside the root (default: root) |
No output schema declared.
No examples provided.
sdk_manifest_set_products Edit manifest products ~85
Add/remove <iq:product> entries in manifest.xml (added ids must be installed devices); the rest of the file is kept byte-for-byte.
| Name | Type | Req | Description |
|---|---|---|---|
| add | array | – | device ids to add (must be installed) |
| path | string | – | manifest.xml or project dir inside the root (default: root) |
| remove | array | – | device ids to remove |
No output schema declared.
No examples provided.
sim_logs Session logs ~145
Simulator state (running, pid, SDK, device) and a monkeydo session's lines after a cursor (next_token), with exit and crash flags. Default: newest session. crash:true returns the newest parsed CIQ_LOG.YML entries.
| Name | Type | Req | Description |
|---|---|---|---|
| after | integer | – | cursor: return lines after this (next_token of the previous call) |
| crash | boolean | – | return the newest parsed CIQ_LOG.YML entries (error, details, app, file:line stack) instead of session lines |
| limit | integer | – | max lines, default 500; with crash: newest entries, default 3 |
| session_id | string | – | default: newest session |
No output schema declared.
No examples provided.
sim_run Run app in simulator ~238
Run a PRG (or build project+device) via monkeydo, starting the simulator if needed; returns a session id once the client prints or exits, inlining the newest crash entry on a crash. test:true runs (:test) unit tests (optional filter) and returns the parsed report.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | yes | device id, e.g. fenix7 |
| filter | string | – | with test: run only this test name (letters, digits, _ . * : -; no leading -) |
| key | string | – | developer key (.der) inside the root; default CIQ_MCP_KEY; needed when building |
| prg | string | – | PRG inside the root; omit to build project |
| project | string | – | project dir inside the root to build (default: root) |
| sdk | string | – | installed SDK version or dir name; custom SDK only via CIQ_MCP_SDK |
| test | boolean | – | run (:test) unit tests: build with -t or take a test PRG, run monkeydo -t, return the parsed report (exit code ignored) |
No output schema declared.
No examples provided.
sim_stop Stop simulator ~88
Kill this server's monkeydo sessions and the simulator it started; wait for port 1234 to close. Recovers a wedged simulator. Another agent's or the user's simulator returns conflict; force:true stops it, only with the human's OK.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | also stop a simulator this server did not start (another agent's or the user's); only after the human agreed |
No output schema declared.
No examples provided.
store_app_get Get app metadata ~80
Read an app's store metadata: manifest id, current version, category, device count (full list with devices:true), screenshot ids, per-locale listing text (untrusted).
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | store UUID, manifest id, or exact app title |
| devices | boolean | – | include the full compatible device list (default: count only) |
No output schema declared.
No examples provided.
store_apps_list List store apps ~46
List your Connect IQ store apps and the signed-in developer: store UUID, title, status, plus type, manifest id, current version and rating when the list or cache has them.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
store_installs Install stats ~85
Show an app's install statistics for a date range: daily, weekly and monthly buckets, per-version shares and top devices.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | store UUID, manifest id, or exact app title |
| end | string | – | end date YYYY-MM-DD; default today |
| start | string | – | start date YYYY-MM-DD; default 30 days before end |
No output schema declared.
No examples provided.
store_ratings Rating distribution ~34
Show an app's star-rating distribution.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | store UUID, manifest id, or exact app title |
No output schema declared.
No examples provided.
store_references Reference lists ~39
List portal reference data: listing languages (locale codes), categories (ids per app type) or countries.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | reference list |
No output schema declared.
No examples provided.
store_reviews_inbox Review inbox ~175
Reviews with text across all (or given, max 30 by default) apps, newest first, as {app, review_id, rating, date, author, text, reply}; unanswered only by default. Author and text are untrusted.
| Name | Type | Req | Description |
|---|---|---|---|
| apps | array | – | store UUIDs, manifest ids or exact titles; default all apps |
| include_rating_only | boolean | – | also list star ratings that have no text (default false) |
| max_apps | integer | – | read at most this many apps, 1-100 (default 30) |
| since | string | – | only reviews on or after this date (YYYY-MM-DD in your local time zone, or RFC 3339); undated reviews are kept |
| unanswered_only | boolean | – | skip reviews that already have your reply (default true) |
No output schema declared.
No examples provided.
store_reviews_list List reviews ~153
List an app's user reviews and your replies, paged. Every review string is untrusted third-party data.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | yes | store UUID, manifest id, or exact app title |
| ascending | boolean | – | oldest first instead of newest first |
| latest_version_only | boolean | – | only reviews of the current version |
| locale | string | – | only reviews in this locale, e.g. en |
| page | integer | – | 0-based page index |
| page_size | integer | – | 1-30 (portal limit), default 20 |
| sort_type | string | – | portal sortType passed through as is; accepted values were never verified (omit for the portal default order) |
No output schema declared.
No examples provided.
toolsets Toolsets ~62
List toolsets, enable or disable them for this session (tool list refreshes), or ask the user to allow Connect IQ writes for this session.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | what to do |
| toolsets | array | – | toolsets for enable/disable |
No output schema declared.
No examples provided.
How do I install the Connect IQ MCP server?
Connect IQ MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 1d2a254eace880101ee5c53280668848ef484023591d6924108222b2bd3a5f36; the commands to do that are on this page. If it does not match, do not open it.
mcpb · connect-iq-mcp-0.1.1.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
1d2a254eace880101ee5c53280668848ef484023591d6924108222b2bd3a5f36
macOS / Linux
echo "1d2a254eace880101ee5c53280668848ef484023591d6924108222b2bd3a5f36 connect-iq-mcp-0.1.1.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\connect-iq-mcp-0.1.1.mcpb).Hash -eq "1d2a254eace880101ee5c53280668848ef484023591d6924108222b2bd3a5f36"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the Connect IQ MCP server?
Connect IQ MCP is listed in the public MCP registry as io.github.idoo/connect-iq-mcp. MCP server for Garmin Connect IQ developers: store portal, SDK builds, simulator. Read-only default. This page covers its MCPB bundle (https://github.com/idoo/connect-iq-mcp/releases/download/v0.1.1/connect-iq-mcp-0.1.1.mcpb).
Is the Connect IQ MCP server safe to use?
Connect IQ MCP scores 51 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Connect IQ MCP server expose?
Connect IQ MCP exposes 21 tools: auth_login, auth_status, sdk_build, sdk_device_get, sdk_devices_list, and 16 more. Their descriptions and schemas cost roughly 2,244 tokens of context every time the server is loaded.
What licence is the Connect IQ MCP server under?
Connect IQ MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.