关于 Mathter
Mathter 是面向教师和家庭的 MCP 服务,可根据请求使用 Mathter 账户生成 K–12 数学练习册 PDF。它支持查询技能、定制练习册和答案,并将文件保存到本地。
主要功能
- 01按年级查询数学技能
- 02生成定制练习册
- 03附带答案和解题步骤
- 04将 PDF 保存到指定文件夹
适用场景
- 01准备分年级数学练习
- 02制作专项题目和乘法表
- 03查看每月剩余练习册额度
MCP 相关
该服务向 MCP 客户端提供数学技能查询、额度检查和练习册生成功能。它通过 stdio 通信,并将生成的 PDF 保存到本地电脑。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mathter-mcpMATHTER_API_KEY密钥Your Mathter API key (mk_live_...). Create one at https://mathter.ca/account under API access.MATHTER_OUT_DIRFolder to save packs in. Defaults to your Downloads folder.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seed | integer | 否 | 固定随机数生成器的种子,以便相同种子可重现相同套装。默认为随机。 |
| chart | object | 否 | 仅适用于乘法:打印乘法口诀表,而不是练习题。"filled" 表示已填写的参考表,"blank" 表示待填写的表。 |
| chart.mode | enum | 是 | filled | blank |
| focus | integer | 否 | 单个数字练习,例如 7 表示七的乘法口诀。仅适用于四种基本运算技能:加法、减法、乘法和除法。 |
| grade | integer | 是 | 年级,0(幼儿园)至 12。必须是所选技能适用的年级;list_skills 会返回每种技能对应的年级。 |
| skill | string | 是 | 要通过练习题训练的数学技能,例如 "multiplication"。先调用 list_skills,并使用其返回的某个键:可用集合会变化,且所选技能必须适用于指定年级。未知技能或年级不匹配的技能会被拒绝,并返回 400。 |
| style | enum | 否 | 字体排版/布局预设,默认为 "modern"。受套餐限制;账户无权使用时会直接拒绝:免费账户仅可使用 "modern",Standard 还可使用 "classic" 和 "notebook",Premium 可使用全部六种。除非用户要求特定外观,否则省略此项。modern | classic | notebook | studio | ledger | blueprint |
| theme | enum | 否 | 练习题套装的配色方案。所有套餐均可使用。默认为青绿色。teal | tangerine | ocean | plum | berry | forest | slate | crimson | grape | cocoa |
| timed | boolean | 否 | 限时速算练习。仅适用于加法、减法、乘法和除法。 |
| title | string | 否 | 打印在套装上的标题,默认为 "Math Lesson"。最多 80 个字符。 |
| diagrams | boolean | 否 | 仅适用于几何技能:使用带标签的图形代替文字提示。其他技能会忽略此项。 |
| shopName | string | 否 | 打印在套装上的品牌名称。仅限 Premium;其他账户会静默替换为 "Mathter.ca",且套装仍会生成。学校组织的成员始终使用该组织自己的品牌。 |
| difficulty | enum | 否 | 难度级别,默认为 "medium"。easy | medium | hard |
| focusOrder | enum | 否 | 专注练习的顺序,默认为 sequential。仅在设置了 focus 时适用。sequential | shuffled |
| graphBlank | boolean | 否 | 默认情况下,坐标网格为空白(无标签),以便学生自行设置刻度。传入 false 可使用带标签的 ±10 网格。仅对会打印图表的技能有意义。 |
| unitSystem | enum | 否 | 测量题使用的单位制,默认为 metric。主要影响单位换算技能。metric | imperial |
| includeCover | boolean | 否 | 打印封面页。默认为 true,但免费账户会静默关闭此项(Standard 及以上套餐)。 |
| includeLesson | boolean | 否 | 打印 "how to" 教学页。默认为 true,但免费账户会静默关闭此项(Standard 及以上套餐)。 |
| worksheetCount | integer | 否 | 套装中的练习单数量。会限制为账户套餐允许的数量:免费版 2 份、Standard 版 10 份、Premium 版 25 份;即使请求更多也不会有影响,但实际生成数量会更少。若省略,则生成 10 份或套餐上限中较少的数量:免费账户默认生成 2 份。 |
| problemsPerPage | integer | 否 | 每页题目数,默认为 12。会下调至该技能、年级和版式下实际可容纳的数量;因此,较大的数值只会生成排版最密集且符合要求的页面。 |
| workedSolutions | boolean | 否 | 在答案中提供逐步讲解的解题过程。仅对已编写步骤的技能有效;其他情况会静默忽略。 |
| includeAnswerKeys | boolean | 否 | 打印答案。所有套餐默认均为 true;发送 false 可省略答案。 |
详细介绍
mathter-mcp
让 AI 助手为你制作数学练习册套装。在电脑上获取可打印的 PDF。
“给我做一套周五用的四年级乘法表练习册。”
→ 文件
mathter-grade-4-multiplication-2026-10-04-1532.pdf将保存到你的 Downloads 文件夹中,并附带答案。 (封面和课程页面需使用 Standard 套餐或更高套餐。)
这是一个小型 Model Context Protocol 服务,可将 Mathter 连接到 Claude Desktop、Claude Code、Cursor 或任何其他 MCP 客户端。它只做一件事:根据普通英语请求,从你自己的 Mathter 账户生成一套真正的练习册,并保存为可打开和打印的文件。
你需要一个 Mathter 账户和 API 密钥。两者都可以免费开始使用:免费套餐可生成最多包含 2 份练习题和答案的套装,付费套餐则可增加套装内容,并添加封面和课程页面。
设置(约两分钟)
1. 获取密钥
登录 mathter.ca/account,找到 API access,然后创建密钥。密钥格式类似 mk_live_…,并且只显示一次——关闭页面前请复制。如果丢失了,可以撤销并重新创建;这很正常,而且不收费。
2. 告诉助手密钥
Claude Desktop — 打开 Settings → Developer → Edit Config,并在 mcpServers 部分中添加
mathter 条目(或将此代码块合并到配置文件中)。如果文件中已有 preferences 等其他设置,mcpServers 应与它们并列放在顶层,而不是嵌套在其中——放在 preferences 里面会被静默忽略:
{
"mcpServers": {
"mathter": {
"command": "npx",
"args": ["-y", "mathter-mcp"],
"env": { "MATHTER_API_KEY": "mk_live_YOUR_KEY" }
}
}
}
然后完全退出 Claude Desktop(右键点击系统托盘中的图标并选择 Quit——关闭窗口并不会退出应用),再重新打开。(如果你想直接编辑配置文件,macOS 上的路径是
~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上的路径是
%APPDATA%\Claude\claude_desktop_config.json。)
Claude Code — 运行一条命令:
claude mcp add mathter --env MATHTER_API_KEY=mk_live_YOUR_KEY -- npx -y mathter-mcp
Cursor、Windsurf 等应用 — 使用与 Claude Desktop 相同的 JSON 代码块,放入该应用用于配置 MCP 服务的文件中。有些编辑器(例如 Zed)采用不同的条目格式——请查阅其 MCP 文档,了解确切格式;命令、参数和 MATHTER_API_KEY 在各处都相同。
该服务通过 stdio 通信;无需托管,也无需开放端口。
无需预先安装任何内容。npx -y mathter-mcp 会按需从 npm 下载,因此首次启动会比之后稍慢。你需要 Node 18 或更高版本。
3. 请求练习题
“Mathter 能为三年级提供哪些数学技能?” “制作一套 5 页的三年级减法练习册,名称为 Warm-Ups,难度简单。” “一张空白的四年级乘法表。” “我这个月还剩多少套 Mathter 练习册额度?” “十份六年级分数练习题,难度高,附带详细解答。”
助手会回复 PDF 的路径。打开并打印即可。
助手可以做什么
list_skills
向 mathter.ca 查询当前有哪些技能,以及每项技能适用于哪些年级。助手应在生成内容前调用此工具,以便选择真实存在的技能,而不是凭空猜测。不会发送密钥 ——技能列表是公开的。
check_allowance
告知你的账户还剩多少套练习册额度、当前使用的套餐,以及额度重置日期。此操作不会消耗额度,因此随时都可以询问:“我还剩多少套 Mathter 练习册额度?”
generate_worksheet_pack
生成套装。只需提供 skill 和 grade;其他参数都有合理的默认值。
| 选项 | 功能 | 备注 |
|---|---|---|
skill | 必填。 要练习的技能,例如 multiplication | 必须是 list_skills 返回的技能,且该年级会教授此技能 |
grade | 必填。 0(幼儿园)到 12 | — |
theme | 十种配色方案之一 | 默认为 teal;每种套餐方案都包含全部十种配色 |
style | modern、classic、notebook、studio、ledger、blueprint | 由套餐方案决定:免费版提供 modern,Standard 版增加 classic/notebook,Premium 版提供全部六种 |
difficulty | easy、medium、hard | 默认为 medium |
title | 显示在套装上的标题 | 默认为 "Math Lesson",超过 80 个字符的部分会被截去 |
worksheetCount | 练习单数量 | 受套餐方案限制:免费版 2 份、Standard 版 10 份、Premium 版 25 份。不提供此参数时,数量为 10 份或套餐上限,以较小者为准 |
problemsPerPage | 每页题目数量 | 默认为 12,且不超过页面所能容纳的数量 |
includeAnswerKeys | 答案页 | 默认开启 |
includeCover / includeLesson | 封面页、“操作说明”页 | 默认开启,适用于 Standard 及更高版本 |
workedSolutions | 答案页中的分步解答 | 仅适用于已编写步骤的技能 |
focus / focusOrder | 单个数字练习,例如 7 的乘法口诀表 | 仅适用于加法、减法、乘法和除法 |
chart | { "mode": "filled" } 或 "blank" — 乘法表 | 仅适用于乘法 |
timed | 限时速算练习 | 仅适用于四种基本运算技能 |
diagrams、graphBlank、unitSystem | 几何图形、空白网格(默认;设置 graphBlank: false 可显示标签)、公制/英制 | 仅适用于会用到这些内容的技能 |
shopName | 套装上的品牌名称 | 仅限 Premium 版;其他版本会静默替换 |
seed | 重新生成完全相同的套装 | 默认为随机值 |
你的徽标来自 Mathter 账户,而不是在这里设置——只需在 mathter.ca 上传一次,之后无论以何种方式制作套装,都会带上徽标。
配置
| 变量 | 必填 | 默认值 |
|---|---|---|
MATHTER_API_KEY | 是 | —(未设置时服务将拒绝启动) |
MATHTER_BASE_URL | 否 | https://mathter.ca |
MATHTER_OUT_DIR | 否 | “下载”文件夹;若不存在,则使用系统临时文件夹 |
如果你希望套装保存到共享的学校文件夹等位置,请设置 MATHTER_OUT_DIR:
"env": {
"MATHTER_API_KEY": "mk_live_YOUR_KEY",
"MATHTER_OUT_DIR": "/Users/you/Documents/Worksheets"
}
如果文件夹不存在,系统会自动创建。文件名不会冲突:同一分钟内生成第二份同类型套装时,文件名会变为 …-2.pdf。
计费说明
在此处生成的套装会计入你的 Mathter 账户,计费方式与在网站上生成完全相同:套餐方案、每月额度以及套装大小和样式的限制均相同。没有按调用次数收费,也没有单独的 API 套餐。如果额度用完,助手会直接告知。套餐详情见 mathter.ca/pricing。
你的密钥
你的密钥会保存在你的设备上。此服务只会将密钥发送到一个地方——POST https://mathter.ca/api/generate 请求的 Authorization 标头——不会发送到其他任何地方。密钥不会发送到公开的技能接口,不会写入文件,也不会包含在服务打印或返回给助手的任何内容中:所有输出都会先过滤密钥格式的文本,包括来自服务的错误消息。这一点很重要,因为聊天记录可能会被粘贴到电子邮件和错误报告中。
如果密钥仍然遭到泄露,请前往 mathter.ca/account 撤销;撤销会立即生效。密钥可以消耗你账户的额度,但不能更改你的品牌信息、密码或账单信息,也不能创建其他密钥。
出现问题时
服务会以句子而非状态码作答。你可能会遇到以下情况:
| 你看到的内容 | 该怎么做 |
|---|---|
| "MATHTER_API_KEY is not set" | 密钥没有传到服务端——检查 env 块并重启应用 |
| "Mathter did not accept the API key" | 密钥错误、输入有误或已撤销。请在 mathter.ca/account 重新创建一个 |
| "Out of worksheet credits for the month" | 额度会在下一个计费周期重置,也可以升级 |
| "That style is not available on this account's plan" | 移除该风格,或升级 |
| "This account is not allowed to generate packs" | 你使用的是管理员/支持账户,或者学校许可证已不再涵盖你 |
| "Mathter is rate-limiting this API key" | 一次只生成一个练习包;请等待提示中所述的时间。密钥没有问题,无需撤销 |
| "Mathter is rate-limiting the public skill list" | 公共技能列表设有每台电脑的使用限制,不会发送你的密钥。请等待一分钟 |
| "The renderer is busy" | 这是背压,并非故障。请在半分钟后重试;不会扣费 |
| "Mathter rejected that configuration" | 通常是所选技能不适用于该年级——请重新请求技能列表 |
仍然无法解决?mathter.ca/contact。
开发者须知
这是一个通过 stdio 传输的轻量 HTTP 客户端,使用两个端点。只有一个直接运行时依赖项——
@modelcontextprotocol/sdk——它也会引入自己的依赖树,因此实际安装大约包含 90 个软件包,其中包括 SDK 的 HTTP 传输依赖项。没有遥测、分析,也不会进行除上述两个端点之外的网络调用。MATHTER_BASE_URL 可用于将其指向开发实例。
npm ci # a lockfile is committed; plain `npm install` may need --legacy-peer-deps
npm test # vitest, against a local stub HTTP server — never the real API
npm run typecheck
npm run build # tsc -> dist/
发布的压缩包包含 dist/、此 README 和许可证;源码与测试保留在代码仓库中。
采用 MIT 许可证。Mathter 的网站为 mathter.ca;API 文档见 mathter.ca/api。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。