iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Use one Apple Health MCP server for multiple AI clients instead of running a separate server for Claude Desktop, Cursor, Windsurf, ChatGPT Desktop, Codex CLI, or opencode. The reusable part is the Node.js launch command and the HEALTH_DATA_DIR value that points to your Apple Health export. The part that changes is where each client stores MCP settings and how it names command, arguments, and environment variables.
This model is reported by Philip D’Souza in an August 18, 2026 DEV Community article. The available article excerpt shows a complete Claude Desktop example and identifies configuration locations for several other clients, but it does not expose all eight client names or their complete current configuration blocks. Use the documented pattern as a starting point, then confirm each client’s current MCP syntax before enabling it.
What does “one MCP server, eight AI clients” mean?
Model Context Protocol (MCP) lets an AI client call a local data service through a defined set of tools. In this setup, the service reads an Apple Health export directory, while the client supplies the conversational interface. You do not need a different Apple Health parser for every client: the proposed design reuses the same server process and changes only the client registration.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteD’Souza summarizes the idea as, “The server command never changes. Only the file path does.” Treat that as a description of the intended setup pattern, not a guarantee that every client accepts identical JSON. The same article specifically says opencode uses a different configuration shape, and each client can change its configuration location or UI over time.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
What stays the same
- The server is launched with Node.js in the shown example.
- The arguments point to a server script, shown as
server.mjs. HEALTH_DATA_DIRidentifies the directory containing the Apple Health export.- The same eight MCP tool names are intended to be available to every connected client.
What changes
- The file or settings screen where the client registers an MCP server.
- Whether the client expects an
mcpServersobject, anmcpobject, or another schema. - Whether environment variables are written under
env,environment, or a client-specific field. - Whether command arguments are represented as a string, a list, or a UI field.
Which Apple Health tools does the server expose?
The article lists eight read-oriented tools. Their names indicate the intended operations, but the excerpt does not provide individual parameter schemas or response examples, so do not assume undocumented filters or date formats.
get_mcp_status— reports MCP/server status.list_metrics— lists available health metrics.get_health_metrics— retrieves metric data.get_trends— calculates or returns trends.compare_periods— compares two time periods.get_structured_export— returns structured export data.get_intraday— accesses intraday measurements.query_health_data— performs a broader health-data query.
These tools are described in the article as read-only and local, with zero network calls. Those are author-reported claims; the source code, dependency behavior, and network activity were not independently inspected for this guide. If privacy is critical, verify the implementation and monitor network connections on the machine where the server runs.
What does the Claude Desktop configuration look like?
The visible example registers a server named health-export inside an mcpServers object. It launches Node, passes the server script through args, and supplies the Apple Health export directory through env.
Recommended Free Tools
{
"mcpServers": {
"health-export": {
"command": "node",
"args": ["/path/to/server.mjs"],
"env": {
"HEALTH_DATA_DIR": "/path/to/apple-health-export"
}
}
}
}
Replace both paths with locations that exist on your computer. The excerpt does not state the exact script location, export filename, operating system, or required Node.js version, so those values must come from the project instructions you are using. Keep the path in the same form your operating system accepts; a copied path with a typo will usually appear as a missing-file or empty-data problem.
How to validate the Claude entry
- Confirm that the
nodeexecutable is available to the desktop application, not only to an interactive terminal. - Confirm that the
server.mjspath points to the actual server file. - Confirm that
HEALTH_DATA_DIRpoints to the exported Apple Health directory, not its parent folder unless the project specifically requires that. - Save the MCP configuration and restart or reload the client if it does not discover the server immediately.
- Call
get_mcp_statusfirst. A successful status response separates a launch problem from a data-path problem.
Where do the other named clients store MCP settings?
The available article excerpt names six clients and gives their entry points. It says the complete guide covers eight, but the other two names and their full blocks are not visible here. The table therefore records only the locations explicitly identified.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
| Client | Configuration entry point named in the article |
|---|---|
| Claude Desktop | An MCP configuration containing an mcpServers object |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| ChatGPT Desktop | Settings > MCP Servers |
| Codex CLI | .mcp.json |
| opencode | An mcp configuration using environment and an array-form command |
A location is not the same thing as a complete, current schema. For example, the article distinguishes opencode from the Claude-style structure: opencode uses mcp plus environment and an array command, rather than mcpServers plus env. Do not paste the Claude block unchanged into opencode.
How should you adapt the same server for each client?
Start with one known-good command, then translate its fields into the client’s documented schema. Do not create a second server installation merely because a client stores settings somewhere else.
- Choose a stable server location. Keep the server script in a directory whose path will not change after an update or cleanup.
- Prepare the export directory. Export your Apple Health data using Apple’s Health app workflow, then note the exact local directory containing the export files. The server variable is the directory path, not an account name or a cloud URL.
- Test the executable independently. Run the project’s documented Node.js command in a terminal and resolve missing-runtime or permission errors before involving an AI client.
- Translate the launch fields. Preserve the command (
node), script argument (server.mjs), andHEALTH_DATA_DIRvalue. Change only the wrapper syntax required by the client. - Register the entry point. Edit the named JSON file or use the named settings screen for that client.
- Reload the client. Some desktop applications read MCP settings only at startup; the excerpt does not specify a universal reload action.
- Run a low-risk probe. Ask for status or a metric list before requesting a large date range. This makes path and parsing errors easier to identify.
What configuration differences matter most?
Object names
Claude’s example uses mcpServers. opencode is described with mcp. An otherwise correct command can fail if it is nested under the wrong top-level key.
Environment-variable fields
The Claude example places HEALTH_DATA_DIR under env; opencode is described as using environment. Preserve the variable name exactly. Changing it to a friendlier label will leave the server unable to locate the export.
Argument representation
The shown Claude block represents arguments as an array containing the script path. opencode is described as using an array-form command. Do not collapse arrays into one shell string unless that client’s documentation explicitly requires it.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
File paths and permissions
Shell shorthand such as ~ is shown for some configuration locations, but the server’s data path still has to resolve in the context of the client process. Desktop apps can run with different permissions or environment variables than your terminal. An absolute path is usually easier to diagnose when a relative path fails.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →How do you confirm that Apple Health data is actually available?
A connected server can still return no records if HEALTH_DATA_DIR points to the wrong level of the export hierarchy or if the export is empty. Use this order of checks:
- Ask the client to call
get_mcp_status. If it fails, fix startup, executable, or JSON issues first. - Call
list_metrics. A populated metric list indicates that the server can read the export structure. - Request a narrow period with
get_health_metricsrather than an unbounded query. - Use
get_structured_exportonly when you need the underlying structured representation; large exports can be harder for an AI client to handle. - If a metric is absent, check whether that metric exists in the export and whether the requested date range contains records. The excerpt does not establish that every one of the reported 190 metrics appears in every user’s export.
Are the “190 metrics” and “84 kB package” specifications verified?
No. The August 18, 2026 article reports 190 Apple Health metrics and an 84 kB npm package. Those figures are useful orientation points, but they were not checked against a package registry or repository for this article. Treat them as reported values that may change with releases, platform differences, or the author’s measurement method.
Metric count also does not mean that every user has all 190 data types. Availability depends on what Apple Health collected, which devices and apps wrote data, and what is present in the exported file. The package-size figure likewise does not describe total installed footprint, transitive dependencies, or runtime memory.
Is the server really local and zero-network?
The article characterizes the tools as local, read-only, and making zero network calls. That is a privacy-oriented design claim, not an independently verified security guarantee. A local MCP process can still be affected by its runtime, dependencies, client telemetry, operating-system services, or a future update.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
For a sensitive health-data workflow:
- Read the project’s source and dependency manifests before trusting the claim.
- Use an operating-system firewall or network monitor to observe unexpected connections.
- Give the client access only to the export directory it needs.
- Keep the export in an encrypted, access-controlled location.
- Delete old exports and temporary copies according to your retention policy.
- Do not paste raw health records into conversations or logs that other people or services can access.
What commonly breaks, and how can you fix it?
The client cannot find the server
Check the configuration location first: Cursor, Windsurf, Codex CLI, and opencode each use different entry points, while ChatGPT Desktop uses a settings screen. Confirm that the JSON is valid and restart the client. A valid server command in the wrong file is indistinguishable from an unconfigured server.
Node starts in a terminal but not in the desktop app
The application may not inherit your shell’s PATH. Use the full path to the Node executable if the client supports it, or configure the application’s runtime environment according to its current documentation. The source excerpt does not prescribe one operating-system-specific path.
The server starts but returns no health data
Inspect HEALTH_DATA_DIR. It must resolve to the Apple Health export directory visible to the client process. Check spelling, capitalization where relevant, permissions, and whether the export was actually created. Then test list_metrics before trying trends or comparisons.
opencode rejects a Claude-style block
Use the opencode structure described in the article: an mcp entry, environment for variables, and an array-form command. The field names are not interchangeable.
A query is slow or too large
Start with a short date range and one metric. Prefer a targeted retrieval or trend request before asking for a complete structured export. The available material does not provide performance limits, so avoid assuming a maximum record count.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
What is known about the complete eight-client coverage?
The article title and excerpt describe eight clients, but the available material names only Claude Desktop, Cursor, Windsurf, ChatGPT Desktop, Codex CLI, and opencode. It also says the linked guide contains full blocks for eight clients. Because the other two names and their current schemas are not exposed here, this article does not invent them or imply that the six visible entries represent the entire compatibility list.
Before deploying this pattern in a team, obtain the full current guide or the project’s official documentation and verify each client’s supported MCP version, configuration schema, reload behavior, and permission model. Those details are more likely to change than the server’s conceptual command.
When is this shared-server approach a good fit?
It fits users who maintain one Apple Health export and want to switch AI clients without duplicating parsing logic or data copies. It is especially practical when the clients run on the same computer and can reach the same server script and export directory.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Use separate server instances only when you have a deliberate isolation requirement, such as different operating-system accounts, different exports, or incompatible project versions. Running duplicates by habit adds update and troubleshooting work without improving the proposed architecture.
Frequently Asked Questions
Can I point two AI clients at the same Apple Health export at once?
The shared-server model is designed around reusing one local export path, but the available material does not document concurrent-session limits or locking behavior. Test simultaneous requests with a small date range before relying on parallel use.
Does the MCP server upload Apple Health records to a cloud service?
The article claims local, read-only operation and zero network calls, but that behavior was not independently verified here. Review the implementation and monitor connections if the privacy boundary is important.
Why does a client show the server as connected but return an empty metric list?
A successful process launch does not prove that HEALTH_DATA_DIR points to the correct export directory. Check the directory contents and permissions, then call list_metrics before requesting trends or comparisons.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Are all 190 reported metrics available in every Apple Health export?
No conclusion like that is established. The 190 figure is an author-reported capability count, while an individual export depends on which devices and apps recorded data and what the export contains.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

