关于 THC Open Mindfulness MCP
THC Open Mindfulness MCP 是面向 MCP 客户端的公开只读服务,提供 The Holistic Care 的正念内容。内容可搜索,涵盖游戏、引导练习、研究摘要、术语表、PanchaVikas 资源和播客,无需身份验证。
主要功能
- 01搜索各类公开正念内容
- 02查找游戏和引导音频练习
- 03搜索研究摘要与术语表
- 04浏览 PanchaVikas 资源和播客
- 05只读工具及静态 MCP 资源
适用场景
- 01按年龄或技能查找正念活动
- 02查找免费的引导音频练习
- 03查询正念术语或研究摘要
- 04按语言或季数查找播客节目
MCP 相关
该服务通过 Streamable HTTP 提供 8 个只读工具和 5 个静态资源。MCP 客户端可免身份验证连接公开端点。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.theholisticcare.com/mcpclaude mcp add --transport http com-theholisticcare-open-mindfulness https://mcp.theholisticcare.com/mcp{"mcpServers":{"com-theholisticcare-open-mindfulness":{"type":"http","url":"https://mcp.theholisticcare.com/mcp"}}}在 Cursor 中打开{"servers":{"com-theholisticcare-open-mindfulness":{"type":"http","url":"https://mcp.theholisticcare.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-theholisticcare-open-mindfulness":{"type":"http","url":"https://mcp.theholisticcare.com/mcp"}}}{"mcpServers":{"com-theholisticcare-open-mindfulness":{"serverUrl":"https://mcp.theholisticcare.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
7| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| age | integer | 否 | |
| limit | integer | 否 | |
| query | string | 是 | |
| skill | string | 否 | |
| audience | string | 否 | |
| category | string | 否 | |
| resource_type | enum | 否 | blog | mindfulness_game | guided_practice | research | glossary | panchavikas_pathway | panchavikas_download |
详细介绍
THC Open Mindfulness MCP
一个公开、只读的 Model Context Protocol 服务,用于访问 The Holistic Care 批准的公开正念资源——互动游戏、免费引导式音频练习、通俗易懂的研究摘要、术语表、公开的 PanchaVikas 框架概览,以及 The Holistic Care Podcast 的剧集(英语和印地语)。
- 生产环境端点:
https://mcp.theholisticcare.com/mcp(Streamable HTTP) - 无需身份验证。 不需要 API 密钥,不需要 OAuth,也无需注册。
- 只读。 此服务中的工具不会创建、修改或删除任何内容。
- 完全由公开 REST API 提供支持——
api.theholisticcare.com(文档,源代码)。此服务绝不会直接连接到 Sanity CMS、数据库或任何支付系统。
目录
为何创建此服务
The Holistic Care 已经通过公开 REST API 发布其正念内容。此服务是对该 API 的轻量 MCP 封装,让任何兼容 MCP 的客户端(Claude Desktop、Claude Code、自定义 Agent 等)都能通过原生工具调用发现和使用这些内容,而无需专门集成 HTTP;同时遵循 REST API 本身已有的内容边界。
架构
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)
- 运行时: Vercel 上的 Next.js(App Router),Node.js 运行时(非 Edge——MCP SDK 需要 Node API)。
- MCP SDK:
@modelcontextprotocol/serverv2(createMcpHandler、McpServer),现代化的高级软件包。@modelcontextprotocol/sdkv1 仅作为开发依赖保留,用于较低级别的类型定义和未来的进程内测试客户端。 - 传输方式: 无状态 Streamable HTTP。每个请求都会创建一个全新的
McpServer实例(src/server.ts)——没有会话存储,因此一个调用方的请求不会泄漏给其他调用方。 - 验证: 使用 Zod v4 schema 验证每个工具输入(
src/schemas.ts);无论 SDK 本身已执行何种检查,服务端都会重新验证。 - 内容边界: 完全通过此服务对上游 REST API 调用的端点来强制执行(
src/lib/apiClient.ts、src/lib/constants.ts)。基础 URL 是编译时常量;任何工具参数都无法更改此服务连接的主机。
工具
所有 8 个工具均为只读,不会执行破坏性操作(每个工具的注释中均为 readOnlyHint: true、destructiveHint: false),并返回少量(默认 6 个,最多 20 个)规范化资源,而非批量转储。
| 工具 | 功能 | 数据来源 |
|---|---|---|
search_mindfulness_resources | 同时在所有公开资源类别(博客、游戏、练习、研究、术语表、PanchaVikas、播客剧集)中进行全文搜索,可选用 resource_type/category/audience/skill/age 筛选。 | GET /v1/search,在客户端筛选 |
get_mindfulness_resource | 根据类型和标识符获取一项特定资源(大多数类别使用 slug,PanchaVikas 和播客剧集使用稳定 ID,例如 PC-S02E03-EN)。 | 对应的专用详情端点,例如 GET /v1/mindfulness-games/{slug} |
find_mindfulness_games | 查找互动式正念游戏,可按年龄、技能、受众和最长时长筛选。 | GET /v1/mindfulness-games 或 GET /v1/search |
find_guided_practices | 查找 Stillness Library 中免费的引导式音频练习(绝不包含付费音轨)。 | GET /v1/practices 或 GET /v1/search |
search_mindfulness_research | 搜索通俗易懂的研究摘要,可按主题和研究类型筛选。 | GET /v1/whitepapers 或 GET /v1/search |
lookup_mindfulness_term | 根据名称查找一个术语表词条,可选用支柱筛选。 | GET /v1/glossary/{slug},失败时回退到搜索 |
find_panchavikas_resources | 查找公开的 PanchaVikas 资源(框架路径和公开可下载指南,不包含私人课程内容)。 | GET /v1/panchavikas/resources,在客户端筛选 |
find_podcast_episodes | 查找 The Holistic Care Podcast 的剧集,可按 language(en/hi)、season 和自由文本 query 筛选。返回摘要、时长、发布日期、剧集页面和视频链接,绝不返回文字稿。 | GET /v1/podcast/episodes,在客户端匹配查询 |
所有返回列表的工具都使用相同的输出结构 { results: Resource[], count: number };get_mindfulness_resource 和 lookup_mindfulness_term 则返回 { found: boolean, resource: Resource | null }。每个工具的确切 Zod 输入架构,以及说明其无法完全准确应用哪些筛选条件的代码注释,请参阅 src/tools/ 下各工具对应的文件(会记录这些限制,不会静默忽略;详情请见下文关于 /v1/search 参数集较窄的说明)。
**已知且有文档记录的限制:**上游 /v1/search 端点仅接受 q/limit/offset,而 /v1/resources 和各类别的专用端点支持更丰富的筛选条件(category、audience、skill、age_min/age_max),但不支持自由文本查询。如果某个工具既需要自由文本搜索,又需要 /v1/search 不支持在服务端应用的筛选条件,它会从 /v1/search 获取更多结果,然后在客户端应用筛选条件(见 src/lib/filters.ts)。受影响工具的描述文本会明确说明这一点,让 MCP 客户端(及使用它的人)了解筛选条件确实有效,但实际是在事后应用,而非由上游 API 本身保证。
资源
五个静态信息型 MCP 资源——它们都不会调用上游 API,因此即使 api.theholisticcare.com 暂时不可用,也始终可用:
| URI | 内容 |
|---|---|
thc://about | 介绍此服务的性质、提供方,以及指向底层 API/来源的链接。 |
thc://taxonomy | 此服务可返回的资源类型,以及每种类型的含义。 |
thc://usage | 合理使用说明:无需身份验证、尽力保证可用性、优先使用 source_url/canonical_url,并保持结果大小适中。 |
thc://content-rights | 软件与内容的许可区分(MIT 代码,内容保留所有权利)——详见下文的许可。 |
thc://panchavikas/framework | 公开的 PanchaVikas 五元素框架概述,并明确说明其有意排除的内容(私有课程)。 |
此服务没有 MCP 提示词,这是有意为之——本项目的规范明确避免仅仅因为协议支持提示词就添加提示词;这里没有需要提示词的内容。
在 MCP 客户端中使用
任何支持 Streamable-HTTP 的 MCP 客户端都可以直接连接到生产环境 URL。对于类似 claude_desktop_config.json 的远程 MCP 配置项:
{
"mcpServers": {
"thc-open-mindfulness": {
"url": "https://mcp.theholisticcare.com/mcp"
}
}
}
客户端无需配置请求头、令牌或环境变量。
本地开发
npm install
npm run dev
随后,MCP 端点可通过 http://localhost:3000/mcp 访问,健康检查端点为 http://localhost:3000/health。
本地开发无需任何密钥。此服务读取的唯一环境变量是 THC_API_BASE_URL(参见 .env.example);如果未设置,则默认使用生产环境 REST API——仅当需要将本地实例指向其他 API 时才设置它(例如,指向本地运行的 thc-open-mindfulness-api 副本)。
npm run typecheck # tsc --noEmit
npm run lint # next lint
npm run test # unit tests (mocked fetch, no network)
npm run test:contract # MCP protocol-level tests, in-process
使用 MCP Inspector 测试
MCP Inspector 是用于交互式测试 MCP 服务工具和资源的参考工具。
npx @modelcontextprotocol/inspector
然后连接到以下任一地址:
http://localhost:3000/mcp(本地npm run dev实例),或https://mcp.theholisticcare.com/mcp(生产环境)
使用“Streamable HTTP”传输选项,且无需身份验证。你应该会看到列出的全部 8 个工具和 5 个资源,并可以逐一交互调用。
部署
本项目作为标准的 Next.js App Router 应用部署到 Vercel。
- 将 GitHub 仓库导入一个新的 Vercel 项目。
- 生产环境部署无需设置环境变量(
THC_API_BASE_URL默认为https://api.theholisticcare.com)。 - 将自定义域名
mcp.theholisticcare.com指向 Vercel 项目(Vercel 控制台 → Domains),并在theholisticcare.com的 DNS 服务商处添加相应的 DNS 记录。 - 部署后,验证:
https://mcp.theholisticcare.com/health返回{"status":"ok",...}https://mcp.theholisticcare.com/mcp能正确响应 MCP Inspector 会话(见上文)npm run smoke:production通过(scripts/smoke-production.mts——端到端测试线上端点)
安全
完整说明请参阅 SECURITY.md。简而言之:没有密钥、没有写入操作、不直接访问 Sanity/数据库、出站请求已加固以防 SSRF、HTTP 传输会验证 Host/Origin 请求头,并采用无状态请求模型。请将漏洞报告发送至 [email protected],而不要创建公开问题。
许可
完整说明请参阅 LICENSING.md。简而言之:本仓库中的代码采用 MIT 许可;它检索并返回的正念内容(游戏、练习、研究摘要、术语表条目、博客摘录、PanchaVikas 概览)版权归 The Holistic Care 所有,© The Holistic Care,保留所有权利,除非特定资源另有说明——这些内容可公开阅读和引用,但不得整体再分发。另请参阅 ATTRIBUTION.md,了解如何在基于此服务构建内容时注明 The Holistic Care。
贡献 / 问题反馈
这是一个小型单用途服务,与 The Holistic Care 的公共 API 和网站一同维护。欢迎通过 GitHub Issues 提交错误报告和拉取请求。有关安全问题,请参阅 SECURITY.md,不要公开提交问题。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。