PassPaper
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port number for the daemon's WebSocket/HTTP server. Default is 8765. Must match the tablet canvas configuration if changed. | |
| PASSPAPER_HOME | No | Changes the data directory (for testing / portable installs). Default is ~/.passpaper. | |
| PASSPAPER_RECOGNIZER_ENDPOINT | No | URL of an OpenAI-compatible endpoint for a local VLM (e.g. ollama / llama.cpp / vLLM) used for handwriting recognition. If not set, falls back to letting the agent view the image directly. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_handwritingA | Read the user's CURRENT handwriting from the tablet. Returns a PNG image. Only call this AFTER the user has written something and asks you to look. Triggers: '看看我写的', '看我写的', 'look at my writing', '帮我检查这个推导', '你看一下'. Do NOT call this for initial setup — use get_connection_info first. |
| clear_canvasA | 【递纸】Clear the tablet canvas. Call when user says '清空画布', 'clear', '重新开始'. |
| get_handwriting_statusA | 【递纸】Check tablet status: stroke count, revision, connected tablets, new-content flag. Does NOT render an image. Lightweight. Call when user asks '有更新吗', '有没有新内容'. |
| get_connection_infoA | 【递纸】Get the PassPaper tablet connection URL + QR code image. Call this FIRST whenever the user mentions '递纸', 'passpaper', '手写板', '平板连接', '画布', '地址', '二维码', '扫码', '我要用递纸', '打开递纸', '连接平板', '连平板'. The pairing is persistent — the user can bookmark the URL. |
| save_snapshotA | 【递纸】Save the current handwriting as a PNG file on disk and return its path. Use this when you cannot receive images through MCP directly (e.g. some Codex setups) — then read the file instead. |
| list_sessionsA | 【递纸】列出本地保存的手写会话(按时间倒序)。每个会话是一份可随项目 Git 提交、可回放、可导出的文本记录。 |
| start_sessionA | 【递纸】开始一个新的手写会话(之前的会话会被保留,可随时导出)。 |
| export_sessionA | 【递纸】导出一个手写会话为可移植格式:md(人类可读+识别文本)、jsonl(原始日志)、json(笔画重放)、excalidraw(可在 Excalidraw 打开)。session_id 留空则用当前会话。 |
| recognize_handwritingA | 【递纸】对手写画布做结构化识别(若已配置本地 VLM/PaddleOCR-VL/GLM-OCR 则输出中文文本与 LaTeX;否则回退为让 Agent 直接看图)。同时把识别结果记入当前会话,便于回溯。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools target clearly distinct actions: connection, canvas clearing, status, sessions, and recognition. The main potential confusion is between get_handwriting and save_snapshot, since both capture the current canvas, but their descriptions clarify the different output modes. get_handwriting_status and get_connection_info also overlap slightly, but one is lightweight status while the other is setup-oriented.
All tool names follow a consistent snake_case verb_noun pattern: get_handwriting, clear_canvas, save_snapshot, list_sessions, start_session, export_session, recognize_handwriting. There are no style mixes or vague one-word names, making the toolset predictable for an agent.
Nine tools is well within the ideal range and each tool fills a distinct role in the handwriting tablet workflow. The count feels intentional: connection, reading, clearing, status, snapshotting, session management, export, and recognition are all represented without redundancy.
The core handwriting lifecycle is well covered: connect, write, read, clear, save, recognize, start session, list sessions, and export. Minor gaps exist around session lifecycle, such as no explicit session deletion or loading a previous session back onto the canvas, but these are workable via export and list operations.