MCP.Market

Oura MCP server

by proscar87·io.github.proscar87/oura-mcp·v0.4.0

The Oura v2 API as an MCP server. Paginates, fixes the date range, warns when data is missing.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

0 stars213 downloads/wk

Reviews

Write one

Nobody has reviewed Oura yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Oura tools (6)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • oura_check

    Self-check: is there a credential, and does Oura respond? Exposing nothing.

  • oura_collections

    The 19 Oura collections, what each one carries and which parameters it takes.

  • oura_compare

    Is the difference between two periods larger than this metric's own noise?

  • oura_query

    Fetches a COMPLETE Oura collection over the requested range.

  • oura_relate

    Do the day-to-day changes of two metrics move together, beyond chance?

  • oura_today

    Last night's sleep and today's readiness, with the days before them.

Public scan report

scanner v0.1.10 · 2026-10-03 · same rubric, same numbers if you re-run it

no findings
  • Code scan41 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 3 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Oura compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 65% of 48,243 servers
Tools
6
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
213
more than 76% of 12,306 servers with a package

What its tools let an agent do: 6 read

Release history: 3 versions in the registry since 2026-09-12, latest 2026-09-27, typically one every 11 days.

Install Oura in Claude Code, Cursor or VS Code

claude mcp add oura-mcp -- uvx mcp-oura
Add to Cursor

What the publisher says

From the Oura repository's README, as published. We do not edit it. Read it on GitHub

oura-mcp

English | 简体中文 | 한국어 | Español

<!-- The Glama badge is live, not a screenshot: it renders whatever that independent index scores this server at today. A badge that can only go up is decoration; one that can drop is evidence. -->

The Oura v2 API as an MCP server. All 19 collections, four tools, no dependencies beyond the MCP SDK.

One local day of heart rate is 1,231 samples across 2 pages

A client that doesn't follow Oura's nexttoken returns 1,000 of them — 81%, looking complete, with nothing saying otherwise.** Measured against the real API on 9 August 2026, one person, one ring, 24 hours.

The test to apply to any Oura MCP server, including this one: does it take next_token — or a cursor, or a limit — as a tool parameter? If it does, pagination is the model's job, and a model that forgets to ask again produces a confident answer off partial data. This server paginates to exhaustion before it returns, and tells you how many pages it took.

That's one of four ways Oura under-delivers without saying so. All four are measured below, and all four are corrected here.

Install

Download oura-mcp.mcpb from the latest release and double-click it. Claude Desktop does the rest — no terminal, no Python, no Node. It runs on Oura's official sample data out of the box, and every sample response says so, so nothing can pass for your own sleep.

Prefer the command line? uvx --from mcp-oura oura-mcp.

Prefer no Python on your machine at all?

docker run -i --rm -e OURA_SANDBOX=1 ghcr.io/proscar87/oura-mcp

-i is not optional: an MCP server speaks over stdin and stdout, not over a port. Without it the container has no stdin, the handshake never arrives, and the client reports a server that doesn't show up.

The problem, measured

Oura does not return errors when it can't give you what you asked for. It returns something different, shaped like a correct response. These are the four we found by measuring against the real API on 9 August 2026:

1. Skip the pagination and you get a fraction

{ "data": [ ... ], "next_token": "eyJ0eXAiOi..." }

If nexttoken comes back and you don't follow it, you receive the first page and nothing warns you. One local day of heartrate — one person, one ring, 24 hours — is 1,231 samples across 2 pages**. A client that doesn't paginate gets 1,000 of 1,231: 81%, looking complete. A month is ~37,000.

2. Asking for a single day returned zero records

enddate does not behave the same across collections**:

And on top of that, workout filters by UTC date while reporting day in local time: at -06:00, asking for July 16–18 returned records from the 15th and 16th — before the requested start.

Here the range is inclusive on both ends, always. Two extra days are requested on each side and then trimmed, which is correct whichever way a given collection behaves — and stays correct when Oura changes it.

3. latest=true is ignored where it doesn't apply

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Oura: common questions

Is Oura MCP server safe?
Mostly: it is graded B (83/100). Read the Oura safety report
How do I install Oura?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Oura need an API key?
Yes. The registry entry asks for OURA_CLIENT_SECRET, OURA_PAT.
Is Oura maintained?
The last commit was 36 days ago (2026-10-01). The latest release is v0.4.0.
How does Oura compare with other MCP servers?
safety score 83/100 (higher than 65% of 48,243 servers); tools 6 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.