three.ws Tutor

io.github.nirholasPublished by GitHub account nirholasv0.1.2Updated Oct 24, 2026

Read a Pay-As-You-Learn tutoring session's itemized tab and close it for an attested invoice.

VerifiedSTDIODesktop onlyProductivity & WorkflowFinance

Overview

AI-generated overview

Reads a three.ws Pay-As-You-Learn tutoring session's itemized tab and closes it to seal an attested invoice.

What you can do
  • Read a session's itemized running tab by session ID: line items with question, level, tokens and cost, plus status and running total
  • Close a session to finalize it, returning the itemized total and a SHA-256 attestation that locks further billing
When to use it
Use it when you work with three.ws Pay-As-You-Learn tutoring sessions and want an assistant to check what has been billed so far or to end a session and obtain its attested invoice.
Requirements
Node.js 20 or newer, run via npx or a local install. Network access to the three.ws API, configurable through THREE_WS_BASE (default and THREE_WS_TIMEOUT_MS (default 20000). No API key or signer; sessions are addressed by an opaque session ID.
Before you install
close_session changes state, moving a session from open to closed and locking further billing, so confirm the session ID before calling it. The tools themselves are free and move no funds, but the tab reflects per-question charges billed elsewhere. Session data is sent to the configured THREE_WS_BASE endpoint, so point it only at a deployment you trust.

Installation

In SourceWeft

  1. Open three.ws Tutor in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[three.ws]

@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.

[npm] [license] [node] [MCP Registry] [three.ws]


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.

Install

bash
npm install @three-ws/tutor-mcp

Or run with npx (no install):

bash
npx @three-ws/tutor-mcp

Quick start

Claude Code, one line:

bash
claude mcp add tutor -- npx -y @three-ws/tutor-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

json
{	"mcpServers": {		"tutor": {			"command": "npx",			"args": ["-y", "@three-ws/tutor-mcp"]		}	}}

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/tutor-mcp

Tools

ToolTypeWhat it does
load_sessionreadRead a session's itemized running tab by sessionId — line items (question, level, tokens, cost), status, and running total.
close_sessionwriteFinalize 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.

Input parameters

load_session — sessionId (required, ≤100 chars).

close_session — sessionId (required, ≤100 chars).

Example

jsonc
// 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"}
jsonc
// 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.

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefault
THREE_WS_BASEnohttps://three.ws
THREE_WS_TIMEOUT_MSno20000

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

Source: packages/tutor-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.1.2LatestOct 10, 2026
  2. v0.1.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts