three.ws Tutor — Claude Code MCP server: session tab and attested
Reads the itemized tab of a Pay-As-You-Learn tutoring session and seals it with an attested invoice. Neither call costs the learner anything.
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --transport stdio tutor-mcp -- npx -y @three-ws/tutor-mcpWhat three.ws Tutor does
Two tools arrive over stdio. load_session takes an opaque sessionId and hands back the running tab: each question, its level, output tokens, per-item price and the total so far. close_session flips the session from open to closed, attaches a SHA-256 attestation and stops any further billing.
Repeating the close on the same session returns the same total, so that call is safe to retry. Reading is not: new answered questions keep adding lines. The paid action is the per-question answer, handled elsewhere, and these tools move no funds.
No signer and no API key — the session is addressed by its identifier alone. You need Node.js 20 or newer and network reach to https://three.ws or to whatever deployment sits behind THREE_WS_BASE. An identifier with nothing stored comes back as an empty open session with questionCount: 0 instead of an error.
What it helps with
- read a session's line items and running total
- see what each answered question cost
- close a session and get an attested invoice
- lock billing once a tutoring session ends
- confirm nothing has been charged on a session yet
Example prompts for the agent
- Show the line items and total for session
learn-abc123 - Close
learn-abc123and give me the attested invoice - Load the tab for the
sessionIdthe learner sent
How to install three.ws Tutor
Platform CLI
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --transport stdio tutor-mcp -- npx -y @three-ws/tutor-mcpReplace <…> with your own values
Platform CLI
codex mcp add tutor-mcp --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> -- npx -y @three-ws/tutor-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"tutor-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/tutor-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"tutor-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/tutor-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e THREE_WS_BASE=<THREE_WS_BASE> -e THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> tutor-mcp npx -y @three-ws/tutor-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about three.ws Tutor
How do I install three.ws Tutor in Claude Code?
Run claude mcp add tutor-mcp -- npx -y @three-ws/tutor-mcp. For a custom endpoint or timeout, add --env THREE_WS_BASE=<THREE_WS_BASE> and --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS>, with --transport stdio placed before the command.
What does three.ws Tutor do?
It reads a tutoring session's itemized tab and closes the session, returning a SHA-256 attested invoice.
What do I need to run it?
Node.js 20 or newer and a reachable THREE_WS_BASE, which defaults to https://three.ws. Both tools are free and take a sessionId up to 100 characters.