home / mcp / oura mcp server

Oura MCP Server

MCP server exposing Oura Ring data and sleep/activity metrics for easy MCP-based integration.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "elizabethtrykin-oura-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/oura-mcp/build/index.js"
      ],
      "env": {
        "OURA_CLIENT_ID": "<OURA_CLIENT_ID>",
        "OURA_REDIRECT_URI": "http://localhost:3000/callback",
        "OURA_CLIENT_SECRET": "<OURA_CLIENT_SECRET>",
        "OURA_PERSONAL_ACCESS_TOKEN": "your_token"
      }
    }
  }
}

You can access Oura Ring data through a Model Context Protocol (MCP) server so clients can request up-to-date health metrics and sleep data in a consistent, tool-agnostic way. This server is designed to expose Oura data sources through MCP endpoints, making it easier to integrate with your tools and workflows.

How to use

Start by building the MCP server so it can run locally on your machine. Then connect an MCP client to the local stdio server to query data such as daily sleep, activity, or readiness.

How to install

Prerequisites: Node.js v16 or newer and an Oura account.

1. Clone the project.

2. Install dependencies.

3. Build the project.

4. Prepare credentials in a configuration file or environment as described below.

Configuration

Credentials can be provided as a Personal Access Token for testing or OAuth2 credentials for production.

Environment variables to configure your MCP server can be placed in a .env file.

Option 1: Personal Access Token

OURA_PERSONAL_ACCESS_TOKEN=your_token

Option 2: OAuth2 credentials

OURA_CLIENT_ID=your_client_id

OURA_CLIENT_SECRET=your_client_secret

OURA_REDIRECT_URI=http://localhost:3000/callback

Testing

You can test individual tools from the command line once the server is running. Example usage (replace tool_name and date as needed):

node test.js <tool_name> <date>
`

Claude Desktop Integration

If you use Claude Desktop, configure the MCP by adding a stdio server entry that runs the built MCP index. Provide the token as an environment variable.

{
  "mcpServers": {
    "oura": {
      "command": "node",
      "args": ["/absolute/path/to/oura-mcp/build/index.js"],
      "env": {"OURA_PERSONAL_ACCESS_TOKEN": "your_token"}
    }
  }
}

Available tools

get_daily_sleep

Fetches daily sleep data for a given date range using startDate and endDate parameters in YYYY-MM-DD format.