Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TYPST_BINNoPath to the typst CLI used by typst_compile.typst
TYPST_EMAILNoEmail for typst.app password login. The session is cached in ~/.cache/typst-app-mcp/session (0600) and renewed automatically.
TYPST_SESSIONNoAlternative to password login: the value of the `__Http-typst-session` cookie from a signed-in browser. Required for accounts with 2FA.
TYPST_PASSWORDNoPassword for typst.app password login, used together with TYPST_EMAIL.
TYPST_OUTPUT_DIRNoDirectory where compile output goes.~/.cache/typst-app-mcp/output

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
typst_whoamiA

Show the signed-in typst.app account and its workspaces (personal + teams with their IDs). Use the team IDs for typst_create_project.

typst_list_projectsA

List typst.app projects: personal, team and shared-with-me, newest first.

Filter with query (case-insensitive substring of the project name). Returns IDs needed by every other tool. Example: "Find my thesis project" -> query="thesis".

typst_get_projectA

Show one project: all files (paths, text/binary, IDs), main file, compiler pin, comment counts, share links, members and invitations.

typst_search_templatesA

Search Typst Universe templates (latest versions) to start a project from. Pass the chosen name to typst_create_project. Examples: "IEEE paper" -> query="ieee"; "German thesis" -> query="thesis".

typst_read_fileA

Read a file from a project. Text files (.typ, .bib, ...) return their content; images are returned inline; other binaries need save_to. Use start_line/end_line for long files. Use line_numbers=true when you plan comments on line ranges.

typst_write_fileA

Create a text file or replace its entire content. Collaborators in the web editor see the change live. Prefer typst_edit_file for changes to part of an existing file. Folders are created implicitly by the path.

typst_edit_fileA

Replace exact text in a text file, like a find-and-replace that must match precisely (whitespace included). Each old_string must occur exactly once unless replace_all=true. Edits apply in order; if one fails, nothing is saved. Only the changed span is sent, so concurrent edits by collaborators are preserved.

typst_upload_fileA

Upload a local file (image, font, .bib, data, ...) or a whole folder into a project. Existing files with the same path are replaced. Hidden files and folders are skipped. Example: local_path="/home/me/figures", remote_path="figures".

typst_rename_fileA

Rename or move files inside a project. Moving to a new folder is just a new path. Remember to update #include/#import paths that point to them.

typst_delete_filesA

Permanently delete files from a project. Confirm with the user before deleting anything they did not explicitly ask to remove.

typst_download_projectA

Download all files of a project into a local directory (created if missing; existing files with the same paths are overwritten). Useful for backups, git or local editing.

typst_create_projectA

Create a new project, empty or from a Typst Universe template (find one with typst_search_templates). Put it into a team with team_id from typst_whoami. Returns the new project ID.

typst_duplicate_projectB

Copy a project (all files) into a new project, optionally into a team.

typst_update_projectA

Rename a project, set its main (previewed/compiled) file, or pin the compiler version used by the web app.

typst_delete_projectA

Permanently delete a whole project. Only on explicit user request. confirm_name must equal the project's exact name as a safety check.

typst_set_share_linksA

Turn the project's anyone-with-the-link URLs on or off for read, review and write access, and return the current links. Omitted flags stay unchanged.

typst_invite_memberA

Invite someone to a project by email. typst.app sends them an invitation. Ask the user before inviting anyone.

typst_update_memberA

Change an existing member's access. user_id comes from typst_get_project.

typst_remove_memberB

Remove a member from a project. user_id comes from typst_get_project.

typst_revoke_invitationB

Withdraw a pending invitation by email.

typst_list_commentsA

List review comments of a project with file, line, the commented text and replies. Resolved comments only with include_resolved=true.

typst_add_commentA

Add a review comment to a text file, anchored either on exact text (anchor_text, plus occurrence if it is not unique) or on a line range. The comment stays attached to that text even when the file changes.

typst_reply_commentB

Reply to a comment thread. comment_id comes from typst_list_comments.

typst_resolve_commentA

Mark a comment thread as resolved, or reopen it with resolved=false.

typst_delete_commentA

Permanently delete a comment thread. Prefer typst_resolve_comment unless the user asks to delete.

typst_compileA

Compile a project with the local typst CLI and return errors/warnings with file and line, plus the output path. Use it after edits to check the document builds. format 'png' with preview_pages>0 returns page images inline so you can look at the layout. Packages (@preview/...) are downloaded automatically.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 26 tools

Disambiguation4/5

Tools are organized around clearly distinct resources (projects, files, comments, members, sharing, compile), and descriptions actively steer between near-neighbors like typst_write_file vs typst_edit_file vs typst_upload_file and typst_delete_comment vs typst_resolve_comment. The only residual overlap is among the file-mutation trio, which is handled explicitly rather than left ambiguous.

Naming Consistency5/5

Every tool follows the same typst_<verb>_<noun> snake_case pattern with a uniform prefix, covering create/get/list/update/delete/duplicate for projects and read/write/edit/upload/rename/delete/download for files. Pluralization (typst_delete_files) mirrors the fact that the operation takes multiple paths, so it is purposeful rather than inconsistent.

Tool Count3/5

At 26 tools this sits just past the comfortable range, and the surface splits into six sub-domains (projects, files, comments, members, sharing, compile). Nearly every tool earns its place, but a few low-frequency ones (typst_revoke_invitation, typst_duplicate_project, typst_whoami) inflate the count.

Completeness4/5

Full lifecycle coverage exists across projects (create/list/get/update/delete/duplicate), files (read/write/edit/upload/rename/delete/download) and comments (list/add/reply/resolve/delete), plus membership and share links. Minor gaps remain: no cross-file content search, no comment editing, and no way to list members/invitations outside typst_get_project.

Maintenance

ActivityMaintained
ResponsivenessNo issues