THC Open Mindfulness MCP

com.theholisticcarePublished by theholisticcare.comOfficial publisherv1.0.0Updated Oct 24, 2026

Read-only mindfulness games, guided practices, research, glossary and PanchaVikas resources.

VerifiedStreamable HTTPWeb executableLocation & LifestyleKnowledge & Memory

Overview

AI-generated overview

Read-only remote MCP server for The Holistic Care's public mindfulness content: games, guided practices, research summaries, glossary, PanchaVikas and podcast.

What you can do
  • Search all public resource families at once with optional type, category, audience, skill and age filters
  • Fetch the full record for one identified resource by type and slug or id
  • Find interactive mindfulness games by age, skill, audience and maximum duration
  • Find free guided audio practices from the Stillness Library
  • Search plain-language research summaries by topic and study type
  • Look up a single glossary term, and find public PanchaVikas resources or podcast episodes by language and season
When to use it
Useful when an assistant should answer questions about mindfulness, meditation, yoga or children's emotional wellbeing from a specific publisher's curated library, or recommend a game, free guided practice, research summary or podcast episode. Not a general web search or medical advice source.
Requirements
Remote Streamable HTTP endpoint; no authentication, API key, headers or environment variables are needed on the client side. Network access to the provider's endpoint and its upstream public REST API.
Before you install
Read-only: no tool creates, modifies or deletes anything. Content is copyright The Holistic Care, all rights reserved, so it is meant to be read and referenced rather than redistributed wholesale. Some filters are applied after retrieval rather than by the upstream API, so results may be narrower than expected. No medical advice is implied.

Installation

In SourceWeft

  1. Open THC Open Mindfulness MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.theholisticcare%2Fopen-mindfulness/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "thc-open-mindfulness": {
      "type": "http",
      "url": "https://mcp.theholisticcare.com/mcp"
    }
  }
}

README

THC Open Mindfulness MCP

A public, read-only Model Context Protocol server for The Holistic Care's approved public mindfulness resources — interactive games, free guided audio practices, plain-language research summaries, a glossary, the public PanchaVikas framework overview, and episodes of The Holistic Care Podcast (English and Hindi).

  • Production endpoint: https://mcp.theholisticcare.com/mcp (Streamable HTTP)
  • No authentication required. No API key, no OAuth, nothing to sign up for.
  • Read-only. No tool in this server creates, modifies, or deletes anything.
  • Backed entirely by a public REST API — api.theholisticcare.com (docs, source). This server never connects to Sanity CMS, a database, or any payment system directly.

Table of contents

Why this exists

The Holistic Care already publishes a public REST API of its mindfulness content. This server is a thin MCP wrapper around that API so any MCP-compatible client (Claude Desktop, Claude Code, custom agents, etc.) can discover and use that content through native tool calls instead of a bespoke HTTP integration — with the same content boundaries the REST API itself already enforces.

Architecture

MCP client (Claude, etc.)        │  Streamable HTTP, JSON-RPC        ▼ thc-mindfulness-mcp  (this repo — Next.js App Router, deployed to Vercel)        │  plain HTTPS GET, no credentials        ▼ api.theholisticcare.com  (sibling REST API project)        │        ▼ Sanity CMS (never touched directly by this server)
  • Runtime: Next.js (App Router) on Vercel, Node.js runtime (not Edge — the MCP SDK needs Node APIs).
  • MCP SDK: @modelcontextprotocol/server v2 (createMcpHandler, McpServer), the modern high-level package. @modelcontextprotocol/sdk v1 is kept only as a dev dependency for lower-level type definitions and future in-process test clients.
  • Transport: Streamable HTTP, stateless. Every request builds a brand-new McpServer instance (src/server.ts) — there is no session store, so nothing about one caller's request can leak into another's.
  • Validation: Zod v4 schemas for every tool input (src/schemas.ts), re-validated server-side regardless of what the SDK itself already checks.
  • Content boundary: enforced entirely by which endpoints this server calls on the upstream REST API (src/lib/apiClient.ts, src/lib/constants.ts). The base URL is a compile-time constant; no tool argument can ever change what host this server talks to.

Tools

All eight tools are read-only, take no destructive action (readOnlyHint: true, destructiveHint: false in every tool's annotations), and return a small (default 6, max 20) list of normalized resources rather than a bulk dump.

ToolWhat it doesBacked by
search_mindfulness_resourcesFree-text search across every public resource family at once (blog, games, practices, research, glossary, PanchaVikas, podcast episodes), with optional resource_type/category/audience/skill/age filters.GET /v1/search, filtered client-side
get_mindfulness_resourceFetch one specific resource by its type + identifier (slug for most families, stable id for PanchaVikas and podcast episodes, e.g. PC-S02E03-EN).The matching dedicated detail endpoint, e.g. GET /v1/mindfulness-games/{slug}
find_mindfulness_gamesFind interactive mindfulness games, filterable by age, skill, audience, and max duration.GET /v1/mindfulness-games or GET /v1/search
find_guided_practicesFind free guided audio practices from the Stillness Library (never paid tracks).GET /v1/practices or GET /v1/search
search_mindfulness_researchSearch plain-language research summaries, filterable by topic and study type.GET /v1/whitepapers or GET /v1/search
lookup_mindfulness_termLook up one glossary term by name, with an optional pillar filter.GET /v1/glossary/{slug}, falling back to search
find_panchavikas_resourcesFind public PanchaVikas resources (framework pathways and the public downloadable guide only — never private curriculum).GET /v1/panchavikas/resources, filtered client-side
find_podcast_episodesFind episodes of The Holistic Care Podcast, filterable by language (en/hi), season and a free-text query. Returns summary, duration, release date, episode page and video link — never the transcript.GET /v1/podcast/episodes, query matched client-side

Every list-returning tool shares the output shape { results: Resource[], count: number }; get_mindfulness_resource and lookup_mindfulness_term return { found: boolean, resource: Resource | null }. See each tool's own file under src/tools/ for its exact Zod input schema and a code comment explaining any filter it cannot apply with full fidelity (documented rather than silently ignored — see the note on /v1/search's narrower parameter set below).

A known, documented limitation: the upstream /v1/search endpoint accepts only q/limit/offset, while /v1/resources and the dedicated per-family endpoints accept richer filters (category, audience, skill, age_min/age_max) but no free-text query. Where a tool needs both free-text search AND a filter /v1/search doesn't support server-side, it over-fetches from /v1/search and applies the filter client-side (see src/lib/filters.ts) — this is called out explicitly in the affected tool's description text so an MCP client (and the person using it) knows the filter is real but applied after the fact, not a guarantee from the upstream API itself.

Resources

Five static, informational MCP resources — none of them call the upstream API, so they're always available even if api.theholisticcare.com is temporarily down:

URIContents
thc://aboutWhat this server is, who provides it, and links to the underlying API/source.
thc://taxonomyThe resource types this server can return, and what each one means.
thc://usageFair-use notes: no auth needed, best-effort availability, prefer source_url/canonical_url, keep result sizes small.
thc://content-rightsThe software-vs-content licensing split (MIT code, all-rights-reserved content) — see Licensing below.
thc://panchavikas/frameworkThe public PanchaVikas five-element framework overview, with an explicit statement of what it deliberately excludes (private curriculum).

There are no MCP prompts in this server, by design — the spec for this project explicitly avoided adding prompts just because the protocol supports them; nothing here needed one.

Using it from an MCP client

Any Streamable-HTTP-capable MCP client can connect directly to the production URL. For a claude_desktop_config.json-style remote MCP entry:

json
{  "mcpServers": {    "thc-open-mindfulness": {      "url": "https://mcp.theholisticcare.com/mcp"    }  }}

No headers, tokens, or environment variables are required on the client side.

Local development

bash
npm installnpm run dev

The MCP endpoint is then available at http://localhost:3000/mcp, and a health check at http://localhost:3000/health.

No secrets are required for local development. The only environment variable this server reads is THC_API_BASE_URL (see .env.example), and it defaults to the production REST API if unset — set it only to point a local instance at a different API (e.g. a locally running copy of thc-open-mindfulness-api).

bash
npm run typecheck   # tsc --noEmitnpm run lint        # next lintnpm run test        # unit tests (mocked fetch, no network)npm run test:contract  # MCP protocol-level tests, in-process

Testing with MCP Inspector

MCP Inspector is the reference tool for interactively exercising an MCP server's tools and resources.

bash
npx @modelcontextprotocol/inspector

Then connect it to either:

  • http://localhost:3000/mcp (a local npm run dev instance), or
  • https://mcp.theholisticcare.com/mcp (production)

using the "Streamable HTTP" transport option and no authentication. You should see all 8 tools and all 5 resources listed, and be able to call each one interactively.

Deployment

This project deploys to Vercel as a standard Next.js App Router app.

  1. Import the GitHub repo into a new Vercel project.
  2. No environment variables are required for a production deploy (THC_API_BASE_URL defaults to https://api.theholisticcare.com).
  3. Point the custom domain mcp.theholisticcare.com at the Vercel project (Vercel dashboard → Domains), and add the corresponding DNS record at the DNS provider for theholisticcare.com.
  4. After deploying, verify:
    • https://mcp.theholisticcare.com/health returns {"status":"ok",...}
    • https://mcp.theholisticcare.com/mcp responds correctly to an MCP Inspector session (see above)
    • npm run smoke:production passes (scripts/smoke-production.mts — exercises the live endpoint end-to-end)

Security

See SECURITY.md for the full write-up. In short: no secrets, no writes, no direct Sanity/database access, SSRF-hardened outbound requests, Host/Origin header validation on the HTTP transport, and a stateless request model. Report a vulnerability to [email protected] rather than opening a public issue.

Licensing

See LICENSING.md for the full explanation. Short version: the code in this repository is MIT licensed; the mindfulness content it retrieves and returns (games, practices, research summaries, glossary entries, blog excerpts, PanchaVikas overviews) is Copyright © The Holistic Care, all rights reserved, unless a specific resource says otherwise — it is public to read and reference, not to redistribute wholesale. See also ATTRIBUTION.md for how to credit The Holistic Care when you build on top of this server.

Contributing / issues

This is a small, single-purpose server maintained alongside The Holistic Care's public API and website. Bug reports and pull requests are welcome via GitHub Issues. For anything security-related, see SECURITY.md instead of opening a public issue.

Source: README.md at commit ce08d67

Tools

8

search_mindfulness_resources

Search mindfulness resources

Free-text search across every public resource family on The Holistic Care (blog articles, mindfulness games, free guided practices, research summaries, glossary terms, public PanchaVikas resources, and podcast episodes). Use this as the general entry point when a request doesn't clearly belong to one specific family — e.g. 'Find something about breathing for anxiety' or 'What has THC published about nondual awareness?'. `resource_type`, `category`, `audience`, `skill`, and `age` are applied as a post-filter over the text search results (the underlying search endpoint only supports free-text query natively), so a narrow combination of filters plus a rare query term can legitimately return few or zero results even if matching resources exist outside the searched batch — for a guaranteed, fully server-side filtered result within one resource family, prefer find_mindfulness_games, find_guided_practices, search_mindfulness_research, lookup_mindfulness_term, or find_podcast_episodes instead.

Parametersagelimitqueryrequiredskillaudiencecategoryresource_type

get_mindfulness_resource

Get one mindfulness resource

Fetches the full detail record for ONE specific, already-identified public resource — use this after search_mindfulness_resources or another find/search tool has surfaced a slug or id you now want the complete record for (e.g. a glossary term's full extended explanation, or a game's full description). For blog/mindfulness_game/guided_practice/research/glossary, `identifier` is the resource's slug. For panchavikas_pathway/panchavikas_download, `identifier` is the resource's stable id (e.g. 'PV-pathway-jal'), since that family has no slug. For podcast_episode, `identifier` is the episode id (e.g. 'PC-S02E03-EN'). A resource that does not exist and a resource that exists but is private behave identically here (a clean not-found result) — this tool never confirms or denies the existence of private content.

Parametersidentifierrequiredresource_typerequired

find_mindfulness_games

Find mindfulness games

Finds interactive mindfulness games for children, teens, or adults from The Holistic Care's public games library — e.g. 'a grounding game for a 9-year-old' or 'a short breathing game under 5 minutes'. `age` and `max_duration_minutes` only match games whose own published metadata actually states an age range or duration; a game with no stated age range is never assumed to fit. Most games in this library are free; a small number require an email to access — check each result's `access` field rather than assuming.

Parametersagelimitqueryskillaudiencemax_duration_minutes

find_guided_practices

Find free guided practices

Finds free guided audio practices from The Holistic Care's Stillness Library (short guided meditations, breathing practices, and Yoga Nidra sessions) — e.g. 'a free practice for someone upset after an argument' or 'a short breathing practice for children'. Every result returned by this tool is free; paid Stillness Library tracks are never exposed through the public API this server relies on. There is no audience metadata on practices — use category: 'children' for child-appropriate practices, and treat other audience assumptions as unsupported rather than inferred.

Parameterslimitquerycategorymax_duration_minutes

search_mindfulness_research

Search mindfulness research summaries

Finds plain-language summaries of published research behind The Holistic Care's mindfulness, meditation, and yoga content — e.g. 'research on yoga nidra and sleep' or 'meta-analyses on mindfulness for anxiety'. Each result is a summary of a real study (with authors, year, journal, and a stated limitations note where available), never a THC-authored medical claim. This tool does not provide medical advice, diagnosis, or treatment guidance, and study findings should not be read as guarantees of outcome for any individual.

Parameterslimitquerytopicstudy_type

lookup_mindfulness_term

Look up a mindfulness/yoga/nonduality term

Looks up the definition of a single mindfulness, yoga, meditation, kundalini, ayurveda, or nonduality term from The Holistic Care's public glossary — e.g. 'What does aparigraha mean?' or 'define yoga nidra'. Returns at most one best-matching term with its plain-language definition and, when available, etymology and related terms. If the term genuinely isn't in the glossary, this returns a clear no-match result rather than a guessed or invented definition.

Parameterstermrequiredpillar

find_panchavikas_resources

Find public PanchaVikas resources

Finds The Holistic Care's public PanchaVikas resources — the five-element (Prithvi/Jal/Agni/Vayu/Akash) child-development framework's public overview, public pathway summaries, and the public downloadable guide — e.g. 'public PanchaVikas resources related to Jal' or 'what is the PanchaVikas Prithvi pathway about'. This tool ONLY has access to public framework material. It does NOT have access to, and cannot retrieve, the private 216-session school curriculum, session plans, teacher scripts, or any other proprietary implementation material — a request for that content should be answered by explaining that only the public framework overview and pathway summaries are available here, and returning those if relevant.

Parameterslimitqueryelementresource_type

find_podcast_episodes

Find podcast episodes

Finds episodes of The Holistic Care Podcast: short episodes for parents, teachers and caregivers on children's emotional wellbeing, published in English ('en') and Hindi ('hi'). Examples: 'an episode about a child's anger', 'all Hindi episodes in season 2'. Filter with `language` and `season`; `query` matches every word against the episode title, summary and key question. Each result gives the episode's summary, duration, release date, the episode page (canonical_url) and the YouTube video (video_url). Transcripts and companion guides are not available through this server — link to the episode page instead. Use get_mindfulness_resource with resource_type 'podcast_episode' and an id such as 'PC-S02E03-EN' to fetch one episode.

Parameterslimitqueryseasonlanguage

Version history

1
  1. v1.0.0LatestSep 29, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.