@practicemakes/mcp

中文文档
26.1101.2发布于 2026/11/02UNLICENSEDTypeScriptES Module

MCP服务器将practicemakeprod数据(只读)暴露给Claude,身份验证为调用用户自己的Firebase身份。

中文使用文档
文档目录10 节
  1. 它是如何工作的
  2. 使用它(已发布的包)
  3. 获取刷新令牌
  4. Develop(从monoorepo开始)
  5. 发布
  6. 工具(阅读)
  7. 服务器标识符
  8. 工具(写)
  9. 在启用写工具之前,请先阅读本文
  10. 路线图

@practicemakes / mcp

一个小 MCP 公开的服务器 PracticeMakes 生产数据(只读)到Claude进行管理和开发工作-并显示您的 规划师积压 因此,您自己的任务列表可以驱动开发。

它的身份验证为 您自己的平台标识 (您的Firebase用户),因此每个结果都由后端限定为您的实际角色和组织。SYSADMIN可以看到整个平台;普通用户只能看到他们的组织。这样就可以将同一台服务器交给平台上的其他用户。

它是如何工作的

Claude  ──stdio──▶  @practicemakes/mcp  ──HTTPS Bearer──▶  https://api.practicemakes.io/api/...
                    (refreshes your Firebase ID token)      (existing authz + business logic)

没有后端更改,也没有秘密凭据——它使用的Firebase Web API密钥是 公共 客户机值(作为默认值嵌入),因此每个用户仅为 他们自己的 帐户。只读的。

使用它(已发布的包)

一旦发布到npm,任何平台用户都可以连接到一行代码——无需克隆或构建:

claude mcp add practicemakes \
  --env FIREBASE_REFRESH_TOKEN=<your-refresh-token> \
  -- npx -y @practicemakes/mcp

在开发过程中指向本地后端 --env PM_API_BASE_URL=http://localhost:9090.

获取刷新令牌

  • 账户密码: 创建 .env (见 .env.example), PM_EMAIL / PM_PASSWORD、运行 yarn workspace @practicemakes/mcp login -它打印一个 FIREBASE_REFRESH_TOKEN=... 线路使用。
  • 谷歌和苹果登录: 登录web应用,打开DevTools→Application→IndexedDB→ firebaseLocalStorage →授权用户记录,并复制 stsTokenManager.refreshToken.

Develop(从monoorepo开始)

yarn install                                   # at repo root, links the workspace
yarn workspace @practicemakes/mcp build
cp packages/mcp/.env.example packages/mcp/.env # then fill in a credential
yarn workspace @practicemakes/mcp smoke        # end-to-end check against prod

smoke 打印您的身份验证,有多少组织是可见的,以及您的Planner待办事项。要直接在Claude中运行本地构建,而不是在已发布的包中运行:

claude mcp add practicemakes \
  --env FIREBASE_REFRESH_TOKEN=... \
  -- node "$(pwd)/packages/mcp/dist/index.js"

发布

版本按单一日历方案(26.MMDD.patch). 适用范围:

yarn workspace @practicemakes/mcp publish   # runs prepublishOnly (clean + build) first

工具(阅读)

工具它返回什么
list_organizations对您可见的组织(SYSADMIN→all)
get_organization一个组织按UUID
get_my_profile您的配置文件+权利/角色/org上下文
list_profiles配置文件(SYSADMIN→所有,ADMIN→您的组织)
get_profile一个配置文件按UUID
get_my_planner_tasks你的计划表待办事项(推动开发)
search_tasks搜索任务;通过显示已完成/已删除/已休眠 showFields
get_task按UUID执行一个任务
list_workflows你的Planner工作流程
get_workflow一个工作流,与运行状态相结合
get_billing_config您的组织的计费/权利配置(需要一个required platform)
list_servers受监视的服务器+下面工具需要的两个标识符
get_server一台服务器的配置,包括其维护窗口
list_server_statuses的生活状态 所有 您的服务器(现在有任何问题吗)
get_server_uptime正常运行时间%在过去的1-168小时,从原始心跳
get_server_uptime_daily每天的正常运行时间历史记录超出心跳保留
list_server_incidents一台服务器的停机历史记录,计划内与计划外

服务器标识符

监控工具采用 两个不同的、不可互换的标识符和传递错误 其中一个返回404,读起来像是丢失了服务器。 list_servers 返回:

标识符所使用的路线的家庭
serverShortLinkget_server_uptime, get_server_uptime_daily/api/public/... (未经身份验证的)
serverIdget_server, list_server_incidents/api/server/... (org-scoped认证)

两者都不是UUID - serverId 是操作符指定的id(例如: web-01)。

工具(写)

每个写入工具在发送任何内容之前都要求您确认确切的请求。

工具它是做什么的
create_task在当前的组织上下文中创建一个Planner任务(需要ADMIN)
complete_task集 completedAt 在一个任务上——完成计划者驱动的开发循环的工具
switch_org_context切换您的活动组织上下文(SYSADMIN→任意组织,否则仅限邀请)

在启用写工具之前,请先阅读本文

这些工具以您的身份运行,具有您的所有权限。 身份验证是针对每个用户的Firebase ID令牌,而不是服务帐户——没有只读角色,没有单独的服务标识,并且 它们背后没有服务器端允许列表。如果您的帐户是SYSADMIN,那么写工具可以跨写 平台上的每个租户。工具列表和确认提示就是整个安全 边界。

确认需要客户的支持。 门采用MCP 引出. 如果你的客户没有 在握手的过程中,广告的启发支持,没有渠道问你,每一次 编写工具 拒绝,什么也不送 -它不会在未经确认的情况下退回到书面状态。这个 错误指定了它拒绝执行的变异。这是故意的:默默地进行 让那些不同意被要求的客户失去保护。

switch_org_context 会话是全球性的。 它改变了你的侧写,所以它改变了什么 每一个 后读工具 返回会话的其余部分,而不仅仅是下一个调用。

complete_task 是读-修改-写。 没有专用的完井端点;这个工具 读取任务,设置 completedAt,然后带着读过的内容重新发布 ETag 在 If-Match 因此,并发编辑不会被悄无声息地破坏。

yarn smoke 是不受影响的-它发出三个固定的只读请求,从不触及工具 注册表,因此没有写入可以通过它到达生产。

路线图

  • 管理的行为 (例如ARCH-153 /user purge) - blocked:没有可执行端点存在 然而,只有一个 GET .../data-inventory 这说明这是一次多么大的清洗 将 执行并删除任何内容。
  • OpenAPI-driven 从后端分组规范(monorepo已经使用)生成工具 openapi-typescript 在 packages/core)。
  • 托管远程服务器 (streamable-HTTP + per-user OAuth),这样用户就不用安装任何东西就可以连接到URL。

版本与发布记录

@practicemakes/mcp 共发布 16 个版本,首次发布于 2026/07/12;过去 12 个月发布了 16 个版本。

版本发布日期距今
26.1101.2latest2026/11/021 天前
26.1101.12026/11/021 天前
26.1031.12026/11/012 天前
26.1029.22026/10/304 天前
26.1029.12026/10/304 天前
26.1020.12026/10/2113 天前

关于 @practicemakes/mcp 的常见问题

@practicemakes/mcp 是什么?

MCP服务器将practicemakeprod数据(只读)暴露给Claude,身份验证为调用用户自己的Firebase身份。

如何安装 @practicemakes/mcp?

在项目目录运行 npm install @practicemakes/mcp,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 practicemakes-mcp,可以用 npx practicemakes-mcp 直接运行。

@practicemakes/mcp 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@practicemakes/mcp 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@practicemakes/mcp 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@practicemakes/mcp 可以商用吗?

@practicemakes/mcp 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@practicemakes/mcp 还在维护吗?

最新版本 26.1101.2 发布于 2026/11/02(1 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/07/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。