Skip to main content
ClaudeWave

MCP server for Rustpad, the self-hosted collaborative text editor

MCP ServersRegistry oficial0 estrellas0 forksTypeScriptMITActualizado today
ClaudeWave Trust Score
95/100
Verified
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 8/19/2026
Install in Claude Code / Claude Desktop
Method: NPX · rustpad-mcp
Claude Code CLI
claude mcp add rustpad-mcp -- npx -y rustpad-mcp
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "rustpad-mcp": {
      "command": "npx",
      "args": ["-y", "rustpad-mcp"],
      "env": {
        "RUSTPAD_URL": "<rustpad_url>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
RUSTPAD_URL
Casos de uso

Resumen de MCP Servers

# rustpad-mcp

[![CI](https://img.shields.io/github/actions/workflow/status/ni-c/rustpad-mcp/ci.yml?branch=main&label=CI)](https://github.com/ni-c/rustpad-mcp/actions/workflows/ci.yml)
[![npm](https://img.shields.io/npm/v/rustpad-mcp)](https://www.npmjs.com/package/rustpad-mcp)
[![downloads](https://img.shields.io/npm/dm/rustpad-mcp)](https://www.npmjs.com/package/rustpad-mcp)
[![container](https://img.shields.io/badge/ghcr.io-rustpad--mcp-blue?logo=docker&logoColor=white)](https://github.com/ni-c/rustpad-mcp/pkgs/container/rustpad-mcp)
[![node](https://img.shields.io/badge/node-%E2%89%A522-brightgreen)](https://nodejs.org)
[![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
[![docs](https://img.shields.io/badge/docs-rustpad--mcp.ni--c.de-4f46e5)](https://rustpad-mcp.ni-c.de)

A [Model Context Protocol](https://modelcontextprotocol.io) server for
[Rustpad](https://github.com/ekzhang/rustpad), the efficient, minimal,
self-hosted collaborative text editor.

It gives an AI assistant read and write access to the pads of a Rustpad
instance. Reads go through Rustpad's HTTP API; writes speak the
operational-transformation WebSocket protocol, so targeted edits
(`append_to_document`, `replace_in_document`) merge cleanly with what human
collaborators type at the same time instead of overwriting it. While the
server edits a pad, it is visible to everyone in the pad as a collaborator
named `rustpad-mcp`.

📖 **[Full documentation at rustpad-mcp.ni-c.de](https://rustpad-mcp.ni-c.de)**

![Demo of rustpad-mcp over the MCP inspector](https://rustpad-mcp.ni-c.de/demo.gif)

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://rustpad-mcp.ni-c.de/architecture-dark.svg" />
  <source media="(prefers-color-scheme: light)" srcset="https://rustpad-mcp.ni-c.de/architecture-light.svg" />
  <img alt="Architecture: an MCP client talks to rustpad-mcp over stdio; rustpad-mcp reads pads over HTTPS and writes them over the WebSocket OT protocol" src="https://rustpad-mcp.ni-c.de/architecture.svg" />
</picture>

## Requirements

- A reachable Rustpad instance (self-hosted; the server is stateless and
  needs no credentials — Rustpad has no authentication)
- Node.js >= 22, or Docker

## Configuration

| Variable               | Required | Description                                                              |
| ---------------------- | -------- | ------------------------------------------------------------------------ |
| `RUSTPAD_URL`          | yes      | Base URL of the instance, e.g. `https://rustpad.example.net`             |
| `RUSTPAD_READ_ONLY`    | no       | `true` registers only the read tools                                     |
| `RUSTPAD_INSECURE_TLS` | no       | `true` accepts self-signed certificates (scoped to this connection only) |

The same URL serves the HTTP API, the WebSocket endpoint and the share links
returned by the tools (`<RUSTPAD_URL>/#<pad-id>`). Booleans must be exactly
`true`. The server starts and lists its tools without configuration; every
call then fails with setup instructions.

Keep in mind what Rustpad is: **pads are ephemeral** (lost on server restart
and after 24 hours of inactivity, unless the instance is run with
`SQLITE_URI`) and **anyone who knows a pad id can read and write it**. Do not
put secrets in pads.

## Installation

### Claude Code

```sh
claude mcp add rustpad --env RUSTPAD_URL=https://rustpad.example.net -- npx rustpad-mcp
```

### Claude Desktop

```json
{
  "mcpServers": {
    "rustpad": {
      "command": "npx",
      "args": ["rustpad-mcp"],
      "env": {
        "RUSTPAD_URL": "https://rustpad.example.net"
      }
    }
  }
}
```

### Codex

`~/.codex/config.toml`:

```toml
[mcp_servers.rustpad]
command = "npx"
args = ["-y", "rustpad-mcp"]

[mcp_servers.rustpad.env]
RUSTPAD_URL = "https://rustpad.example.net"
```

### Docker

```sh
docker run -i --rm -e RUSTPAD_URL=https://rustpad.example.net ghcr.io/ni-c/rustpad-mcp
```

## Tools

| Tool                  | Description                                                               |
| --------------------- | ------------------------------------------------------------------------- |
| `get_document`        | Read the plain-text content of a pad                                      |
| `get_document_info`   | Content length, revision, language and the users editing right now        |
| `get_stats`           | Server statistics (uptime, number of documents)                           |
| `create_document`     | Create a pad (random or chosen id), optionally with content and language  |
| `set_document`        | Replace the entire content — non-empty pads require a confirmation token  |
| `append_to_document`  | Append text; concurrent edits elsewhere survive                           |
| `replace_in_document` | Exact search & replace via OT; unique match required unless `replace_all` |
| `set_language`        | Set the Monaco syntax-highlighting language                               |

With `RUSTPAD_READ_ONLY=true` only the first three are registered.

## Safety

- Pad content is world-writable and therefore untrusted: every read result is
  prefixed with a marker telling the model to treat it as data, never as
  instructions.
- Replacing a non-empty pad is irreversible and guarded by a single-use
  confirmation token that only ever appears in a previous tool result.
- Tool results are size-capped; upstream error bodies are sanitized before
  they reach the model.
- `RUSTPAD_INSECURE_TLS` relaxes certificate validation only for the
  configured connection, never process-wide.

## Development

```sh
npm install
npm run lint && npm run build && npm test
```

The test suite talks to an in-memory fake of rustpad-server (including OT
transformation of concurrent edits) over the real MCP protocol; no live
instance is needed. The architecture diagram and social card are generated —
edit `docs/assets/architecture.source.svg` and run `npm run assets`, never the
rendered copies.

## Releasing

Releases are tag-driven. Bump `package.json`, move the `[Unreleased]` notes in
`CHANGELOG.md` under the new version, commit, then:

```sh
git tag -s vX.Y.Z -m "vX.Y.Z"
git push origin main vX.Y.Z
```

The release workflow publishes to npm via Trusted Publishing (OIDC, with
provenance), pushes the multi-arch container image to GHCR, creates the GitHub
release from the CHANGELOG section, and updates the entry in the official MCP
registry.

## License

MIT © Willi Thiel
collaborative-editingmcpmcp-servermodel-context-protocoloperational-transformationrustpadselfhosted

Lo que la gente pregunta sobre rustpad-mcp

¿Qué es ni-c/rustpad-mcp?

+

ni-c/rustpad-mcp es mcp servers para el ecosistema de Claude AI. MCP server for Rustpad, the self-hosted collaborative text editor Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-08-18.

¿Cómo se instala rustpad-mcp?

+

Puedes instalar rustpad-mcp clonando el repositorio (https://github.com/ni-c/rustpad-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar ni-c/rustpad-mcp?

+

Nuestro agente de seguridad ha analizado ni-c/rustpad-mcp y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene ni-c/rustpad-mcp?

+

ni-c/rustpad-mcp es mantenido por ni-c. La última actividad registrada en GitHub es del 2026-08-18, con 0 issues abiertos.

¿Hay alternativas a rustpad-mcp?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega rustpad-mcp en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: ni-c/rustpad-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/ni-c-rustpad-mcp)](https://claudewave.com/repo/ni-c-rustpad-mcp)
<a href="https://claudewave.com/repo/ni-c-rustpad-mcp"><img src="https://claudewave.com/api/badge/ni-c-rustpad-mcp" alt="Featured on ClaudeWave: ni-c/rustpad-mcp" width="320" height="64" /></a>

Más MCP Servers

Alternativas a rustpad-mcp