mcpserver.lol
registry/dock
Connection check verified live · 20h ago

dock

AI workspace for you, your team, and every agent. Tables, docs (images, 4K video), formulas.

Tools 71
GitHub stars
Installs / wk
Licence
Transport streamable-http
Last checked 20h ago

Tools & capabilities

71 tools

Read from the running server on 20h ago.

add_column key*slug*type*label*widthoptions +2
Append a single column to a workspace's table schema. Position is auto-computed as next-after-max so the contiguity invariant holds. Key collision (409) if a column with the same k…
add_comment body*slug*target*mentionsparentId
Post a new comment on any target in a workspace: a row, a cell, a doc text range, an html element, an entire surface, or the workspace itself. Polymorphic target shape mirrors the…
address_book
Lists the agents you can reach — your own agents AND agents shared to you from other owners. To MESSAGE any of them, use the `message_teammate` tool (it delivers AND wakes the reci…
append_doc_section slug*markdown*surface_slug
Append a chunk of Markdown to the END of a workspace's doc body. Designed for crons + ingest agents that produce content in timestamped chunks (changelog updates, daily standups, b…
bulk_create_rows rows*slug*surface_slugauto_create_columns
Append many rows to a workspace's table surface in ONE call — the bulk version of create_row. Use this instead of looping create_row when ingesting more than a few rows (lower late…
bulk_update_rows slug*updates*
Update many existing rows in ONE call — the bulk version of update_row. Use this instead of looping update_row when changing more than a few rows (much lower latency + token cost f…
create_row data*slug*surface_slugauto_create_columns
Append a new row to a workspace's table surface. The data field is a JSON object with column-name keys. Status column accepts: drafted, queued, sealed, active, blocked. Works on an…
create_support_ticket body*kind*title*contextattachmentUrls
File a support ticket. Mirrors to a GitHub issue in Dock's support repo and shows up in the user's dashboard at /settings/support. Use this for bugs (you hit an error), feature req…
create_surface kind*name*slug*columnssurface_slug
Create a new surface (tab) inside a workspace. `kind` picks `table`, `doc`, `html`, or `files`. Optional `slug` (lowercase kebab-case, 3-64 chars); when omitted the server slugifie…
create_webhook url*events*org_slug*
Register a new webhook endpoint on an org. The URL must be public (loopback / private ranges / cloud metadata are blocked at create-time AND re-validated by DNS at delivery-time).…
create_workspace modename*sluginitial_markdown
Create a new workspace in the caller's org. Works for both user and agent callers; agent-created workspaces attribute to the agent and enroll the agent's owning user as a co-owner…
delete_file slug*file_id*
Soft-delete a file by id. Moves to a 30-day trash window before the cleanup cron hard-deletes + refunds the storage quota. Restorable via the REST PATCH endpoint (`PATCH /api/works…
delete_row slug*rowId*
Permanently delete a row from a workspace. This action cannot be undone.
delete_surface slug*surface_slug*
Archive a surface (soft-delete). Rows + doc body are preserved for restore. Idempotent: calling on an already-archived surface returns its current archivedAt unchanged. Cannot arch…
delete_webhook org_slug*webhook_id*
Permanently delete a webhook endpoint. The URL stops receiving events immediately and the secret is destroyed; recreate from scratch if you need to re-add it. To pause without losi…
delete_workspace modeslug*
Archive a workspace. Soft-delete: rows, doc body, and activity history are preserved, and the workspace can be restored from Settings · Archived. Every member loses access immediat…
downgrade_plan modeconfirm_token
Schedule a downgrade to Free at the end of the current billing period. The org keeps its current plan (Pro or Scale) and paid limits until the period ends. No-op when already on Fr…
evaluate_formula atformula*workspace_slug
Evaluate a formula expression against an actual Dock workspace's columns + rows, server-side, returning the same display value the UI's HyperFormula engine would render. Two modes:…
get_billing
Get the caller's org billing summary: current plan (free, pro, or scale), active counts and caps for every gated resource (agents, members, workspaces, rows per workspace, API call…
get_comment_thread comment_id*
Fetch a single comment with its replies + reactions in one round trip. Pass any comment id in the thread (root or reply). Returns `{ comment, replies }` where each entry includes a…
get_doc slug*formatsurface_slug
Read a workspace's doc (TipTap rich-text) body. Format is negotiable via `format`: `markdown` (default — CommonMark + GFM, ready to feed to an LLM or render in a non-ProseMirror su…
get_file slug*file_id*
Fetch metadata + a download URL for a single file by id. The `download_url` field is a direct Vercel Blob URL valid until the file is hard-deleted (Phase 5; Phase 6 wires a files.t…
get_html slug*surface_slug
Read an HTML surface's body. HTML surfaces (Surface.kind="html") store mockup or full-page content as three text fields (html, css, js) rendered together inside a sandboxed iframe.…
get_recent_events slug*limit
Get recent activity events for a workspace. Who did what, when. Useful for understanding what's happened since you last looked.
get_row slug*rowId*
Fetch a single row by id without listing the full table. Useful when a cue payload carries a row id and the agent only needs that one record. Returns the same row shape as list_row…
get_support_ticket number*
Read ONE support ticket by its number (as shown in list_support_tickets), including the full body/description. Read-only, scoped to Dock's support repo. Returns not-found for a num…
get_workspace slug*
Get details about a specific workspace by its slug, including columns of its primary table surface, member count, and row count. A workspace contains one or more surfaces (tabs): a…
get_workspace_schema slug*surface_slug
Return a table surface's column definitions so an agent knows what keys create_row/update_row will accept. Each column has `key` (the field name in row.data), `label` (human-readab…
list_api_keys
List API keys. Agent callers see only the key they're authenticated with (a one-row response: id, prefix, lastUsedAt, the workspace it's bound to). User callers (cookie session) se…
list_capabilities
List the provider API keys your owner has stored in their Vault (e.g. Gemini, ElevenLabs, OpenAI) so you can use them in a task. Returns `capabilities`: the exact NAMES of the keys…
list_comments slug*limitauthoroffsetstatussurface +3
List comments in a workspace. Filter by `target_type` (row, cell, doc_range, html_element, surface, workspace), `target_id`, `surface` (returns every comment anchored to any elemen…
list_files slug*surface_slug*parent_folder_id
List the folder + file children of a Files surface (kind='files'). Folders sorted first by position then name; files sorted by name. Returns folders[], files[] with cuids agents ca…
list_recent_files slug*surface_slug*
List the 50 most recently updated files in a Files surface, sorted by `updatedAt` descending. Flat surface-wide list; ignores folder structure. Useful for an agent answering 'what…
list_rows slug*limitoffsetsurface_slug
List rows in a workspace's table surface. Returns rows with their data (a JSON object of column-name to value), creation time, the principal who created/updated each row, AND the r…
list_sheet_functions nameslicecategory
List the Dock Sheets formula functions an agent can use in a cell carrier. Returns the canonical name, signature, one-sentence description, category (Math/Logic/Text/Date/Lookup/Pr…
list_support_tickets limitstate
List support tickets (READ-ONLY) from Dock's support repo. These are the SAME tickets create_support_ticket files, so the list reflects ALL tickets — whether routed through chat or…
list_surfaces slug*archived
List the surfaces (tabs) inside a workspace. A workspace can hold any combination of `table` (rows + columns) and `doc` (TipTap body) surfaces, one or many of either kind; this too…
list_webhooks org_slug*
List webhook endpoints registered on an org. Returns each webhook's id, url, subscribed events, active flag, and an 8-char `secretPreview` of the signing secret (full secret is onl…
list_workspace_members slug*
List principals with explicit access to a workspace. Returns users (id, name, email; email visible only when the caller is in the same org) and agents (id, name, brandKey) along wi…
list_workspaces
List all workspaces the authenticated principal has access to. Returns workspace name (slug), mode (the default-view preference for the first tab), and creation date. A workspace i…
move_rows slug*rowIds*target_surface_slug*
Atomically move N rows from their current sheet(s) to a target sheet inside the same workspace. Use for programmatic data migration: dropping a batch of agent-produced drafts onto…
pull_capability name*
Pull one provider API key your owner has vaulted, so you can use it for the task at hand (e.g. call the Gemini or ElevenLabs API). Pass `name` = the EXACT capability name from `lis…
react_to_comment emoji*actioncomment_id*
Add or remove an emoji reaction to a comment. Reactions are per-principal: each (commentId, principalId, emoji) combination is unique. `action: 'add'` is idempotent (re-adding the…
remove_workspace_member slug*member_id*confirm_token
Remove a workspace member. Editor role required; owner-tier removals require an owner caller. Sole-owner removal is blocked; promote someone else first. Note: if the workspace visi…
reply_to_comment body*mentionscomment_id*
Convenience wrapper around `add_comment` for the common reply case. Pass the parent comment id and the body; the handler reconstructs the target from the parent (no need for the ag…
request_connection reasontoolkit_slug*
Ask your owner to connect a third-party app (Gmail, Slack, Notion, Linear...) so you can use its tools. This SHOWS THEM A CARD to approve — it does NOT connect anything and does NO…
request_limit_increase kind*reasondesiredValue
Ask Dock to raise a plan limit (agents, workspaces, rows, or other). We record the signal on the admin side; there's no reply loop. Use this when you hit a cap you can't resolve wi…
request_revoke_agent_key reasontarget_agent_id*
Ask the human owner to revoke ANOTHER agent's active API key (sibling agent). The MCP `revoke_api_key` tool is self-only by design; this is the cross-agent escalation path. Returns…
request_rotate_agent_key reasontarget_agent_id*
Ask the human owner to rotate ANOTHER agent's active API key (mint a new one + revoke the old). Same shape as request_revoke_agent_key: returns an approval_url, requires the target…
resolve_comment comment_id*
Mark a comment thread resolved. Idempotent: calling on an already-resolved thread returns the existing `resolvedAt` unchanged. Fires `comment.resolved`. Pair with `unresolve_commen…
revoke_api_key id
Revoke an API key (soft-delete via `revokedAt`). Subsequent requests with the key return 401. Agents may revoke ONLY their own key; calling this is effectively a self-destruct, the…
revoke_file_share slug*file_id*token_id*
Soft-revoke a share token minted via `share_file`. The public `/share/files/<token>` URL stops resolving immediately. Idempotent: revoking an already-revoked token returns `already…
rotate_api_key id
Atomically mint a new API key with the same agent / workspace / scopes / name and revoke the old one. Returns the new plaintext (`key`) once; store it before discarding the respons…
rotate_webhook_secret org_slug*webhook_id*
Mint a fresh signing secret for a webhook. The new `secret` is returned exactly once; copy it to the receiver before the next event lands. After this call, deliveries are signed wi…
search q*kindlimitoffset
Search across everything the caller can already touch: workspace names, row cell values, and doc sections/paragraphs. Returns ranked hits (score 0-1) with a navigable URL per hit s…
send_message to*body*replyTosend_at
Send a direct message to another agent or human in the messaging substrate. Wires through cue.dock.svc, the same path the /live UI uses, so the recipient sees this message in their…
share_file slug*file_id*
Mint a public share token for a file. Returns a `url` of the form `https://trydock.ai/share/files/<token>` that anyone (no auth) can open to view + download the file. The token is…
share_workspace roleslug*email*
Invite a human (by email) to a workspace at a specified role. If the email already belongs to a Dock user they're added immediately and a notification email is sent; if not, a 7-da…
unresolve_comment comment_id*
Re-open a previously-resolved comment thread. Idempotent on already-unresolved comments. Fires `comment.unresolved` with `reason: 'manual'`. (Auto-unresolve on reply fires the same…
update_doc slug*contentmarkdownsurface_slugif_unmodified_since
Replace a workspace's doc body. Takes EITHER TipTap JSON (`content`) OR Markdown (`markdown`): pass markdown when you're producing prose from scratch (CommonMark + GFM is the forma…
update_doc_section slug*heading*markdown*surface_slugallowBlockLoss
Replace a single section of a workspace's doc body, identified by its heading text. The targeted edit complement to `update_doc` (full replacement) and `append_doc_section` (append…
update_html jscsshtmlslug*surface_slug
Write an HTML surface's body. Pass any of `html` / `css` / `js`; omitted fields stay unchanged. Pass empty string to clear. The surface renders in a sandboxed iframe on a separate…
update_row data*slug*rowId*positionsurface_slugauto_create_columns
Update specific fields of an existing row. Only the fields provided in `data` are updated; others are preserved. Setting `surface_slug` to a different sheet than the row currently…
update_surface nameslug*columnspositionsurface_slug*new_surface_slug
Rename, reslug, reorder, OR replace the column schema of a surface. Pass any subset of `name`, `new_surface_slug`, `position`, `columns`. Position is 0-based and is normalised acro…
update_webhook active*org_slug*webhook_id*
Toggle a webhook's `active` flag on or off. Inactive webhooks are skipped at delivery time (no retry queue, no log row) but the endpoint config is preserved so flipping back is one…
update_workspace modenameslug*new_slugvisibilityconsent_mode
Rename a workspace, change its slug, switch its default-view mode, or flip its visibility (private | org | unlisted | public). Pass any subset of `name`, `new_slug`, `mode`, `visib…
update_workspace_member role*slug*member_id*
Change an existing workspace member's role. Editor role required to caller. Owner-tier transitions (promoting to or demoting from owner) require an owner caller. Demoting the sole…
upgrade_plan modeplanconfirm_token
Move the caller's org to Pro ($19/mo flat, 10 agents, 20 members, 200 workspaces, 5k rows per workspace) or Scale ($49/mo flat, 30 agents, 60 members, 1,000 workspaces, 50k rows pe…
validate_doc_markdown markdown*
Pre-flight check on markdown BEFORE writing it via update_doc / append_doc_section. Returns { ok, errors, warnings, parsed } with parsed counts per format type (imageCount, videoCo…
validate_formula formula*
Parse-check a formula expression server-side without writing anything. Returns { ok, error?, rewrittenFormula?, referencedFunctions, unknownFunctions }. Use BEFORE update_row / cre…
validate_html jscsshtml
Pre-flight check on html / css / js BEFORE writing via update_html. Returns { ok, errors, warnings, parsed } where parsed has byte counts per field and `dropped` (true if the sanit…