← The evidence ledger
Evidence row 25782
Observed , by baseline/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.AntVsl/oura-mcp
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- b718461bd1262373e8e4d14810bdf46081cc4d3a0b81a383cf322afededb0a37
- Leaf
- 0x342eb01d465a34930bba970bd3123f7ea38763887d56e77b53de53a0f9cd0aae
What was observed
{
"endpoints": [
[
"web",
"https://github.com/AntVsl/oura_mcp"
]
],
"name": "Oura Ring",
"owner_address": null,
"raw": {
"_meta": {
"io.modelcontextprotocol.registry/official": {
"isLatest": true,
"publishedAt": "2026-08-30T09:00:12.186901Z",
"status": "active",
"statusChangedAt": "2026-08-30T09:00:12.186901Z",
"updatedAt": "2026-08-30T09:00:12.186901Z"
}
},
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"description": "Sleep, readiness, HRV, resting heart rate, activity and stress from your Oura Ring",
"name": "io.github.AntVsl/oura-mcp",
"packages": [
{
"environmentVariables": [
{
"description": "Client ID of your Oura application from developer.ouraring.com",
"name": "OURA_CLIENT_ID"
},
{
"description": "Client secret of your Oura application",
"isSecret": true,
"name": "OURA_CLIENT_SECRET"
},
{
"default": "http://localhost:8765/callback",
"description": "OAuth redirect URI; must match the Oura application byte for byte",
"name": "OURA_REDIRECT_URI"
},
{
"default": "sandbox",
"description": "sandbox for Oura's synthetic data (no auth needed), production for your own",
"name": "OURA_API_MODE"
},
{
"default": "UTC",
"description": "IANA timezone deciding what counts as today. Set it explicitly on servers, whose clocks run in UTC",
"name": "OURA_TZ"
},
{
"default": ".oura/tokens.json",
"description": "Where the OAuth flow stores tokens. Written by the server, not set by hand",
"name": "OURA_TOKEN_STORE"
},
{
"description": "Public https address, without a trailing slash. Enables OAuth 2.1 for Claude.ai and ChatGPT; leave empty for local or Bearer-token clients",
"name": "OURA_PUBLIC_URL"
},
{
"description": "Comma-separated trusted OAuth redirect origins; defaults to Claude.ai and ChatGPT",
"name": "OURA_OAUTH_ALLOWED_REDIRECT_ORIGINS"
}
],
"identifier": "my-oura-mcp",
"registryBaseUrl": "https://pypi.org",
"registryType": "pypi",
"runtimeHint": "uvx",
"transport": {
"type": "stdio"
},
"version": "0.4.2"
},
{
"environmentVariables": [
{
"description": "Shared secret guarding the HTTP endpoint. Required whenever the server binds to anything other than loopback; without it the server refuses to start",
"isRequired": true,
"isSecret": true,
"name": "OURA_MCP_TOKEN"
},
{
"description": "Public https address, without a trailing slash. Enables OAuth 2.1 for Claude.ai and ChatGPT; leave empty for local or Bearer-token clients",
"name": "OURA_PUBLIC_URL"
},
{
"description": "Comma-separated trusted OAuth redirect origins; defaults to Claude.ai and ChatGPT",
"name": "OURA_OAUTH_ALLOWED_REDIRECT_ORIGINS"
},
{
"description": "Client ID of your Oura application from developer.ouraring.com",
"name": "OURA_CLIENT_ID"
},
{
"description": "Client secret of your Oura application",
"isSecret": true,
"name": "OURA_CLIENT_SECRET"
},
{
"default": "UTC",
"description": "IANA timezone deciding what counts as today. Container clocks run in UTC, so set this",
"name": "OURA_TZ"
}
],
"identifier": "docker.io/iican/oura-mcp:0.4.2",
"registryType": "oci",
"transport": {
"type": "streamable-http",
"url": "http://localhost:8000/mcp"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/AntVsl/oura_mcp"
},
"title": "Oura Ring",
"version": "0.4.2",
"websiteUrl": "https://github.com/AntVsl/oura_mcp#readme"
}
},
"source": "mcp_registry",
"summary": "Sleep, readiness, HRV, resting heart rate, activity and stress from your Oura Ring"
}What the leaf hashes
{"body":"b718461bd1262373e8e4d14810bdf46081cc4d3a0b81a383cf322afededb0a37","id":25782,"kind":"listing","method":"baseline/1","observed_us":1793025355133154,"prev":null,"subject":"mcp_registry:io.github.AntVsl/oura-mcp","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).
- 0x342ec767694c7f30e46a0b9d19a1a1e390ff2de008df23e939e96ef5819d78b5
- 0xd64cc1260697b18bbc7aac5f54a6a25e210d9ba7ce3e649edd60264943d434be
- 0x2f729470595b8150a07079c11aefe002f01999a0685f0b7fb375071d105a8baf
- 0xffc4b6d3fcdec84fafb50a1aeda37151f416332ec0bd6de246685d6aef8cff97
- 0xdea3926a0e4be61977912a46707760e4d7b000c300d4d0d4559917b3ded8df74
- 0x5fba0244d77883237cedb0907f8be411fa2301ed1bb299d173145c9a00e314df
- 0xcd61b577101aba335a5d4324315cb5aec52050c6482b95afd3c710f61dd00748
- 0x27fe9d06ba15e7c5fca43a1408f138640b9409c6fd4f6c12f9d9ef3d986b1005
- 0x82cf6b3d1aae668d4027a29813a07304e6d8998e5336cc71e349905c8a69da93
- 0x177012e4764007ed1fc9fe062981493cb1e87dce78b4d705154fc6b59f179dc8
- 0x25f1494b636c5e3c47bd014c16b8f4b5df5a8fb62efdc32979420416a8736679
- 0xe57be1a98d96d75db9e9d2122794eabebfd735dea66e9d16ca63347243b3d483
- 0x08de74b7fb265ddb83e4c673da8a94e5f71829b2e6e7464c71c5138e450f2217
- 0x4338355a835617a26aa0bfcc971e84eb030d84e2aa840e3c8af958921dd080c7
- 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
- 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae