
Biorhythm cycles, forecasts, critical days and compatibility for AI agents, one API key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
RoxyAPI key from roxyapi.com/account
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Calculate biorhythm compatibility between two people by overlaying their cycle profiles on a target date. Returns per-cycle alignment scores (0-100) for physical, emotional, and intellectual cycles, an overall compatibility score, relationship rating, strengths, challenges, practical advice, and a daily sync snapshot showing the absolute difference in each primary cycle. Perfect for dating apps, relationship platforms, team-building tools, and couples coaching applications.
Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.
Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.
Date to evaluate compatibility on in YYYY-MM-DD format. Defaults to today (UTC). Compatibility varies by day since biorhythm cycles are continuous.
Calculate biorhythm compatibility between two people by overlaying their cycle profiles on a target date. Returns per-cycle alignment scores (0-100) for physical, emotional, and intellectual cycles, an overall compatibility score, relationship rating, strengths, challenges, practical advice, and a daily sync snapshot showing the absolute difference in each primary cycle. Perfect for dating apps, relationship platforms, team-building tools, and couples coaching applications.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
| person1* | object | |
| person2* | object | |
| targetDate | string | Date to evaluate compatibility on in YYYY-MM-DD format. Defaults to today (UTC). Compatibility varies by day since biorhythm cycles are continuous. |
{
"type": "object",
"examples": [
{
"person1": {
"birthDate": "1990-07-15"
},
"person2": {
"birthDate": "1992-03-22"
}
}
],
"required": [
"person1",
"person2"
],
"properties": {
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
},
"person1": {
"type": "object",
"required": [
"birthDate"
],
"properties": {
"birthDate": {
"type": "string",
"format": "date",
"example": "1990-07-15",
"description": "Birth date of person 1 in YYYY-MM-DD format."
}
}
},
"person2": {
"type": "object",
"required": [
"birthDate"
],
"properties": {
"birthDate": {
"type": "string",
"format": "date",
"example": "1992-03-22",
"description": "Birth date of person 2 in YYYY-MM-DD format."
}
}
},
"targetDate": {
"type": "string",
"format": "date",
"example": "2026-04-10",
"description": "Date to evaluate compatibility on in YYYY-MM-DD format. Defaults to today (UTC). Compatibility varies by day since biorhythm cycles are continuous."
}
}
}Find all critical days (zero crossings) within a date range up to 180 days. Returns each critical day with cycle name, period, direction (ascending or descending), severity (single, double, or triple), and advisory text. Highlights rare double critical days where two primary cycles cross zero simultaneously and extremely rare triple critical days where all three primary cycles cross zero on the same date. Ideal for calendar integrations, push notification systems, alert engines, and wellness scheduling tools.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
| endDate | string | End date of the search range in YYYY-MM-DD format. Defaults to startDate + 90 days. Maximum range: 180 days. |
| birthDate* | string | Birth date of the person in YYYY-MM-DD format. |
| startDate | string | Start date of the search range in YYYY-MM-DD format. Defaults to today (UTC). |
Get a daily biorhythm reading with seeded randomness for consistent "biorhythm of the day" features. Same seed and same date always produce the same reading, perfect for daily push notifications, morning briefings, and wellness app check-ins. Returns energy rating, overall phase, a spotlight on one featured cycle, quick-read values for all three primary cycles, a daily message, and actionable advice. The spotlight cycle is deterministically selected by the seed, creating variety across users while maintaining consistency for each individual.
| Argument | Type | Description |
|---|---|---|
| date | string | Date for the reading in YYYY-MM-DD format. Defaults to today (UTC). Useful for viewing past daily readings or pre-generating future ones. |
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| seed | string | Optional seed for reproducible readings. Same seed + same date = same reading every time. Pass any unique identifier (userId, email hash, session token) to give each user their own reading for the day. Without a seed every caller receives the same shared reading of the day. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Generate a biorhythm forecast for a date range up to 90 days. Returns daily cycle values for physical, emotional, intellectual, and intuitive cycles, daily energy ratings, critical day identification, and a summary with best day, worst day, average energy, and period-level guidance. Ideal for wellness apps, productivity planners, scheduling tools, and calendar integrations that need forward-looking biorhythm data.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
| endDate | string | End date of the forecast range in YYYY-MM-DD format. Defaults to startDate + 30 days. Maximum range: 90 days. |
| birthDate* | string | Birth date of the person in YYYY-MM-DD format. |
| startDate | string | Start date of the forecast range in YYYY-MM-DD format. Defaults to today (UTC). |
{
"type": "object",
"examples": [
{
"birthDate": "1990-07-15"
}
],
"required": [
"birthDate"
],
"properties": {
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
},
"endDate": {
"type": "string",
"format": "date",
"example": "2026-04-30",
"description": "End date of the forecast range in YYYY-MM-DD format. Defaults to startDate + 30 days. Maximum range: 90 days."
},
"birthDate": {
"type": "string",
"format": "date",
"example": "1990-07-15",
"description": "Birth date of the person in YYYY-MM-DD format."
},
"startDate": {
"type": "string",
"format": "date",
"example": "2026-04-01",
"description": "Start date of the forecast range in YYYY-MM-DD format. Defaults to today (UTC)."
}
}
}Get current phase information for all 10 biorhythm cycles without the full interpretation payload. Returns value, phase name, phase label, day position within cycle, cycle period, days until next critical crossing, and short-term trend for each cycle. Includes a compact summary string. Designed as a lightweight endpoint for dashboards, widgets, status bars, and quick-check interfaces that need biorhythm phase data without editorial text.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
| birthDate* | string | Birth date of the person in YYYY-MM-DD format. |
| targetDate | string | Date to get phase information for in YYYY-MM-DD format. Defaults to today (UTC). |
{
"type": "object",
"examples": [
{
"birthDate": "1990-07-15"
}
],
"required": [
"birthDate"
],
"properties": {
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
},
"birthDate": {
"type": "string",
"format": "date",
"example": "1990-07-15",
"description": "Birth date of the person in YYYY-MM-DD format."
},
"targetDate": {
"type": "string",
"format": "date",
"example": "2026-04-10",
"description": "Date to get phase information for in YYYY-MM-DD format. Defaults to today (UTC)."
}
}
}Calculate a complete biorhythm reading for a given birth date and target date. Returns all 10 cycle values (physical, emotional, intellectual, intuitive, aesthetic, awareness, spiritual, passion, mastery, wisdom), phase detection with 8 distinct states, energy rating (1-10), overall phase assessment, editorial-grade interpretation, actionable advice, and critical day alerts. Perfect for wellness apps, dating platforms, productivity tools, and AI chatbot integrations that need structured biorhythm data.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. |
| compact | boolean | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
| birthDate* | string | Birth date of the person in YYYY-MM-DD format. This is the anchor for all biorhythm cycle calculations. |
| targetDate | string | Date to calculate the reading for in YYYY-MM-DD format. Defaults to today (UTC) if omitted. |
{
"type": "object",
"examples": [
{
"birthDate": "1990-07-15"
}
],
"required": [
"birthDate"
],
"properties": {
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
},
"birthDate": {
"type": "string",
"format": "date",
"example": "1990-07-15",
"description": "Birth date of the person in YYYY-MM-DD format. This is the anchor for all biorhythm cycle calculations."
},
"targetDate": {
"type": "string",
"format": "date",
"example": "2026-04-10",
"description": "Date to calculate the reading for in YYYY-MM-DD format. Defaults to today (UTC) if omitted."
}
}
}{
"type": "object",
"examples": [
{
"birthDate": "1990-07-15"
}
],
"required": [
"birthDate"
],
"properties": {
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
},
"endDate": {
"type": "string",
"format": "date",
"example": "2026-06-30",
"description": "End date of the search range in YYYY-MM-DD format. Defaults to startDate + 90 days. Maximum range: 180 days."
},
"birthDate": {
"type": "string",
"format": "date",
"example": "1990-07-15",
"description": "Birth date of the person in YYYY-MM-DD format."
},
"startDate": {
"type": "string",
"format": "date",
"example": "2026-04-01",
"description": "Start date of the search range in YYYY-MM-DD format. Defaults to today (UTC)."
}
}
}{
"type": "object",
"examples": [
{}
],
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2026-03-06",
"description": "Date for the reading in YYYY-MM-DD format. Defaults to today (UTC). Useful for viewing past daily readings or pre-generating future ones."
},
"lang": {
"enum": [
"en",
"tr",
"de",
"es",
"hi",
"pt",
"fr",
"ru",
"zh-Hans",
"zh-Hant"
],
"type": "string",
"default": "en",
"example": "en",
"description": "Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English."
},
"seed": {
"type": "string",
"example": "user123",
"description": "Optional seed for reproducible readings. Same seed + same date = same reading every time. Pass any unique identifier (userId, email hash, session token) to give each user their own reading for the day. Without a seed every caller receives the same shared reading of the day."
},
"compact": {
"type": "boolean",
"default": false,
"description": "Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
}
}
}