rustpad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RUSTPAD_URL | Yes | Base URL of the Rustpad instance, e.g. https://rustpad.example.net | |
| RUSTPAD_READ_ONLY | No | Set to 'true' to register only the read tools | |
| RUSTPAD_DENY_TOOLS | No | Comma-separated tool names to remove from whatever RUSTPAD_ALLOW_TOOLS left | |
| RUSTPAD_ALLOW_TOOLS | No | Comma-separated tool names, list_* prefixes, or 'essential' for a curated preset | |
| RUSTPAD_INSECURE_TLS | No | Set to 'true' to accept self-signed certificates (scoped to this connection only) |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_documentA | Reads the current plain-text content of a pad. Pads are ephemeral: they are lost when the Rustpad server restarts and after 24 hours without an open connection. An empty result is ambiguous: Rustpad cannot distinguish an empty pad from one that never existed or has expired. |
| get_document_infoA | Fetches metadata about a pad over the collaboration socket: content length, revision, editor language and the users who have it open right now. Pads are ephemeral: they are lost when the Rustpad server restarts and after 24 hours without an open connection. |
| get_statsA | Reads the Rustpad server statistics: start time, number of documents currently held in memory, and the number persisted in the database (0 when the instance runs without persistence). |
| create_documentA | Creates a pad, optionally with initial content and an editor language, and returns its shareable URL. Without an id a random one is generated. Pads are ephemeral: they are lost when the Rustpad server restarts and after 24 hours without an open connection. Anyone who knows the URL can read and edit the pad. Rustpad has no create operation of its own: a pad exists under any id as soon as it is written to, and set_document or append_to_document on a fresh id makes one just the same. |
| set_documentA | Replaces the entire content of a pad. Replacing a non-empty pad requires confirmation: call once to receive a token, then again with that token. For targeted changes prefer replace_in_document, which leaves concurrent edits elsewhere in the pad intact. |
| append_to_documentA | Appends text to the end of a pad, leaving everything else — including concurrent edits — untouched. The text is appended verbatim; include a leading newline to start a new line. |
| replace_in_documentA | Replaces an exact string in a pad with another. Only the matched ranges are edited, so concurrent edits elsewhere in the pad survive. By default the search string must match exactly once; set replace_all to change every occurrence. Replacing more than one occurrence at once asks a person first. |
| set_languageA | Sets the syntax-highlighting language of a pad (Monaco language id, e.g. "markdown", "javascript", "rust"). Last writer wins; the change is visible to everyone who has the pad open. |
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 8 tools
Each tool has a clear, distinct operation: reading content, reading metadata, server stats, creating, overwriting, appending, replacing substrings, and setting language. The two get_ tools are cleanly separated by content vs. info.
All tools follow a consistent verb_noun snake_case pattern (get_document, set_document, append_to_document, replace_in_document, set_language).
8 tools is well-scoped for a focused collaborative pad editor; each covers a distinct editing or querying need without redundancy.
Core read/create/update operations are covered, along with metadata and stats. There is no explicit delete, but pad ephemerality makes that less critical; still, a small gap for lifecycle completeness.