Skip to content

Wrong number of steps and general approach #21

@bartmichalak

Description

@bartmichalak

So I asked Claude to analyse my daily average of steps in September:

Based on my Apple Health data, could you make a summary of my daily average steps in September?

{
  `params`: {
    `limit`: 1000,
    `date_to`: `2025-09-12T23:59:59+00:00`,
    `date_from`: `2025-09-01T00:00:00+00:00`,
    `record_type`: `HKQuantityTypeIdentifierStepCount`
  }
}

so then Claude used Get health records:

{
  `params`: {
    `limit`: 1000,
    `date_to`: `2025-09-12T23:59:59+00:00`,
    `date_from`: `2025-09-01T00:00:00+00:00`,
    `record_type`: `HKQuantityTypeIdentifierStepCount`
  }
}

and the response was like:

[{"type":"HKQuantityTypeIdentifierStepCount","sourceVersion":"11.5","sourceName":"Bartosz’s Apple Watch","device":"<<HKDevice: 0x739e67ac0>, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch7,9, software:11.5, creation date:2025-05-26 23:00:07 +0000>","startDate":"2025-09-01T03:50:26Z","endDate":"2025-09-01T03:51:13Z","creationDate":"2025-09-01T03:52:38Z","unit":"count","value":19.0,"textvalue":"19"},{"type":"HKQuantityTypeIdentifierStepCount","sourceVersion":"11.5","sourceName":"Bartosz’s Apple Watch","device":"<<HKDevice: 0x739e67ac0>, name:Apple Watch, manufacturer:Apple Inc., model:Watch, hardware:Watch7,9, software:11.5, creation date:2025-05-26 23:00:07 +0000>","startDate":"2025-09-01T03:53:09Z","endDate":"2025-09-01T03:53:22Z","creationDate":"2025-09-01T04:01:01Z","unit":"count","value":24.0,"textvalue":"24"},

Unfortunately, I didn't receive the full response, because:

Result too long, truncated to 100000 characters

It's due to the fact, that only from the September, I had 2626 samples of data, and I think it makes no sense to process it by LLM, given the fact it costs tokens.

After that try, Claude used another tool Get trend data:

{
  `date_to`: `2025-09-12T23:59:59+00:00`,
  `interval`: `day`,
  `date_from`: `2025-09-01T00:00:00+00:00`,
  `record_type`: `HKQuantityTypeIdentifierStepCount`
}

Suggestion: Maybe the tool description should give explicit instructions that this tool shouldn't be used for analysis longer than one day or so?

and the response was like:

[{"interval":"2025-09-01T00:00:00Z","average":24.81578947368421,"min":1.0,"max":1787.0,"count":836},{"interval":"2025-09-02T00:00:00Z","average":24.25,"min":1.0,"max":280.0,"count":172},{"interval":"2025-09-03T00:00:00Z","average":151.0990990990991,"min":1.0,"max":1087.0,"count":111},{"interval":"2025-09-04T00:00:00Z","average":114.64367816091954,"min":2.0,"max":888.0,"count":87},{"interval":"2025-09-05T00:00:00Z","average":106.6896551724138,"min":1.0,"max":1064.0,"count":87},{"interval":"2025-09-06T00:00:00Z","average":121.08988764044943,"min":2.0,"max":582.0,"count":89},{"interval":"2025-09-07T00:00:00Z","average":127.0,"min":2.0,"max":768.0,"count":78},{"interval":"2025-09-08T00:00:00Z","average":22.849598163031,"min":1.0,"max":1789.0,"count":871},{"interval":"2025-09-09T00:00:00Z","average":103.96446700507614,"min":1.0,"max":1085.0,"count":197},{"interval":"2025-09-10T00:00:00Z","average":139.96703296703296,"min":3.0,"max":1088.0,"count":91},{"interval":"2025-09-11T00:00:00Z","average":50.57142857142857,"min":5.0,"max":102.0,"count":7}]

It's better, but since there's no sum, Claude had to calculate the daily value separately using a Python script that it created for this purpose. I think this unnecessary additional step should be handled by the MCP server by adding a sum field.

At the end I received these values:

Sept  1: 20,750 steps (836 records)
Sept  2: 4,171 steps (172 records)
Sept  3: 16,772 steps (111 records)
Sept  4: 9,974 steps (87 records)
Sept  5: 9,282 steps (87 records)
Sept  6: 10,777 steps (89 records)
Sept  7: 9,906 steps (78 records)
Sept  8: 19,902 steps (871 records)
Sept  9: 20,480 steps (197 records)
Sept 10: 12,737 steps (91 records)

In the end, I got these values which aren't correct - I'm attaching the actual values (from Apple Health app) below:

Sept  1: 11584
Sept  2: 3868 
Sept  3: 10049
Sept  4: 4654
Sept  5: 5982
Sept  6: 6354
Sept  7: 5754
Sept  8: 10923
Sept  9: 11658
Sept 10: 6850

So as you can see, all the values look doubled. I think it's because steps are counted separately by the Watch and phone. Maybe the MCP server should look at the data and set up a default priority for values from the watch?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions