MCP server exposing Oura Ring data and sleep/activity metrics for easy MCP-based integration.
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.
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.
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.
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
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>
`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"}
}
}
}Fetches daily sleep data for a given date range using startDate and endDate parameters in YYYY-MM-DD format.