Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LITEWRITE_BASE_URLNoBase URL of the Litewrite server.http://localhost:3000
LITEWRITE_OWNER_IDNoDefault owner used when a call omits ownerId.default
LITEWRITE_LOCAL_DIRNoRoot dir for the per-project local mirror working copies.~/.litewrite-mcp
LITEWRITE_INTERNAL_SECRETYesMust equal the Litewrite server's INTERNAL_API_SECRET. Sent as X-Internal-Secret.

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
litewrite_list_projectsA

List projects available in the Litewrite platform for a given owner (POST /api/internal/projects/list).

Use this to discover a projectId before pulling or reading files.

Args:

  • ownerId (string, optional): defaults to the LITEWRITE_OWNER_ID env var, or "default".

  • search (string, optional): name filter.

  • limit (number, optional, 1-200, default 50): max results.

Returns an array of projects with fields {id, name, description?, mainFile?, compiler?, updatedAt?, createdAt?}.

litewrite_list_filesA

List the files and directories in a Litewrite project (POST /api/internal/files/list).

Args:

  • projectId (string, required): The project id (from litewrite_list_projects).

  • directory (string, optional): Subdirectory to list from the project root, e.g. "chapters".

  • recursive (boolean, optional): When true, list all nested files; default true.

Returns an array of {path, type: 'file'|'directory', size?}.

litewrite_read_fileA

Read the content of a file directly from the Litewrite server (POST /api/internal/files/read).

Prefers the server copy over the local mirror; use litewrite_local_read to read the local working copy instead.

Args:

  • projectId (string, required): The project id.

  • filePath (string, required): Path relative to the project root, e.g. "main.tex" or "chapters/intro.tex".

  • startLine / endLine (number, optional): Read only a line range.

Returns the file content as UTF-8 text.

litewrite_write_fileA

Replace the full content of an existing file on the Litewrite server (POST /api/internal/files/edit).

For creating a brand-new file use litewrite_create_file; for binary files use litewrite_upload_file.

Args:

  • projectId (string, required): The project id.

  • filePath (string, required): Path relative to the project root.

  • content (string, required): The new full text content.

Returns a confirmation.

litewrite_create_fileB

Create a new text file (or directory) in a Litewrite project (POST /api/internal/files/create).

Args:

  • projectId (string, required): The project id.

  • name (string, required): Name of the new file or folder, e.g. "notes.md".

  • type (string, required): "file" or "directory".

  • parentPath (string, optional): Parent directory relative to project root, e.g. "chapters".

  • content (string, optional): Initial text content for a file.

Returns a confirmation.

litewrite_upload_fileA

Upload a file to Litewrite, creating or overwriting it (POST /api/internal/files/upload).

Use for binary assets (images, PDFs) where edit/create are unsuitable, or as an alternative to create.

Args (provide exactly one source):

  • projectId (string, required): The project id.

  • filePath (string, required): Relative target path, e.g. "figures/logo.png".

  • content (string, optional): The text content to upload.

  • contentBase64 (string, optional): The raw file data base64-encoded.

  • overwrite (boolean, optional): Allow overwriting an existing file; default false.

Returns a confirmation.

litewrite_delete_fileA

Delete a file (or directory) from a Litewrite project (POST /api/internal/files/delete). This is irreversible.

litewrite_rename_fileA

Rename or move a file/folder in a Litewrite project (POST /api/internal/files/rename).

Args:

  • projectId (string, required): The project id.

  • sourcePath (string, required): Current relative path.

  • newName (string, optional): New name (keeps the same parent).

  • targetPath (string, optional): Full target relative path to move it.

Provide at least one of newName or targetPath.

litewrite_pullA

Mirror a Litewrite project down into a local directory (git-clone/pull style).

Downloads all text files from the server into the local working copy at ~/.litewrite-mcp/ (or LITEWRITE_LOCAL_DIR), removes local files that no longer exist on the server, and records a content manifest so a later push can detect changes.

Args:

  • projectId (string, required): The project id.

Returns what was downloaded and removed.

litewrite_pushA

Upload local working-copy changes back to Litewrite (git-push style).

Compares the local mirror (~/.litewrite-mcp/) against the last manifest: new/changed text files are uploaded, removed local files are deleted on the server, and the manifest is refreshed.

Use litewrite_status first to see what will change.

Args:

  • projectId (string, required): The project id.

Returns what was uploaded and deleted.

litewrite_statusA

Compare the local mirror of a project with Litewrite without changing anything (git-status style).

Reports which local files are added/modified/removed versus the last pull/push, and which files exist only on the remote. Use it before deciding whether to push local changes or pull remote ones.

Args:

  • projectId (string, required): The project id.

Returns a list of changes with their kind (added/modified/removed/remote_new).

litewrite_local_listA

List the files in the local mirror of a project (no network call).

This is the local working copy at ~/.litewrite-mcp/ used by litewrite_pull/push/status.

Args:

  • projectId (string, required): The project id.

Returns relative file paths present on disk.

litewrite_local_readA

Read a file from the local mirror of a project (no network call).

Unlike litewrite_read_file, this reads the on-disk local copy at ~/.litewrite-mcp/.

Args:

  • projectId (string, required): The project id.

  • filePath (string, required): Relative path in the local copy.

Returns the raw bytes (framed as text) of the local file.

litewrite_local_writeA

Write or overwrite a file in the local mirror of a project (no network call).

Changes are NOT uploaded to Litewrite until you run litewrite_push.

Args:

  • projectId (string, required): The project id.

  • filePath (string, required): Relative path in the local copy.

  • content (string, required): The full text content to write.

Text files edited/created here will be uploaded by litewrite_push.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 14 tools

Disambiguation4/5

Most tools are clearly distinct, especially server vs local operations with explicit cross-references in descriptions. However, create_file, write_file, and upload_file have some overlap when creating or updating text files, though descriptions clarify intended use.

Naming Consistency5/5

All tool names use the litewrite_ prefix followed by a snake_case verb_noun pattern, with local operations using litewrite_local_*. This is highly consistent and predictable.

Tool Count5/5

14 tools provide a well-scoped set covering project listing, server file CRUD, and local mirror sync, with no excessive or trivial tools. Each tool earns its place.

Completeness5/5

Covers file lifecycle (create, read, update, delete, rename, upload) and local mirror workflow (pull, push, status, local list/read/write). Project listing suffices for discovery; no obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues