Overleaf alternative online LaTeX editor. AI agents edit, comment, and chat. Keep or revert edits.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://app.paperdock.dev/api/mcp14 tools · 1532mslist_projectsList standard PaperDock projects accessible to the connected account, including its current role and effective MCP capabilities for each. Use projectId only for subsequent tool calls and do not show it unless explicitly requested.List standard PaperDock projects accessible to the connected account, including its current role and effective MCP capabilities for each. Use projectId only for subsequent tool calls and do not show it unless explicitly requested.
No input schema was published for this tool.
create_projectCreate a new PaperDock project with a starter main.tex only when the user explicitly asks. Names are unique per owner, ignoring letter case and leading/trailing spaces. On PROJECT_NAME_ALREADY_EXISTS, do not retry create_project with the same name or a case/whitespace-only variant. Call list_projec…Create a new PaperDock project with a starter main.tex only when the user explicitly asks. Names are unique per owner, ignoring letter case and leading/trailing spaces. On PROJECT_NAME_ALREADY_EXISTS, do not retry create_project with the same name or a case/whitespace-only variant. Call list_projec…
| Parameter | Type | Description |
|---|---|---|
| name* | string | — |
list_filesList project file metadata without loading full file contents.List project file metadata without loading full file contents.
| Parameter | Type | Description |
|---|---|---|
| projectId* | string | — |
search_filesFind where a word, phrase, citation key, label, LaTeX command, or other text appears across editable project files when its file or location is unknown. Search is case-insensitive and returns matching paths, positions, revisions, and short snippets. If the target file is already known, use read_fil…Find where a word, phrase, citation key, label, LaTeX command, or other text appears across editable project files when its file or location is unknown. Search is case-insensitive and returns matching paths, positions, revisions, and short snippets. If the target file is already known, use read_fil…
| Parameter | Type | Description |
|---|---|---|
| extensions | array | — |
| limit | number | — |
| projectId* | string | — |
| query* | string | — |
read_fileRead an editable project file or return a 10-minute signed download URL for a private project asset. Provide exactly one target: fileId or path. For a localized task in a large text file, pass lineRange with inclusive 1-based startLine and endLine values to return at most 400 lines, absolute UTF-16…Read an editable project file or return a 10-minute signed download URL for a private project asset. Provide exactly one target: fileId or path. For a localized task in a large text file, pass lineRange with inclusive 1-based startLine and endLine values to return at most 400 lines, absolute UTF-16…
| Parameter | Type | Description |
|---|---|---|
| fileId | string | — |
| lineRange | object | — |
| path | string | — |
| projectId* | string | — |
read_pdfGet the latest successful compiled PDF for an explicit entry .tex path, with a signed download link valid for at most 10 minutes, size, generation time, and freshness information. This never compiles, waits, or polls. A newer running or failed compile may coexist with an older successful PDF. Fresh…Get the latest successful compiled PDF for an explicit entry .tex path, with a signed download link valid for at most 10 minutes, size, generation time, and freshness information. This never compiles, waits, or polls. A newer running or failed compile may coexist with an older successful PDF. Fresh…
| Parameter | Type | Description |
|---|---|---|
| path* | string | Project-relative entry .tex path, such as main.tex. Not a PDF path or URL. |
| projectId* | string | — |
upload_fileprivilegedCreate one new editable text file from UTF-8 content. For compatibility contentBase64 is accepted only for UTF-8 text at an editable extension. Existing paths are never overwritten; use edit_file for existing text. Binary uploads and replacements are not supported by MCP: ask the user to upload or…Create one new editable text file from UTF-8 content. For compatibility contentBase64 is accepted only for UTF-8 text at an editable extension. Existing paths are never overwritten; use edit_file for existing text. Binary uploads and replacements are not supported by MCP: ask the user to upload or…
| Parameter | Type | Description |
|---|---|---|
| content | string | — |
| contentBase64 | string | — |
| mimeType | string | — |
| path* | string | — |
| projectId* | string | — |
| sha256 | string | — |
create_fileCreate a new editable text file at a new project path from supplied content. Pass an explicit empty string to create an empty file. Existing paths are never overwritten.Create a new editable text file at a new project path from supplied content. Pass an explicit empty string to create an empty file. Existing paths are never overwritten.
| Parameter | Type | Description |
|---|---|---|
| content* | string | — |
| path* | string | — |
| projectId* | string | — |
edit_fileprivilegedImmediately edit one existing editable text file and record the applied change in PaperDock's Review changes UI. Provide exactly one target (fileId or path) and exactly one payload: operations, content, or rangeToken with insert. Read the relevant current text first and pass its baseRevision. For a…Immediately edit one existing editable text file and record the applied change in PaperDock's Review changes UI. Provide exactly one target (fileId or path) and exactly one payload: operations, content, or rangeToken with insert. Read the relevant current text first and pass its baseRevision. For a…
| Parameter | Type | Description |
|---|---|---|
| baseRevision* | integer | — |
| expectedUpdatedAt | string | — |
| fileId | string | — |
| operations | array | — |
| content | string | — |
| insert | string | — |
| path | string | — |
| projectId* | string | — |
| rangeToken | string | — |
list_commentsList active project comments and their replies. Resolved comment history is not returned by this tool.List active project comments and their replies. Resolved comment history is not returned by this tool.
| Parameter | Type | Description |
|---|---|---|
| projectId* | string | — |
create_commentCreate an open Comment on a .tex project file and post it immediately to project collaborators without changing the source file. Later deletion cannot undo prior delivery or reading. Selection offsets may be inferred from quote. Provide exactly one target: fileId or path.Create an open Comment on a .tex project file and post it immediately to project collaborators without changing the source file. Later deletion cannot undo prior delivery or reading. Selection offsets may be inferred from quote. Provide exactly one target: fileId or path.
| Parameter | Type | Description |
|---|---|---|
| body* | string | — |
| contextAfter | string | — |
| contextBefore | string | — |
| fileId | string | — |
| path | string | — |
| projectId* | string | — |
| quote | string | — |
| selectionFrom | integer | — |
| selectionTo | integer | — |
reply_to_commentPost a reply under the connected PaperDock account, marked as created via an AI agent, immediately to an open Comment. Use a commentId returned by list_comments or copied from PaperDock. If a Comment is not found, call list_comments once and do not retry the same missing commentId. It is visible to…Post a reply under the connected PaperDock account, marked as created via an AI agent, immediately to an open Comment. Use a commentId returned by list_comments or copied from PaperDock. If a Comment is not found, call list_comments once and do not retry the same missing commentId. It is visible to…
| Parameter | Type | Description |
|---|---|---|
| body* | string | — |
| projectId* | string | — |
| commentId* | string | — |
list_chat_messagesRead recent project chat messages in chronological order.Read recent project chat messages in chronological order.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | — |
| projectId* | string | — |
send_chat_messagePost a message under the connected PaperDock account, marked as created via an AI agent, immediately to the selected private PaperDock project's Chat. It is visible to project members, and later editing or deletion cannot undo prior delivery or reading.Post a message under the connected PaperDock account, marked as created via an AI agent, immediately to the selected private PaperDock project's Chat. It is visible to project members, and later editing or deletion cannot undo prior delivery or reading.
| Parameter | Type | Description |
|---|---|---|
| body* | string | — |
| projectId* | string | — |
14 of 14 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Overleaf alternative online LaTeX editor. AI agents edit, comment, and chat. Keep or revert edits.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.