Skip to main content

Probably the most complete Apple Health MCP server

Project description

apple-health-mcp-server

PyPI version Python versions License: MIT

Probably the most complete Apple Health MCP server.

Read this in English / 日本語.

apple-health-mcp-server exposes the contents of your Apple Health export (export.xml plus the ECG CSV and GPX route files Apple ships alongside it) to any Model Context Protocol client — including Claude Desktop — through 17 read-oriented tools backed by a local DuckDB database.

Features

  • Comprehensive ingestion. Imports Record, Workout (with WorkoutEvent, WorkoutStatistics, WorkoutRoute, and WorkoutMetadataEntry), ActivitySummary, Correlation, Me, ExportDate, ECG voltage samples, and GPX route points. Categorical state-of-mind entries (iOS 17+) land in a dedicated table.
  • All data stays local — no external transmission. The importer reads files from disk, the server speaks MCP over stdio (HTTP is opt-in), and the only network artefact is whatever the client itself decides to send.
  • DuckDB-backed. Re-imports are idempotent thanks to deterministic deduplication; ad-hoc analysis through run_custom_query runs at native DuckDB speed.
  • Time-zone aware. GPX route timestamps are aligned to each parent workout's local offset so joins against XML-derived rows are clean.
  • Cross-platform. Tested on Ubuntu, macOS, and Windows against Python 3.12 / 3.13 / 3.14.
  • 100% branch-tested. Every release gates on full coverage with pytest --cov-branch --cov-fail-under=100.

Installation

The recommended entry point is uvx, which fetches a one-shot virtualenv on demand and never pollutes the system Python:

uvx apple-health-mcp-server --help

Claude Desktop

Add the following to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "apple-health": {
      "command": "uvx",
      "args": ["apple-health-mcp-server", "serve"]
    }
  }
}

Restart Claude Desktop. Before the tools return anything useful, import your data once:

uvx apple-health-mcp-server import /path/to/apple_health_export

The expected directory is the one Apple Health unzips for you (it contains export.xml, an electrocardiograms/ folder, and a workout-routes/ folder).

Database location

By default the database lands at the XDG-resolved data directory:

  • Linux / macOS: ~/.local/share/apple-health-mcp/health.duckdb
  • Windows: %LOCALAPPDATA%\apple-health-mcp\health.duckdb

Override with --db /custom/path/health.duckdb on either subcommand.

Tools

17 tools are registered with FastMCP, grouped by family:

Family Tools
Record types & data list_record_types, query_records, get_record_statistics
Workouts list_workouts, get_workout_details, get_workout_route
Activity summaries get_activity_summaries
Heart rate get_heart_rate_samples
Correlations list_correlations, get_correlation_details
ECG list_ecg_readings, get_ecg_data
State of mind list_state_of_mind
Me characteristics get_me_attributes
Metadata & ops list_data_sources, get_import_history
Escape hatch run_custom_query (read-only validated SQL)

Updating

uvx caches the package on first run and re-uses that cached copy on subsequent invocations, so a new release does not install itself automatically. Pick one:

  • Always run the latest — pass --refresh once whenever you want to pull a newer version:

    uvx --refresh apple-health-mcp-server serve
    
  • Pin a specific version — write the version directly in your Claude Desktop / Codex / Cursor config so an unrelated uvx cache eviction cannot move you off it:

    {
      "mcpServers": {
        "apple-health": {
          "command": "uvx",
          "args": ["apple-health-mcp-server==0.1.0", "serve"]
        }
      }
    }
    

See CHANGELOG.md for the per-release notes.

Development

uv sync
uv run pytest

See CLAUDE.md for the full command list, conventions, and the mandatory /code-review --fix policy on every pull request.

Contributing

Issues and pull requests in English or Japanese are both first class; see CLAUDE.md §6 for the full language policy.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apple_health_mcp_server-0.1.0.tar.gz (163.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apple_health_mcp_server-0.1.0-py3-none-any.whl (66.4 kB view details)

Uploaded Python 3

File details

Details for the file apple_health_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: apple_health_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 163.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for apple_health_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bae6769f495c5e995337b369a1b2afbad7f82c25969dec515d398c05b9de0c34
MD5 92cd92ce17bf0675899ebaa7a845dbe6
BLAKE2b-256 18fb3d5eaa7c8a82cde9b8f3421e4809fbb3cf9bb65e1b4467a79cc845683553

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_health_mcp_server-0.1.0.tar.gz:

Publisher: release.yml on rinoshiyo/apple-health-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file apple_health_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for apple_health_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df72972f0e4b1fd725fba19dd9fce0c44763b9c8050253c58fee3f1358be4320
MD5 e134ba3e0f10e113247cc83535e14f5d
BLAKE2b-256 2b13b2e264ba71f9a3c1ac957c106b49199e2e41cb74f1faef52bfeb37143f1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for apple_health_mcp_server-0.1.0-py3-none-any.whl:

Publisher: release.yml on rinoshiyo/apple-health-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page