LeaderboardBack to leaderboard — loading return destination
Opening report…
Loading report overview
M
MCP server
server.example.com/mcp
Tools and resources for your MCP client, with a public quality report and detailed checks.
Protocol
MCP 2025-11-25
Server version
1.0.0
Website
server.example.com
Supports
Tools · Resources
Overall score
90 /100
How is this score calculated?
Server metadata
Loading server metadata
Reviewed90/100
Discoverability
Loading discoverability
Reviewed90/100
Protocol
Loading protocol
Reviewed90/100
Tools
Loading tools
Reviewed90/100
MCP Apps
Loading mcp apps
Reviewed90/100
Tool documentation quality
Loading tool documentation quality
Reviewed90/100
LeaderboardBack to leaderboard — loading return destination
H
Hypnothera
hypnothera.ai/api/mcp
Create personalized guided hypnosis sessions and multi-day journeys for sleep, calm, focus and confidence on a hypnothera.ai account, render them as narrated audio, and search a library of ready-made sessions.
Create personalized guided hypnosis sessions and multi-day journeys for sleep, calm, focus and confidence on a hypnothera.ai account, render them as narrated audio, and search a library of ready-made sessions.
Hypnothera makes guided hypnosis sessions on the user's hypnothera.ai account and has a library of ready-made sessions.
- Find existing sessions: list_topics, then search_sessions, then get_session. These cost nothing.
- Make a new session: call get_account to check credits, agree a brief with the user, and call create_session only after they approve it (1 credit). The script takes a minute or two; call get_session until its status is completed or script_only.
- Turn a script into audio: pick a voice from list_voices where available is true, confirm the voice and estimated credits (about 1 per minute) with the user, then call render_audio once. After a few minutes get_session returns has_audio and audio_url.
- Multi-day journeys: pass journey_days and journey_outline to create_session, then create each later day with continue_journey, one day per user request. list_journeys shows progress and the next day.
- Write briefs and notes in wellness language (relaxation, sleep, focus, confidence) with no names or identifying details, and don't present sessions as medical treatment.
- Never buy credits or plans for the user; point them to https://hypnothera.ai/pricing.
- Every result has ok; when ok is false, message says what went wrong and what to do next.
Discoverability
0/6 passed0 of 6 passed0/100
Client listings and public setup information.
mcp.json or server-card.json
Either mcp.json or an MCP Server Card declaring this endpoint passes.
No matching mcp.json manifest or MCP Server Card was found at the checked URLs.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Returns the connected hypnothera.ai account's email, subscription tier, and credit balance. Call this before creating a session to confirm the connection and available credits. Creating a session script costs 1 credit; rendering it as audio afterwards with render_audio or on hypnothera.ai costs about 1 more credit per minute of audio, so a 5-minute session totals about 6 credits.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Creates a personalized hypnosis session script (optionally the first day of a multi-day journey) on the connected hypnothera.ai account. Spends 1 credit for the script; this tool does not render audio — render it afterwards with render_audio or on hypnothera.ai, which costs about 1 more credit per minute of audio. ONLY call after the user has explicitly approved the brief. The brief must use wellness language (relaxation, focus, sleep, confidence) and contain no names or identifying details. Returns the new script_id (the script is written over the next minute or two; check it with get_session), the journey's collection_id when journey_days was set, and next_step_url to open it on hypnothera.ai.
The description explains the capability, when to use it, and what to expect.
Inputs78/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
specific_needs
The brief the user approved: what the session should help with, the situation around it, and how they want to feel afterwards.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
script_type
Session format: sleep for falling asleep, morning for starting the day, nsdr for non-sleep deep rest, lucid_dreaming for lucid dream practice, visualization for guided imagery, standard for anything else. Omitted means standard.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
style
Writing style of the script. Use the user's stated preference; omitted means mindfulness.
Clear enough to supply this argument.
title
Name for a multi-day journey, used in its playlist name ("<journey_days> Days: <title>"). Only used when journey_days is set; the session's own title is written with the script.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
summary
One-line summary of the agreed brief, passed to the script writer as extra context alongside specific_needs.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
language
Language to write the script in, as a name or code, e.g. english, es, pt-br or hebrew. Omitted means english. Arabic needs a dialect choice, so create Arabic sessions on hypnothera.ai instead.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
journey_days
Number of days when starting a multi-day journey. This call creates day 1; continue_journey creates each later day. Omit for a single session.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
journey_outline › items › title
Short name for this day's session.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
journey_outline › items › description
What this day's session focuses on; it is given to the script writer as that day's focus.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
journey_outline › items › directives
How to structure this day's session, for example a technique to use or where to end.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the script being written."
},
"script_id": {
"type": "string",
"description": "The new session's id, for get_session and render_audio."
},
"collection_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The journey_id when a multi-day journey was started, otherwise null."
},
"next_step_url": {
"type": "string",
"description": "Page on hypnothera.ai for the new session, or for the journey when one was started."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "create_session",
"title": "Create a Hypnothera session",
"description": "Creates a personalized hypnosis session script (optionally the first day of a multi-day journey) on the connected hypnothera.ai account. Spends 1 credit for the script; this tool does not render audio — render it afterwards with render_audio or on hypnothera.ai, which costs about 1 more credit per minute of audio. ONLY call after the user has explicitly approved the brief. The brief must use wellness language (relaxation, focus, sleep, confidence) and contain no names or identifying details. Returns the new script_id (the script is written over the next minute or two; check it with get_session), the journey's collection_id when journey_days was set, and next_step_url to open it on hypnothera.ai.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"specific_needs"
],
"properties": {
"style": {
"enum": [
"mindfulness",
"classic",
"conversational",
"storytelling",
"direct",
"experimental",
"nlp",
"energetic",
"rapid",
"somatic"
],
"type": "string",
"description": "Writing style of the script. Use the user's stated preference; omitted means mindfulness."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Name for a multi-day journey, used in its playlist name (\"<journey_days> Days: <title>\"). Only used when journey_days is set; the session's own title is written with the script."
},
"summary": {
"type": "string",
"maxLength": 500,
"description": "One-line summary of the agreed brief, passed to the script writer as extra context alongside specific_needs."
},
"language": {
"type": "string",
"maxLength": 40,
"description": "Language to write the script in, as a name or code, e.g. english, es, pt-br or hebrew. Omitted means english. Arabic needs a dialect choice, so create Arabic sessions on hypnothera.ai instead."
},
"script_type": {
"enum": [
"standard",
"sleep",
"morning",
"nsdr",
"lucid_dreaming",
"visualization"
],
"type": "string",
"description": "Session format: sleep for falling asleep, morning for starting the day, nsdr for non-sleep deep rest, lucid_dreaming for lucid dream practice, visualization for guided imagery, standard for anything else. Omitted means standard."
},
"journey_days": {
"type": "integer",
"maximum": 30,
"minimum": 2,
"description": "Number of days when starting a multi-day journey. This call creates day 1; continue_journey creates each later day. Omit for a single session."
},
"specific_needs": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "The brief the user approved: what the session should help with, the situation around it, and how they want to feel afterwards."
},
"journey_outline": {
"type": "array",
"items": {
"type": "object",
"required": [
"title",
"description"
],
"properties": {
"title": {
"type": "string",
"maxLength": 120,
"description": "Short name for this day's session."
},
"directives": {
"type": "string",
"maxLength": 400,
"description": "How to structure this day's session, for example a technique to use or where to end."
},
"description": {
"type": "string",
"maxLength": 400,
"description": "What this day's session focuses on; it is given to the script writer as that day's focus."
}
}
},
"maxItems": 30,
"description": "One entry per day when journey_days is set. Each later day is created with continue_journey."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the script being written."
},
"script_id": {
"type": "string",
"description": "The new session's id, for get_session and render_audio."
},
"collection_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The journey_id when a multi-day journey was started, otherwise null."
},
"next_step_url": {
"type": "string",
"description": "Page on hypnothera.ai for the new session, or for the journey when one was started."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Lists the connected account's multi-day journeys (most recent first, up to 10), or one journey when journey_id is given. Each journey shows its planned days, which days have a session, each session's status, and the next day to create. Use it to find the journey_id for continue_journey or to check whether a day's script has finished.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
journey_id
The journey to show: collection_id from create_session, or journey_id from an earlier list_journeys call. Omit to list recent journeys.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"journeys": {
"type": "array",
"items": {
"type": "object",
"required": [
"journey_id",
"name",
"target_days",
"days_created",
"complete",
"next_day",
"days",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The journey's page on hypnothera.ai."
},
"days": {
"type": "array",
"items": {
"type": "object",
"required": [
"day",
"title",
"description",
"created",
"script_id",
"status"
],
"properties": {
"day": {
"type": "number",
"description": "Day number, starting at 1."
},
"title": {
"type": "string",
"description": "The day's planned title."
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Script status: draft or processing while it is being written, completed or script_only when it is ready for audio, processing_audio or finalizing while audio renders, error if generation failed."
},
"created": {
"type": "boolean",
"description": "Whether this day's session has been created."
},
"script_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The day's session id, or null if not created yet."
},
"description": {
"type": "string",
"description": "The day's planned focus; empty when the journey has no plan."
}
},
"additionalProperties": false
},
"description": "Every planned day, in order."
},
"name": {
"type": "string",
"description": "The journey's name."
},
"complete": {
"type": "boolean",
"description": "True once every planned day has a session."
},
"next_day": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The day continue_journey would create next, or null when complete."
},
"journey_id": {
"type": "string",
"description": "Pass to continue_journey or list_journeys."
},
"target_days": {
"type": "number",
"description": "Planned number of days."
},
"days_created": {
"type": "number",
"description": "How many days have a session so far."
}
},
"additionalProperties": false
},
"description": "Matching journeys, most recent first."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "list_journeys",
"title": "List Hypnothera journeys",
"description": "Lists the connected account's multi-day journeys (most recent first, up to 10), or one journey when journey_id is given. Each journey shows its planned days, which days have a session, each session's status, and the next day to create. Use it to find the journey_id for continue_journey or to check whether a day's script has finished.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"journey_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The journey to show: collection_id from create_session, or journey_id from an earlier list_journeys call. Omit to list recent journeys."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"journeys": {
"type": "array",
"items": {
"type": "object",
"required": [
"journey_id",
"name",
"target_days",
"days_created",
"complete",
"next_day",
"days",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The journey's page on hypnothera.ai."
},
"days": {
"type": "array",
"items": {
"type": "object",
"required": [
"day",
"title",
"description",
"created",
"script_id",
"status"
],
"properties": {
"day": {
"type": "number",
"description": "Day number, starting at 1."
},
"title": {
"type": "string",
"description": "The day's planned title."
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Script status: draft or processing while it is being written, completed or script_only when it is ready for audio, processing_audio or finalizing while audio renders, error if generation failed."
},
"created": {
"type": "boolean",
"description": "Whether this day's session has been created."
},
"script_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The day's session id, or null if not created yet."
},
"description": {
"type": "string",
"description": "The day's planned focus; empty when the journey has no plan."
}
},
"additionalProperties": false
},
"description": "Every planned day, in order."
},
"name": {
"type": "string",
"description": "The journey's name."
},
"complete": {
"type": "boolean",
"description": "True once every planned day has a session."
},
"next_day": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The day continue_journey would create next, or null when complete."
},
"journey_id": {
"type": "string",
"description": "Pass to continue_journey or list_journeys."
},
"target_days": {
"type": "number",
"description": "Planned number of days."
},
"days_created": {
"type": "number",
"description": "How many days have a session so far."
}
},
"additionalProperties": false
},
"description": "Matching journeys, most recent first."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Creates the next planned day of a multi-day journey as a follow-up to the previous day's session, using that day's planned focus. Requires a Premium plan and the previous day's script to be finished. Spends credits for the new script like create_session; rendering audio with render_audio or on hypnothera.ai costs more. Creates one day per call. ONLY call after the user has asked for the next day, and never call it repeatedly to create several days at once. Returns the day number created, its script_id, and next_step_url to the journey on hypnothera.ai.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
journey_id
The journey's collection_id from create_session or list_journeys.
Clear enough to supply this argument.
notes
The user's notes on how the previous day went or what to focus on next, in wellness language with no names or identifying details. Passed to the script writer with the day's planned focus.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"day": {
"type": "number",
"description": "The day number that was created."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the script being written."
},
"script_id": {
"type": "string",
"description": "The new day's session id, for get_session and render_audio."
},
"journey_id": {
"type": "string",
"description": "The journey that was continued."
},
"target_days": {
"type": "number",
"description": "Planned number of days in the journey."
},
"next_step_url": {
"type": "string",
"description": "The journey's page on hypnothera.ai."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "continue_journey",
"title": "Create the next day of a Hypnothera journey",
"description": "Creates the next planned day of a multi-day journey as a follow-up to the previous day's session, using that day's planned focus. Requires a Premium plan and the previous day's script to be finished. Spends credits for the new script like create_session; rendering audio with render_audio or on hypnothera.ai costs more. Creates one day per call. ONLY call after the user has asked for the next day, and never call it repeatedly to create several days at once. Returns the day number created, its script_id, and next_step_url to the journey on hypnothera.ai.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"journey_id"
],
"properties": {
"notes": {
"type": "string",
"maxLength": 600,
"description": "The user's notes on how the previous day went or what to focus on next, in wellness language with no names or identifying details. Passed to the script writer with the day's planned focus."
},
"journey_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The journey's collection_id from create_session or list_journeys."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"day": {
"type": "number",
"description": "The day number that was created."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the script being written."
},
"script_id": {
"type": "string",
"description": "The new day's session id, for get_session and render_audio."
},
"journey_id": {
"type": "string",
"description": "The journey that was continued."
},
"target_days": {
"type": "number",
"description": "Planned number of days in the journey."
},
"next_step_url": {
"type": "string",
"description": "The journey's page on hypnothera.ai."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Lists the themes of Hypnothera's public session library, such as deep sleep, calm and relaxation, focus, confidence and changing a habit. Each topic has an id to pass to search_sessions and a human-readable label. The list is fixed and doesn't depend on the account. Costs nothing.
The description explains the capability, when to use it, and what to expect.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"topics": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string",
"description": "Topic id to pass to search_sessions."
},
"label": {
"type": "string",
"description": "Human-readable topic name."
}
},
"additionalProperties": false
}
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "list_topics",
"title": "List Hypnothera library topics",
"description": "Lists the themes of Hypnothera's public session library, such as deep sleep, calm and relaxation, focus, confidence and changing a habit. Each topic has an id to pass to search_sessions and a human-readable label. The list is fixed and doesn't depend on the account. Costs nothing.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"topics": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"label"
],
"properties": {
"id": {
"type": "string",
"description": "Topic id to pass to search_sessions."
},
"label": {
"type": "string",
"description": "Human-readable topic name."
}
},
"additionalProperties": false
}
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Searches Hypnothera's library of ready-made guided hypnosis sessions by query, topic, or language. Returns up to 10 sessions with title, description, duration, language, and a listen_url opening each session page. Listening requires a signed-in Premium account and does not consume generation credits. Does not create content or change the account.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
query
Words that must all appear in a session's title or description, e.g. "public speaking". Use topic to filter by theme.
Clear enough to supply this argument.
topic
Only sessions on this theme. Use an id returned by list_topics, e.g. sleep.
Clear enough to supply this argument.
language
Only sessions in this language, as a name or code, e.g. english or es.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"sessions": {
"type": "array",
"items": {
"type": "object",
"required": [
"script_id",
"title",
"description",
"duration_minutes",
"language",
"listen_url"
],
"properties": {
"title": {
"type": "string",
"description": "Session title."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Language the session is narrated in."
},
"script_id": {
"type": "string",
"description": "Session id, for get_session."
},
"listen_url": {
"type": "string",
"description": "The session's page on hypnothera.ai; playing it needs a Premium account."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Short description, up to 300 characters."
},
"duration_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Approximate length in minutes."
}
},
"additionalProperties": false
},
"description": "Matches, sessions whose title contains every query word first."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "search_sessions",
"title": "Search Hypnothera sessions",
"description": "Searches Hypnothera's library of ready-made guided hypnosis sessions by query, topic, or language. Returns up to 10 sessions with title, description, duration, language, and a listen_url opening each session page. Listening requires a signed-in Premium account and does not consume generation credits. Does not create content or change the account.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many sessions to return. Omitted means 5."
},
"query": {
"type": "string",
"maxLength": 100,
"description": "Words that must all appear in a session's title or description, e.g. \"public speaking\". Use topic to filter by theme."
},
"topic": {
"type": "string",
"maxLength": 40,
"description": "Only sessions on this theme. Use an id returned by list_topics, e.g. sleep."
},
"language": {
"type": "string",
"maxLength": 40,
"description": "Only sessions in this language, as a name or code, e.g. english or es."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"sessions": {
"type": "array",
"items": {
"type": "object",
"required": [
"script_id",
"title",
"description",
"duration_minutes",
"language",
"listen_url"
],
"properties": {
"title": {
"type": "string",
"description": "Session title."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Language the session is narrated in."
},
"script_id": {
"type": "string",
"description": "Session id, for get_session."
},
"listen_url": {
"type": "string",
"description": "The session's page on hypnothera.ai; playing it needs a Premium account."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Short description, up to 300 characters."
},
"duration_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Approximate length in minutes."
}
},
"additionalProperties": false
},
"description": "Matches, sessions whose title contains every query word first."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Returns one session by script_id: a public library session, or a session on the connected account (for example one made with create_session). For the account's own sessions it includes status and has_audio, so it can check whether a script has finished and whether audio has been rendered; once audio exists, audio_url is a direct link that plays for about two hours without signing in. listen_url is the session's page on hypnothera.ai. Costs nothing.
The description explains the capability, when to use it, and what to expect.
Inputs98/100
Input documentation gives an agent enough context to populate the arguments.
script_id
A script_id from search_sessions, create_session or list_journeys.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"session": {
"type": "object",
"required": [
"script_id",
"source",
"title",
"description",
"duration_minutes",
"language",
"status",
"has_audio",
"audio_url",
"listen_url"
],
"properties": {
"title": {
"type": "string",
"description": "Session title."
},
"source": {
"enum": [
"library",
"account"
],
"type": "string",
"description": "library for a public library session, account for one on the connected account."
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Script status: draft or processing while it is being written, completed or script_only when it is ready for audio, processing_audio or finalizing while audio renders, error if generation failed."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Language of the session."
},
"audio_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Direct audio link for the account's own sessions once audio exists, playable for about two hours without signing in. Null for library sessions."
},
"has_audio": {
"type": "boolean",
"description": "Whether narrated audio exists for the session."
},
"script_id": {
"type": "string",
"description": "Session id."
},
"listen_url": {
"type": "string",
"description": "The session's page on hypnothera.ai (its create page while an account session has no audio yet)."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Short description, up to 300 characters."
},
"duration_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Approximate length in minutes."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "get_session",
"title": "Get a Hypnothera session",
"description": "Returns one session by script_id: a public library session, or a session on the connected account (for example one made with create_session). For the account's own sessions it includes status and has_audio, so it can check whether a script has finished and whether audio has been rendered; once audio exists, audio_url is a direct link that plays for about two hours without signing in. listen_url is the session's page on hypnothera.ai. Costs nothing.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"script_id"
],
"properties": {
"script_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "A script_id from search_sessions, create_session or list_journeys."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"session": {
"type": "object",
"required": [
"script_id",
"source",
"title",
"description",
"duration_minutes",
"language",
"status",
"has_audio",
"audio_url",
"listen_url"
],
"properties": {
"title": {
"type": "string",
"description": "Session title."
},
"source": {
"enum": [
"library",
"account"
],
"type": "string",
"description": "library for a public library session, account for one on the connected account."
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Script status: draft or processing while it is being written, completed or script_only when it is ready for audio, processing_audio or finalizing while audio renders, error if generation failed."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Language of the session."
},
"audio_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Direct audio link for the account's own sessions once audio exists, playable for about two hours without signing in. Null for library sessions."
},
"has_audio": {
"type": "boolean",
"description": "Whether narrated audio exists for the session."
},
"script_id": {
"type": "string",
"description": "Session id."
},
"listen_url": {
"type": "string",
"description": "The session's page on hypnothera.ai (its create page while an account session has no audio yet)."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Short description, up to 300 characters."
},
"duration_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Approximate length in minutes."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Lists the narrator voices on Hypnothera with name, gender, accent, language, a preview_url, and whether the connected account's plan can use each one (available). Voices are chosen when audio is rendered. Costs nothing.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
language
Only voices for this language, as a name or code, e.g. english or es. Voices with no set language are always included.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Renders one of the connected account's finished session scripts as guided audio in the chosen voice. Spends about 1 credit per minute of audio (estimated_credits in the result), charged by Hypnothera. ONLY call after the user has approved the voice and the credit cost, and call it once per session: it is not idempotent. Pick voice_id from list_voices where available is true. Returns estimated_minutes and estimated_credits, also when the account has too few credits. Rendering takes a few minutes; then get_session returns has_audio and a playable audio_url.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
script_id
A script_id from create_session, continue_journey or list_journeys whose script has finished.
Clear enough to supply this argument.
voice_id
A voice_id from list_voices.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the audio render."
},
"script_id": {
"type": "string",
"description": "The session being rendered."
},
"next_step_url": {
"type": "string",
"description": "The session's listen page on hypnothera.ai, where the audio appears once rendered."
},
"estimated_credits": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated credits the render costs."
},
"estimated_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated audio length in minutes."
}
},
"additionalProperties": false
}
Original tool metadata
{
"name": "render_audio",
"title": "Render a Hypnothera session as audio",
"description": "Renders one of the connected account's finished session scripts as guided audio in the chosen voice. Spends about 1 credit per minute of audio (estimated_credits in the result), charged by Hypnothera. ONLY call after the user has approved the voice and the credit cost, and call it once per session: it is not idempotent. Pick voice_id from list_voices where available is true. Returns estimated_minutes and estimated_credits, also when the account has too few credits. Rendering takes a few minutes; then get_session returns has_audio and a playable audio_url.",
"inputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"script_id",
"voice_id"
],
"properties": {
"voice_id": {
"type": "string",
"maxLength": 120,
"description": "A voice_id from list_voices."
},
"script_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "A script_id from create_session, continue_journey or list_journeys whose script has finished."
}
}
},
"outputSchema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ok"
],
"properties": {
"ok": {
"type": "boolean",
"description": "False when the call failed; message says why."
},
"message": {
"type": "string",
"description": "What happened and, when relevant, what to do next. Relay it to the user."
},
"task_id": {
"type": "string",
"description": "Background job id for the audio render."
},
"script_id": {
"type": "string",
"description": "The session being rendered."
},
"next_step_url": {
"type": "string",
"description": "The session's listen page on hypnothera.ai, where the audio appears once rendered."
},
"estimated_credits": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated credits the render costs."
},
"estimated_minutes": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Estimated audio length in minutes."
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01List Hypnothera library topicsLists the themes of Hypnothera's public session library, such as deep sleep, calm and relaxation, focus, confidence and changing a habit.
02Search Hypnothera sessionsSearches Hypnothera's library of ready-made guided hypnosis sessions by query, topic, or language.
03List Hypnothera voicesLists the narrator voices on Hypnothera with name, gender, accent, language, a preview_url, and whether the connected account's plan can use each one (availa…
04Get connected Hypnothera accountReturns the connected hypnothera.ai account's email, subscription tier, and credit balance.
05List Hypnothera journeysLists the connected account's multi-day journeys (most recent first, up to 10), or one journey when journey_id is given.
Want to run these tasks against your MCP server with us?
Hypnothera setup, tools, quality score, publishing readiness, and alternatives.
How do I add Hypnothera to Claude, ChatGPT, or Cursor?
Add Hypnothera to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://hypnothera.ai/api/mcp.
Is Hypnothera MCP ready for ChatGPT and Claude?
As of November 11, 2026, Hypnothera scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is Hypnothera's MCP tool documentation?
As of November 11, 2026, Hypnothera scores 94/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 9 of 9 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to Hypnothera?
As of November 12, 2026, alternatives to Hypnothera in design-creative on the Manufact MCP leaderboard include Rainbrand, Dayfaro, Dayfaro, Vectorize: logo to SVG, and MotionVid.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.