Typst Web MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TYPST_EMAIL | No | Your typst.app email address used for authentication via environment variables. | |
| TYPST_PASSWORD | No | Your typst.app password used for authentication via environment variables. |
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 |
|---|---|
| typst_auth_loginA | Authenticate with https://typst.app using direct email/password API login (POST /v1/auth/signin) or a session cookie (__Http-typst-session), with automatic cookie/browser fallback on challenge. |
| typst_auth_statusA | Check current https://typst.app authentication status, active session cookies, and login method. |
| typst_list_projectsA | List all owned and shared/external projects in the authenticated user's https://typst.app dashboard. |
| typst_get_projectA | Get detailed metadata, access permissions, pinned compiler version, and full file tree for a https://typst.app project. |
| typst_create_projectC | Create a new project on https://typst.app with optional initial .typ/.bib files and pinned Typst compiler version. |
| typst_delete_projectB | Permanently delete a project on https://typst.app by ID. |
| typst_list_filesB | List all files (multiplayer Yjs text files and binary asset blobs) inside a https://typst.app project. |
| typst_read_fileA | Read project text in bounded pages (default 200 lines/16 KiB) or images as native image blocks. content contains source only; use nextOffset for continuation. contentHash covers the entire raw text file: pass it as expectedHash to typst_edit_file. Compact file metadata by default; output='full' adds metadata, not extra source lines. Use grep to locate relevant lines before reading large files. |
| typst_write_fileB | Create or overwrite a text file (.typ, .bib, .toml, etc.) in a https://typst.app project, synchronizing the Yjs CRDT update via WebSocket (/editing/v3) and REST (/v1/files/:projectId/:fileId/yjs). |
| typst_edit_fileA | Apply all targeted edits against one original file snapshot, with one save. Prefer short unique oldText anchors and expectedHash from typst_read_file to reject stale edits. Exact matching by default (LF/CRLF resilient); matchMode='fuzzy' opts into Unicode/whitespace fallback. Malformed, ambiguous, or overlapping edits fail without saving. Summary output by default; dryRun previews a bounded diff. Unchanged characters and BOM are preserved. |
| typst_upload_assetA | Upload or replace a binary asset (PNG, JPG, SVG, PDF, font, etc.) in a https://typst.app project from a local file path or base64 data. |
| typst_delete_fileC | Delete a file or asset from a https://typst.app project via DeleteFilesMutation. |
| typst_rename_fileB | Rename or move a file inside a https://typst.app project via UpdatesFileMutation. |
| typst_get_diagnosticsA | Retrieve compiler diagnostics (errors, warnings, line/column numbers, and hints) for a https://typst.app project. Supports both local Typst CLI compilation (fastest) and Typst Web cloud diagnostics (zero-binary fallback using typst.app cloud compiler). |
| typst_export_pdfB | Synchronize all text and binary files from a https://typst.app project, compile the document to PDF, and save it to outputPath. |
| typst_capture_screenshotA | Capture high-resolution PNG preview screenshots to verify the visual status of a https://typst.app project (mode='pages' renders compiled PNG pages via Typst; mode='browser' captures the live typst.app web editor & preview pane via Playwright). |
| typst_grep_projectA | Search for text or regular expressions across files in a https://typst.app project. Returns matching lines with file paths, line numbers, and optional surrounding context lines. |
| typst_find_and_replaceA | Find and replace text or regex in one file or project-wide. Use replacements to batch mappings (e.g. Sep → September, Oct → October) in one call with one save per file. Rules run sequentially; later rules see earlier results. Batch output defaults to compact summary; request output='diff' or 'full' for previews. Supports dryRun and per-file mutation serialization. Project-wide changes are not atomic across files. |
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 18 tools
Most tools have clearly distinct resource/action targets, and descriptions help separate rendering, searching, and file mutation operations. Some overlap remains between typst_write_file, typst_edit_file, and typst_find_and_replace, plus minor overlap between typst_list_files and typst_get_project.
All tools use a consistent typst_ prefix and snake_case, with mostly predictable action_resource names. Minor deviations include typst_auth_login/typst_auth_status using auth as a grouping prefix and typst_find_and_replace using a compound verb.
At 18 tools, the surface is slightly above the typical sweet spot but still reasonable for a project-management, file-editing, and rendering MCP. Each tool covers a meaningful operation, though the three content-mutation tools add some density.
Core project, file, auth, search, compile, export, and screenshot workflows are well covered, including binary asset handling. Minor gaps exist around project metadata updates, sharing/permissions management, and auth logout.