{"name":"io.github.proscar87/oura-mcp","slug":"proscar87-oura-mcp","title":null,"description":"The Oura v2 API as an MCP server. Paginates, fixes the date range, warns when data is missing.","url":"https://mcp.market/server/proscar87-oura-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":15,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-12T07:10:29.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/proscar87/oura-mcp","website":null,"version":"0.3.5","remotes":[],"packages":[{"registryType":"pypi","identifier":"mcp-oura","version":"0.3.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Set to 1 to use Oura's official synthetic data with no credentials. The recommended way to try the server before authenticating.","name":"OURA_SANDBOX"},{"description":"client_id of your Oura application, for OAuth2. Register one at https://cloud.ouraring.com/oauth/applications with the redirect http://localhost:9876/callback/ (the trailing slash is required).","name":"OURA_CLIENT_ID"},{"description":"client_secret of your Oura application. Only needed when running `oura-mcp --authorize` and when refreshing the token.","isSecret":true,"name":"OURA_CLIENT_SECRET"},{"description":"Where the OAuth2 credentials file lives. Defaults to ~/.config/oura-mcp/credentials.json, mode 600.","name":"OURA_CREDENTIALS"},{"description":"Oura Personal Access Token. Only if you already had one: Oura stopped issuing them in December 2025.","isSecret":true,"name":"OURA_PAT"},{"description":"Path to a file holding the personal token. Preferable to OURA_PAT: an MCP server is registered in a JSON that gets backed up and shared when asking for help; a separate file rotates without touching the config.","name":"OURA_PAT_FILE"}]}],"tools":[{"name":"oura_check","description":"Self-check: is there a credential, and does Oura respond? Exposing nothing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oura_collections","description":"The 19 Oura collections, what each one carries and which parameters it takes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oura_query","description":"Fetches a COMPLETE Oura collection over the requested range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"oura_today","description":"Last night's sleep and today's readiness, with the days before them.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-19T20:08:22.252Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:08:22.206Z","components":{"code":{"score":25,"max":25,"notes":["28 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"mcp-oura","version":"0.3.5","found":true,"license":"MIT","dependencyCount":2,"publishedAt":"2026-09-12T07:11:17.733070Z","repositoryUrl":"https://github.com/proscar87/oura-mcp"}],"repo":{"found":true,"owner":"proscar87","repo":"oura-mcp","archived":false,"pushedAt":"2026-09-12T07:10:29Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/68169114?v=4","ownerCreatedAt":"2020-07-11T22:42:42Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-12T07:10:29.000Z","score":15}}}},"grade_history":[],"reviews":[]}