THC Open Mindfulness MCP

com.theholisticcarev1.0.0更新於 Sep 29, 2026

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

已驗證Streamable HTTP可網頁執行Location & LifestyleKnowledge & Memory

概覽

AI 產生的概覽

唯讀存取 The Holistic Care 的公開正念內容:遊戲、引導音訊練習、研究摘要、術語表與 PanchaVikas 資源。

功能
將公開的正念內容 REST API 包裝成七個唯讀工具。助理可以一次搜尋所有資源類型,依類型與 slug 或 id 取得特定資源,依年齡、技能、受眾或時長尋找互動遊戲,尋找免費引導音訊練習,搜尋淺白語言的研究摘要,查詢術語表項目,以及尋找公開的 PanchaVikas 路徑與可下載指南。另有五個靜態資訊資源,說明伺服器本身、資源分類、使用說明、內容權利與 PanchaVikas 框架。
適用情境
當助理需要根據該發布者的公開正念資料庫回答問題或推薦活動,而非進行一般網路搜尋時適用。適合需要遊戲、引導練習或淺白研究摘要的健康、教育或研究助理情境。
執行需求
遠端 Streamable HTTP 端點;用戶端不需要身分驗證、API 金鑰、OAuth、標頭或環境變數。伺服器本身只讀取選用的 THC_API_BASE_URL 變數,預設指向正式環境 REST API。需要能連線至該端點的網路。
安裝前請注意
唯讀:沒有任何工具會建立、修改或刪除內容,伺服器也不直接連接 CMS、資料庫或支付系統。取回的正念內容版權保留,可公開閱讀與引用,但不可整批再散布;程式碼為 MIT 授權。可用性為盡力而為,部分篩選是在超額取得後於用戶端套用,結果可能不完整。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 THC Open Mindfulness MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "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, and the public PanchaVikas framework overview.

  • 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 seven 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), 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).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

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 7 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.

來源:README.md,提交 e9e6a73

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v1.0.0最新Sep 29, 2026