Skip to main content
Glama

Oura Ring MCP Server

by JamesLouie
debug-test.ts•3.14 kB
#!/usr/bin/env node import { OuraClient } from '../src/oura-client.js'; import dotenv from 'dotenv'; // Load environment variables dotenv.config(); async function debugTest() { console.log('šŸ” Debug Testing Oura Ring API (Raw Responses)...\n'); // Check if access token is available const accessToken = process.env.OURA_ACCESS_TOKEN; if (!accessToken) { console.error('āŒ OURA_ACCESS_TOKEN environment variable is required'); console.log('šŸ“ Please create a .env file with:'); console.log('OURA_ACCESS_TOKEN=your_personal_access_token_here'); console.log('\nGet your token from: https://cloud.ouraring.com/personal-access-tokens'); process.exit(1); } console.log('āœ… Access token found'); try { // Initialize Oura client without validation const ouraClient = new OuraClient({ accessToken, clientId: process.env.OURA_CLIENT_ID, clientSecret: process.env.OURA_CLIENT_SECRET, }); console.log('šŸ”— Oura client initialized\n'); // Test 1: Get raw personal info response console.log('šŸ‘¤ Getting raw Personal Info response...'); try { const response = await (ouraClient as any).client.get('/v2/usercollection/personal_info'); console.log('āœ… Raw personal info response:'); console.log(JSON.stringify(response.data, null, 2)); } catch (error) { console.log('āŒ Personal info failed:', (error as Error).message); } // Test 2: Get raw sleep data response console.log('\n😓 Getting raw Sleep Data response (last 2 days)...'); try { const endDate = new Date().toISOString().split('T')[0]; const startDate = new Date(Date.now() - 2 * 24 * 60 * 60 * 1000).toISOString().split('T')[0]; const response = await (ouraClient as any).client.get(`/v2/usercollection/daily_sleep?start_date=${startDate}&end_date=${endDate}`); console.log('āœ… Raw sleep data response:'); console.log(JSON.stringify(response.data, null, 2)); } catch (error) { console.log('āŒ Sleep data failed:', (error as Error).message); } // Test 3: Get raw activity data response console.log('\nšŸƒ Getting raw Activity Data response (last 1 day)...'); try { const endDate = new Date().toISOString().split('T')[0]; const startDate = new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).toISOString().split('T')[0]; const response = await (ouraClient as any).client.get(`/v2/usercollection/daily_activity?start_date=${startDate}&end_date=${endDate}`); console.log('āœ… Raw activity data response:'); console.log(JSON.stringify(response.data, null, 2)); } catch (error) { console.log('āŒ Activity data failed:', (error as Error).message); } console.log('\nšŸŽ‰ Debug testing completed!'); console.log('\nšŸ“ Use this raw data to adjust the Zod schemas if needed'); } catch (error) { console.error('āŒ Debug test failed:', error); process.exit(1); } } if (import.meta.url === `file://${process.argv[1]}`) { debugTest().catch((error) => { console.error('Fatal error:', error); process.exit(1); }); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JamesLouie/oura-ring-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server