Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
作者提供的说明(英文原文)
Read a Pay-As-You-Learn tutoring session's itemized tab and close it for an attested invoice.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
THREE_WS_BASE, THREE_WS_TIMEOUT_MS你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"tutor": {
"command": "npx",
"args": [
"-y",
"@three-ws/tutor-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add tutor --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value -- npx -y @three-ws/tutor-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"tutor": {
"command": "npx",
"args": [
"-y",
"@three-ws/tutor-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"tutor": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/tutor-mcp"
],
"env": {
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
THREE_WS_BASE envTHREE_WS_TIMEOUT_MS env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 nirholas 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.2)于27天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@three-ws/tutor-mcp
Manage a Pay-As-You-Learn tutoring session from any AI agent — read its itemized running tab and close it for an attested invoice.
A Model Context Protocol server that exposes the three.ws Pay-As-You-Learn tutor ledger over stdio. Read a tutoring session's itemized tab — one line item per answered question, with per-item cost and a running total — and close the session to seal an attested invoice.
The tutor bills per answered question; this server's tools are free. Viewing the running tab and closing the session never charge the learner — a learner must never pay to see what they owe or to end the session. Sessions are addressed by an opaque sessionId, so no API key and no signer are required — point THREE_WS_BASE at a deployment and go.
npm install @three-ws/tutor-mcp
Or run with npx (no install):
npx @three-ws/tutor-mcp
Claude Code, one line:
claude mcp add tutor -- npx -y @three-ws/tutor-mcp
Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):
{
"mcpServers": { "tutor": { "command": "npx", "args": ["-y", "@three-ws/tutor-mcp"] } } }
Inspect the surface with the MCP Inspector:
npx -y @modelcontextprotocol/inspector npx @three-ws/tutor-mcp
| Tool | Type | What it does |
|---|---|---|
load_session | read | Read a session's itemized running tab by sessionId — line items (question, level, tokens, cost), status, and running total. |
close_session | write | Finalize a session and return its attested invoice — seals the ledger with a SHA-256 attestation and locks further billing. |
Both tools are free and move no funds: the per-question answers are the paid action (handled elsewhere). load_session reads live data — the tab grows as questions are billed, so it is not idempotent. close_session mutates state (open → closed) but is itself idempotent: re-closing returns the same itemized total.
`load_session` — sessionId (required, ≤100 chars).
`close_session` — sessionId (required, ≤100 chars).
// load_session
{ "sessionId": "learn-abc123" }
{ "ok": true, "sessionId": "learn-abc123", "status": "open", "createdAt": "2026-06-24T03:40:00.000Z", "questionCount": 2, "lineItems": [ { "n": 1, "question": "What is a Solana PDA?", "level": "intro", "outputTokens": 180, "costAtomics": 10000, "costUsd": "0.010000", "at": "2026-06-24T03:41:00.000Z" }, { "n": 2, "question": "How do CPIs work?", "level": "intro", "outputTokens": 220, "costAtomics": 10000, "costUsd": "0.010000", "at": "2026-06-24T03:42:00.000Z" } ], "totalAtomics": 20000, "totalUsd": "0.020000" }
// close_session
{ "sessionId": "learn-abc123" }
{ "ok": true, "sessionId": "learn-abc123", "createdAt": "2026-06-24T03:40:00.000Z", "closedAt": "2026-06-24T03:45:00.000Z", "questionCount": 2, "lineItems": [ /* same itemized line items */ ], "totalAtomics": 20000, "totalUsd": "0.020000", "attestation": "sha256:…" }
A sessionId with no stored history returns an empty open session (questionCount: 0) rather than an error — an honest "nothing billed yet", not a failure.
https://three.ws (or your own THREE_WS_BASE).| Variable | Required | Default |
|---|---|---|
THREE_WS_BASE | no | https://three.ws |
THREE_WS_TIMEOUT_MS | no | 20000 |
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub