MCP serverai.trydock/dock
AI workspace for you, your team, and every agent.
Read more
AI workspace for you, your team, and every agent. Tables, docs (images, 4K video), formulas.Overview
Score?
UNRATED 0.681
of what a free look can see, on 32 looks
Looks
36
last 7 hr ago
Tools
75
changed 1 day ago
More info
URL
trydock.ai/api/mcp
streamable-http
Says it is
dock 1.0.0
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.681 · highest on record 0.8561
Toolsfrom sha256:d4b0ee555c…8d1f62 · +4 −0 1 day ago
| Tool | Schema |
|---|---|
| add_column 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 |
input · no output |
| add_comment 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 |
input · no output |
| add_video added Add a video to the end of a video surface, from an https URL to an mp4, webm, mov or m4v file. A surface holds several videos (variants, cuts, a short playlist) that people flip th |
input · no output |
| 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 |
input · no output |
| append_doc_section 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 |
input · no output |
| bulk_create_rows 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 |
input · no output |
| bulk_update_rows 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 |
input · no output |
| create_row 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 |
input · no output |
| create_support_ticket 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 |
input · no output |
| create_surface Create a new surface (tab) inside a workspace. `kind` picks `table`, `doc`, `html`, `files`, or `video`. Optional `slug` (lowercase kebab-case, 3-64 chars); when omitted the server |
input · no output |
| create_webhook 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). |
input · no output |
| create_workspace 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 |
input · no output |
| delete_file 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 |
input · no output |
| delete_row Permanently delete a row from a workspace. This action cannot be undone. |
input · no output |
| delete_surface 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 |
input · no output |
| delete_webhook 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 |
input · no output |
| delete_workspace 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 |
input · no output |
| downgrade_plan 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 |
input · no output |
| evaluate_formula 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: |
input · no output |
| get_billing The caller's org resource caps and usage: active counts and caps for agents, members, workspaces, rows per workspace, API calls, webhooks, and the message bundle, plus card-on-file |
input · no output |
| get_comment_thread 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 |
input · no output |
| get_doc 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 |
input · no output |
| get_file 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 |
input · no output |
| get_html 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. |
input · no output |
| get_recent_events Get recent activity events for a workspace. Who did what, when. Useful for understanding what's happened since you last looked. |
input · no output |
| get_row 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 |
input · no output |
| get_workspace 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 |
input · no output |
| get_workspace_schema 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 |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| list_comments 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 |
input · no output |
| list_files 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 |
input · no output |
| list_my_support_tickets List the support tickets YOU filed (READ-ONLY) — the same tickets `create_support_ticket` creates, so you can check on one after filing it. Scoped exactly like the dashboard at /se |
input · no output |
| list_recent_files 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 |
input · no output |
| list_rows 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 |
input · no output |
| list_sheet_functions 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 |
input · no output |
| list_surfaces 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 |
input · no output |
| list_videos added List the videos in a video surface, in play order: id, position, label, name, url, content type, size and duration. Omit `surface_slug` for the workspace's first video surface. Vie |
input · no output |
| list_webhooks 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 |
input · no output |
| list_workspace_members 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 |
input · no output |
| 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 |
input · no output |
| move_rows 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 |
input · no output |
| pull_capability 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 |
input · no output |
| react_to_comment 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 |
input · no output |
| remove_video added Remove one video from a video surface. Get `video_id` from `list_videos`. Editor role required. Emits `video.updated`. |
input · no output |
| remove_workspace_member 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 |
input · no output |
| reply_to_comment 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 |
input · no output |
| request_connection Ask your owner to connect a third-party app (Gmail, Slack, Notion, Linear...) so you can use its tools. It does NOT connect anything and does NOT give you access — it reports the s |
input · no output |
| request_limit_increase 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 |
input · no output |
| request_revoke_agent_key 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 |
input · no output |
| request_rotate_agent_key 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 |
input · no output |
| resolve_comment Mark a comment thread resolved. Idempotent: calling on an already-resolved thread returns the existing `resolvedAt` unchanged. Fires `comment.resolved`. Pair with `unresolve_commen |
input · no output |
| revoke_api_key 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 |
input · no output |
| revoke_file_share 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 |
input · no output |
| rotate_api_key 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 |
input · no output |
| rotate_webhook_secret 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 |
input · no output |
| search 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 |
input · no output |
| send_message 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 |
input · no output |
| share_file 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 |
input · no output |
| share_workspace 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 |
input · no output |
| unresolve_comment 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 |
input · no output |
| update_doc 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 |
input · no output |
| update_doc_section 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 |
input · no output |
| update_html 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 |
input · no output |
| update_row 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 |
input · no output |
| update_surface 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 |
input · no output |
| update_video added Change one video in a video surface: swap its file (`url`), rename it or relabel it. Get `video_id` from `list_videos`. Omitted fields stay as they are. Editor role required. Emits |
input · no output |
| update_webhook 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 |
input · no output |
| update_workspace 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 |
input · no output |
| update_workspace_member 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 |
input · no output |
| upgrade_plan ⛔ RETIRED PLAN SYSTEM — do not offer this as Dock's pricing. Moves the caller's org between the retired org plans, which buy resource CAPS only and are not what Dock sells: Pro (10 |
input · no output |
| upload_file Upload a file into a Files surface (kind='files'). Provide the bytes inline as base64 in `content_base64` (a bare base64 string or a data: URL), capped ~3 MB — the request-body lim |
input · no output |
| validate_doc_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 |
input · no output |
| validate_formula Parse-check a formula expression server-side without writing anything. Returns { ok, error?, rewrittenFormula?, referencedFunctions, unknownFunctions }. Use BEFORE update_row / cre |
input · no output |
| validate_html 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 |
input · no output |
Verify it yourself
npx teppi-check https://trydock.ai/api/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ2390HQYBGJ854WKGYK9A