Enables AI assistants to query Oura Ring health data (sleep, readiness, activity, heart rate, SpO2, stress) via a remote MCP server.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
srwoodsaz
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
HEALTH_LOG_SECRETHEALTH_LOG_URLMCP_SECRETPush this folder to a GitHub repo, then use any host. Set these environment variables on the host: , OURA_CLIENT_ID, OURA_CLIENT_SECRET, OURA_REFRESH_TOKEN.OURA_CLIENT_IDxxx OURA_CLIENT_SECRET=yyy node get-token.mjsOURA_CLIENT_SECRETOURA_CLIENT_ID=xxx =yyy node get-token.mjsOURA_REFRESH_TOKENApprove in the browser window that opens. The terminal prints =.... Save it.OURA_TOKENOURA_USE_SANDBOXJust testing? Skip steps 1–2 and set =true to use Oura's sample data.PORTTool annotations
1/5 tools have annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
4/5 tools missing one or more hints — oura_get_sleep_periods (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); oura_get_heart_rate (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); oura_get_personal_info (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +1 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
Only 0/5 tool handlers declare input schemas (0%)
Declare an inputSchema with zod/joi/yup on every tool definition.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Secrets stay with their owner
1 secret/sensitive value flow into network calls (HEALTH_LOG_SECRET → dynamic)
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Production dependencies are patched
0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.0 (high), @modelcontextprotocol/sdk@1.12.0 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/srwoodsaz-oura-mcp-server-4zgw2v)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check