addrbookFor publishers
← The evidence ledger

Evidence row 32352

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.Zsadigzade/trainbud
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
b79f8008921df03e1bd028f61bb23a3c8ad1602c9402874032d12b8253bd1978
Leaf
0x9debf605d4ba87ac9bae9bfce47bdc3092db1373b84d04001f6acf26ffa09636

What was observed

{
  "endpoints": [
    [
      "web",
      "https://github.com/Zsadigzade/trainbud"
    ]
  ],
  "name": "TrainBud",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-09-18T14:08:52.142758Z",
        "status": "active",
        "statusChangedAt": "2026-09-18T14:08:52.142758Z",
        "updatedAt": "2026-09-18T14:08:52.142758Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Talk to your own fitness data. Findings computed in code against your own 28-day baselines.",
      "name": "io.github.Zsadigzade/trainbud",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "The email address for your Connect account. Stored only in your local .env; `npx trainbud setup` writes it for you.",
              "isRequired": true,
              "name": "GARMIN_EMAIL"
            },
            {
              "description": "Your Connect password. Stored only in your local .env. Accounts with MFA enabled are not supported, because the unofficial library this drives cannot complete that flow.",
              "isRequired": true,
              "isSecret": true,
              "name": "GARMIN_PASSWORD"
            },
            {
              "description": "Optional, and only for the watch app's Ask card and daily insight. The MCP tools themselves need no model key: every finding is computed in code, and the model only phrases it.",
              "isSecret": true,
              "name": "ANTHROPIC_API_KEY"
            }
          ],
          "identifier": "trainbud",
          "packageArguments": [
            {
              "type": "positional",
              "value": "start"
            }
          ],
          "registryBaseUrl": "https://registry.npmjs.org",
          "registryType": "npm",
          "transport": {
            "type": "stdio"
          },
          "version": "0.9.0"
        },
        {
          "environmentVariables": [
            {
              "description": "The email address for your Connect account.",
              "isRequired": true,
              "name": "GARMIN_EMAIL"
            },
            {
              "description": "Your Connect password.",
              "isRequired": true,
              "isSecret": true,
              "name": "GARMIN_PASSWORD"
            }
          ],
          "identifier": "ghcr.io/zsadigzade/trainbud:0.9.0",
          "registryType": "oci",
          "transport": {
            "type": "stdio"
          }
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/Zsadigzade/trainbud"
      },
      "title": "TrainBud",
      "version": "0.9.0",
      "websiteUrl": "https://github.com/Zsadigzade/trainbud#readme"
    }
  },
  "source": "mcp_registry",
  "summary": "Talk to your own fitness data. Findings computed in code against your own 28-day baselines."
}

What the leaf hashes

{"body":"b79f8008921df03e1bd028f61bb23a3c8ad1602c9402874032d12b8253bd1978","id":32352,"kind":"listing","method":"baseline/1","observed_us":1793025366388549,"prev":null,"subject":"mcp_registry:io.github.Zsadigzade/trainbud","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x9debf2fc938e369517792939a0001c6b17b1a208c47cd591594f34796cc41391
  2. 0x5b37bb4018bcacd258d0579f19352b791ac2d6a1326274c7a2128d4c36c67f23
  3. 0x8bd0fc05e6ddcc52a39aebf32d889f0a814506204b71844df60fc31f3b6c0696
  4. 0x9a8dae4cd208d092b98f6e06c2d7bad68b27b96875768b6ed355410e90680842
  5. 0x23ed0e81e3547a1f1f1e3d84274a84f7ac3cc6e9e0ca42339d7b857fc2617f34
  6. 0xb00552d9a87ab10f6b99b307da798bf276fbe53c5a99d47084048ea179015fd1
  7. 0xfa2a7a9777648034ceef7930afe543bb27f98cdfd78eecf5e0c4c6330f4df539
  8. 0x7bfd405c6fefed64ea1296cd04281dd7f008d90ca6acfee880715cf6c96e745e
  9. 0x49c14533a12c09ed4a3ff0275a70f2680d5bbb359844fe1808c7b11e12e87d18
  10. 0xdbcb6bb00700465648e25b93c41af8658c581916f65193d2b15aedd3a021f631
  11. 0x351390dbbaa59bf254610c44de6ad39906ad2c226e8f737f7d774c0b9d382abf
  12. 0x73cca5e5ba14c0aaa799d5324b89eb846e3c5546aab3b2cda0c05c5eeaa03168
  13. 0x99a4e0f8b23989f58b564c1b6e419578b4388f6e0dbf6e50177c1bd476302d0e
  14. 0x6713795704ddd9c528d421fadd9cc96b0200a4ddbba84f88e718d4968dde888b
  15. 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON