
List daily activity summaries including steps, calories, and activity scores. Filter by startdate/enddate. Use next_token for pagination.
Get a specific daily activity record by document ID. Use listdailyactivity to find valid IDs.
List heart rate samples with BPM and source. Filter by startdatetime/enddatetime (ISO 8601). Use next_token for pagination.
List daily readiness scores with contributors like HRV balance, body temperature, and sleep. Filter by startdate/enddate. Use next_token for pagination.
Get a specific daily readiness record by document ID. Use listdailyreadiness to find valid IDs.
List rest mode periods when the user activated rest mode. Filter by startdate/enddate. Use next_token for pagination.
Get a specific rest mode period by document ID. Use listrestmode_periods to find valid IDs.
List guided breathing and meditation sessions. Filter by startdate/enddate. Use next_token for pagination.
Get a specific session by document ID. Use list_sessions to find valid IDs.
List daily sleep scores with pagination. Filter by startdate/enddate (YYYY-MM-DD). Use nexttoken from pageinfo for next page.
Get a specific daily sleep record by document ID. Use listdailysleep to find valid IDs.
List detailed sleep sessions with heart rate, HRV, and sleep stages. Filter by startdate/enddate. Use next_token for pagination.
Get a specific sleep session by document ID with detailed heart rate, HRV, and sleep stage data. Use listsleepsessions to find valid IDs.
List sleep time recommendations with optimal bedtime windows. Filter by startdate/enddate. Use next_token for pagination.
Get a specific sleep time recommendation by document ID. Use listsleeptime to find valid IDs.
List daily SpO2 (blood oxygen) readings. Filter by startdate/enddate. Use next_token for pagination.
Get a specific daily SpO2 record by document ID. Use listdailyspo2 to find valid IDs.
List daily stress summaries with stress and recovery levels. Filter by startdate/enddate. Use next_token for pagination.
Get a specific daily stress record by document ID. Use listdailystress to find valid IDs.
List user-created tags. Filter by startdate/enddate. Use next_token for pagination.
Get a specific tag by document ID. Use list_tags to find valid IDs.
List enhanced tags with additional metadata like tag type and comments. Filter by startdate/enddate. Use next_token for pagination.
Get a specific enhanced tag by document ID. Use listenhancedtags to find valid IDs.
Get the authenticated Oura user's personal info including age, weight, height, and biological sex.
Validate Oura credentials by fetching the current user's personal info. Returns {success, message}.
List workouts including activity type, calories, distance, and intensity. Filter by startdate/enddate. Use next_token for pagination.
Get a specific workout by document ID. Use list_workouts to find valid IDs.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}It’s an MCP server that lets you access data and functionality from Oura via tools. Your agents can invoke these tools to retrieve your daily readiness score, see your sleep sessions over the pages week, get a certain rest mode period, and more.
Oura Ring doesn’t currently support their own “official” MCP server. But you can use one from a 3rd-party platform, like Merge Agent Handler.
Here are a few examples of how your agents can use the server:
Here are some reasons:
Yes, Agent Handler includes default security rules and custom security rules, and its DLP layer can be configured to block, redact, or mask sensitive data in tool inputs and outputs.
Here are some custom rules you can set:
You can take these steps:
1. Create or sign in to your Merge Agent Handler account, then open the Agent Handler dashboard.
2. Create a Tool Pack for your Oura workflow, since Tool Packs define which tools the agent is allowed to call.
3. Connect Oura by authenticating the Oura connector for the Registered User who will be making the tool calls.
4. Get your MCP endpoint URL for that Tool Pack and Registered User, using the standard Agent Handler MCP URL pattern that includes both IDs.
5. Connect an MCP client to that MCP endpoint, using the required auth header or bearer token for your Agent Handler account.
6. Refresh tools in your MCP client so the Oura tools appear, then run a few safe read actions first to validate behavior.
7. Verify the run in Agent Handler logs so you can confirm the tool arguments, responses, and audit trail look correct before expanding scope.
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Oura without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity.
IT also provisions access by role or group via SCIM. A wellness program manager, for example, gets Oura access to monitor team health trends and recovery metrics, Slack to share wellness insights with employees, and Google Sheets to report on program participation; while an occupational health specialist gets Oura access to track employee readiness and sleep data, BambooHR to cross-reference employee records, and Google Calendar to schedule wellness check-ins and interventions.
Every tool call an employee's AI makes to Oura is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now