Roomsby Aurmada

← Agent directory

Live · checked Oct 14, 2026MCPDesign & mediaCommunity listed · unclaimed

Dock

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

Add to your AI

Remote MCP server (streamable HTTP). Most clients sign you in with the provider on first use.

Claude Code

claude mcp add --transport http dock https://trydock.ai/api/mcp

Claude Desktop, Cursor, Windsurf (mcp config)

{
  "mcpServers": {
    "dock": {
      "url": "https://trydock.ai/api/mcp"
    }
  }
}

ChatGPT: Settings → Connectors → add a custom connector with the URL above.

How to call Dock from code (MCP)

Remote MCP over streamable HTTP with the official SDKs: initialize, list its tools, then call_tool / callTool.

Python

# pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

async def main():
    async with streamablehttp_client("https://trydock.ai/api/mcp") as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])

asyncio.run(main())

TypeScript

// npm i @modelcontextprotocol/sdk
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(new StreamableHTTPClientTransport(new URL("https://trydock.ai/api/mcp")));
console.log((await client.listTools()).tools.map((t) => t.name));

A2A vs MCP: which one to use

Call it with the Rooms SDK

Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs

// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "dock" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="dock")

Track record

Uptime
Collecting: shown after 3 daily checks.
Calls via Rooms (30 days)
0

No calls through Rooms in the last 30 days yet. Rooms only counts what it brokers, hosts or checks; nothing is estimated.

Tools (40)

  • list_workspaces
    List all workspaces the authenticated principal has access to. Returns workspace name (slug), mode (the default-view preference for the first surface), and creation date. A workspace is a container of one or more surfaces of any kind (see…
  • 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 of any kind, in any combination. Use `list_surfaces` to enumerate ev…
  • 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 row's `surface_slug` (the sheet it lives on). Empty array if…
  • 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 any workspace; columns auto-seed on the first row if the tabl…
  • 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_rows.
  • 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 lives on MOVES the row to that sheet (position recomputes t…
  • delete_row
    Permanently delete a row from a workspace. This action cannot be undone.
  • 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 the right sheet, reorganizing content across LinkedIn / Twi…
  • 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 surface), `content` (TipTap JSON, round-trippable into update…
  • 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-readable), `type` (text | longtext | number | status | person | d…
  • 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 key already exists. Editor role required. Use this for per-c…
  • 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 with their role (owner | editor | commenter | viewer). Used b…
  • delete_workspace
    Archive a workspace. Soft-delete: rows, doc body, and activity history are preserved, and the workspace can be restored from the Archived filter on the Workspaces page. Every member loses access immediately. Idempotent: calling on an alrea…
  • update_workspace
    Rename a workspace, change its slug, switch its default-view mode, or change its visibility (private | org). Pass any subset of `name`, `new_slug`, `mode`, `visibility`; fields you omit are left unchanged. Slug renames preserve old URLs vi…
  • 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-day invite token is minted that auto-accepts on magic-link si…
  • 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 owner is blocked; promote someone else to owner first. No-o…
  • 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 visibility is `org`, removing an explicit member of the same or…
  • 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 format every LLM emits natively), pass TipTap JSON when you need…
  • 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, videoCount, mermaidCount, mathCount, svgCount, calloutCount, cross…
  • 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-only at the end). Use this when the agent maintains a recu…
  • 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, batch summaries). Same markdown surface as update_doc: suppo…
  • 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. Use `list_surfaces` to enumerate html surfaces in a worksp…
  • 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 origin (`render.trydock.ai`) with no access to Dock cookies…
  • 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 sanitizer would strip anything from `html`). Errors cover cap br…
  • 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 so the human sees it in their dashboard. The new workspace…
  • get_recent_events
    Get recent activity events for a workspace. Who did what, when. Useful for understanding what's happened since you last looked.
  • 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 so the agent can open the exact row or doc section. Access-g…
  • 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 and next invoice date. These caps are live and enforced —…
  • 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 agents, 20 members, 200 workspaces, 5k rows per workspace)…
  • downgrade_plan
    ⛔ RETIRED PLAN SYSTEM — not Dock's pricing, and it does not change your human's per-person plan or credits. Schedules the caller's ORG to drop from a retired org plan (Pro or Scale, which only set resource caps) to Free at the end of the c…

Automated check: 90/100

Last run 2026-10-14 14:22 UTC. What we measured, not a guarantee.

  • 10/10Every URL is https.
  • 40/40MCP initialize answered (dock 1.0.0).
  • 15/1540 tools listed by tools/list.
  • 10/10MCP server card at https://trydock.ai/.well-known/mcp/server-card.json.
  • 10/10Has a homepage or documentation link.
  • 5/5Answered in 179 ms.
  • 0/10Not claimed with a domain proof yet.