Docs Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| docs_statusA | Check that the Chrome extension is connected and report the bridge state. Call this first when another docs_* tool fails with a connection error. |
| docs_listA | List Google Docs: recent documents, or a Drive search when query is given. Returns titles, ids, owners and modified dates. |
| docs_readA | Read a Google Doc: markdown (default), text, html, or "structure" — an outline of titles, headings/sections, list items, tables with cells and placeholders, for planning edits. Long documents are paged with offset/maxChars. |
| docs_writeA | Write markdown (or plain text) into a Google Doc, typed in the document's own styles. Modes: append, prepend, replace_document (overwrites the body), insert_after / insert_before / replace_text (relative to an exact anchor snippet; replace_text with empty text deletes it), replace_section (anchor = heading text; replaces everything under that heading up to the next heading of the same or higher level). Markdown: headings, bold/italic/code/links, bullet/numbered/task lists with nesting, quotes, code blocks, tables, rules, images ( |
| docs_replaceA | Find and replace across a whole Google Doc using Docs' own Find and replace (keeps surrounding formatting). Returns how many were replaced. |
| docs_formatA | Format existing text in a Google Doc like a person would: select a target (exact text, a section under a heading, or the whole document) and apply bold/italic/underline/strikethrough, font, size, colour, highlight, link, paragraph style, alignment, list, indent or line spacing. Verified against the saved document. |
| docs_editA | Edit a Google Doc as a sequence of human steps in the real editor: select text (find) or move the caret, select paragraphs/sections, type markdown or inline text, delete, press keys (Tab moves between table cells), format, run any menu command by path, undo. Use it for anything docs_write/docs_format do not cover — table rows and columns, page breaks, table of contents, headers, etc. Steps run in order in one tab; the result reports each step and whether Drive shows the changes. |
| docs_typeA | Type into a Google Doc like a person: one keystroke at a time in the real editor, at a human pace with natural rhythm, pauses between sentences and paragraphs, and occasional typos corrected with Backspace. Same positions as docs_write (append, prepend, replace_document, insert_after/insert_before/replace_text an anchor, replace_section). Markdown headings, lists and quotes are set with Docs' own shortcuts, bold/italic/strikethrough are toggled with Cmd+B/I/Shift+X as you type; links, code and emoji are pasted. Short text finishes before this returns; longer text keeps typing in the background (in Chrome, even if this call ends) — the result gives a job id for docs_typing and an ETA. Speed: 55 wpm types ~275 characters a minute. |
| docs_typingA | Check or control docs_type jobs: status (progress, ETA, verification), list, pause, resume, cancel. A paused or interrupted job resumes where it stopped. Without job, acts on the most recent one. |
| docs_fillA | Fill in a template document. replace: exact text → new text for placeholders or sample text (every occurrence, keeping its formatting). sections: heading text → markdown that replaces everything under that heading, typed in the template's styles. Reports each item. |
| docs_templatesA | List Google Docs' template gallery (resumes, letters, reports, proposals, meeting notes, newsletters, …) with names and styles, for docs_create's template. |
| docs_copyB | Make a copy of a Google Doc (Docs' own "Make a copy") with a new title. Returns the copy's URL. |
| docs_createA | Create a new Google Doc with a title — blank with an optional markdown/text body, or from a template: a gallery template name (see docs_templates, e.g. "Meeting notes" or "Resume (Coral)") or any document to copy. Fill a template afterwards with docs_fill. |
| docs_renameB | Rename a Google Doc (change its title as shown in Drive). |
| docs_exportA | Download a Google Doc to a local file as docx, pdf, odt, rtf, epub, markdown, text or html. |
| docs_openA | Open a Google Doc in a foreground Chrome tab for the user to look at. Doesn't change the document. |
| slides_listA | List Google Slides presentations: recently opened, or a Drive search when query is given. |
| slides_readA | Read a Google Slides presentation as saved in Drive. "outline" (default): each slide with its layout, numbered shapes (role: title/subtitle/body/…, position in points, text as markdown with bullet nesting), tables, images and speaker notes — the shape numbers are what slides_write and slides_edit take. "text": plain text slide by slide. "json": the parsed structure. |
| slides_writeB | Add slides or change existing ones, in the deck's own layouts and theme. Each entry is one slide: without |
| slides_createB | Create a Google Slides presentation, optionally from a template deck (any deck URL or id: it is copied), and optionally fill it with slides in the same call. For a new blank deck the first entry fills its existing title slide (give it a |
| slides_replaceA | Slides' own Find and replace across every slide (shapes and tables). Pass find + replace, or replacements: {find: replace, …} to fill a template's placeholders in one call. occurrence replaces only the Nth match. Verified against the saved deck. |
| slides_editA | Edit a presentation with human steps, for what slides_write does not cover: go to a slide, select a shape (by number or role), select text inside it, type over it, format it (bold, italic, size, font, colour, lists, alignment), press keys, run any menu command ("Slide > Change background", "Arrange > Order > Bring to front"), undo. Steps run in order in one editor tab; changes are verified against the saved deck. |
| slides_copyC | Make a copy of a presentation with a new title. |
| slides_renameC | Rename a presentation. |
| slides_exportA | Save a presentation to a local file: pptx, pdf, odp or txt — or one slide as png, jpeg or svg (pass slide). |
| slides_openA | Open a presentation (optionally at a slide) in a new foreground Chrome tab for the user to see. |
| slides_typeA | Type text into a slide like a person: one keystroke at a time at a human pace (default ~55 wpm), with rhythm, thinking pauses and typos fixed with Backspace — into the title, subtitle, body, any shape by number, or the speaker notes. mode replace (default) clears the shape first; append adds paragraphs after its text. Bullets ("- "), numbering and nesting become real lists; bold / italic are toggled with Cmd+B/I while typing. Long text is typed in parts of up to ~90 s, each verified against the saved deck; the call returns when everything is typed. |
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 27 tools
Tools have overlapping editing capabilities (docs_write, docs_type, docs_edit, docs_format; slides equivalents) that require careful reading to select the right one. Descriptions clarify boundaries, but the large set can still confuse an agent about which tool to use for a given edit task.
All tools follow a consistent snake_case pattern with a resource prefix (docs_ or slides_) followed by a verb or noun. No mixed conventions appear, making names predictable and easy to parse.
27 tools is high for a single server, and while the dual docs/slides domain justifies many operations, there is redundancy among editing tools (write/type/edit/fill), making the set heavier than necessary.
Core CRUD is covered for content (create, read, update via multiple tools, rename), but missing delete operations for both Docs and Slides, as well as sharing/permissions and comment management, leaving notable gaps in the lifecycle.