Skip to main content
Glama

create_surface

Create a new surface inside a workspace. kind picks table, doc, html, files, or video. Optional slug (lowercase kebab-case, 3-64 chars); when omitted the server slugifies name and appends a numeric suffix on collision. Optional columns sets a table's starting columns; without it the table starts EMPTY and your first row write creates the columns its data needs. Ignored for other kinds. html surfaces start with an empty body — write content via update_html. files surfaces start empty; browse them with list_files / get_file / list_recent_files, and add files with upload_file (for a file on your own machine or over ~3 MB, call create_file_upload first). video surfaces hold one or more videos people flip through (variants, cuts): add each with add_video from an https URL (mp4, webm, mov or m4v); for a video on your own machine, get that URL with create_video_upload. Editor role required. Emits surface.created so live listeners on the workspace stream see the new surface without a refetch.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesSurface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML page, `files` for uploaded files + folders (put a local file in with `create_file_upload` then `upload_file`), `video` for a surface of videos people flip through (a local video goes in with `create_video_upload` then `add_video`).
nameYesDisplay name of the surface. 1-64 chars.
slugYesThe workspace slug. Accepts either the bare slug ('my-workspace') or the org-prefixed form ('my-org/my-workspace') as shown in the dashboard URL; both resolve to the same workspace.
columnsNoOptional initial columns for `table` kind. Same shape as get_workspace_schema returns. Omit for an empty table.
surface_slugNoOptional URL-friendly slug for the surface (lowercase kebab-case, 3-64 chars). Auto-derived from `name` when omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / columns / description
      Previous value: -"Optional initial columns for `table` kind. Same shape as get_workspace_schema returns. Defaults to Title/Status/Notes when omitted."New value: +"Optional initial columns for `table` kind. Same shape as get_workspace_schema returns. Omit for an empty table."
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders (put a local file in with `create_file_upload` then `upload_file`), `video` for a tab of videos people flip through (a local video goes in with `create_video_upload` then `add_video`)."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML page, `files` for uploaded files + folders (put a local file in with `create_file_upload` then `upload_file`), `video` for a surface of videos people flip through (a local video goes in with `create_video_upload` then `add_video`)."
    • changedInput schema / properties / name / description
      Previous value: -"Display name shown on the tab. 1-64 chars."New value: +"Display name of the surface. 1-64 chars."
  2. Changed1 schema field changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders, `video` for a tab of videos people flip through."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders (put a local file in with `create_file_upload` then `upload_file`), `video` for a tab of videos people flip through (a local video goes in with `create_video_upload` then `add_video`)."
  3. Changed2 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders, `video` for a tab of videos people flip through."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "table",
      -  "doc",
      -  "html",
      -  "files"
      -]New value: +[
      +  "table",
      +  "doc",
      +  "html",
      +  "files",
      +  "video"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab, `files` for uploaded files + folders."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "table",
      -  "doc",
      -  "html"
      -]New value: +[
      +  "table",
      +  "doc",
      +  "html",
      +  "files"
      +]
  5. Changed2 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for a sandboxed HTML mockup tab."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "table",
      -  "doc"
      -]New value: +[
      +  "table",
      +  "doc",
      +  "html"
      +]
  6. Changed3 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for sandboxed HTML/CSS/JS."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "table",
      -  "doc",
      -  "html"
      -]New value: +[
      +  "table",
      +  "doc"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Display name shown on the tab. 1-64 chars. Make it specific to what the surface holds (e.g. 'Findings', 'Weekly schedule', 'Architecture diagram'). Avoid generic placeholders like 'Notes' or 'Sheet' — those leave every tab in a multi-surface workspace looking the same."New value: +"Display name shown on the tab. 1-64 chars."
  7. Changed3 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"Surface kind. `table` for rows + columns, `doc` for TipTap body."New value: +"Surface kind. `table` for rows + columns, `doc` for TipTap body, `html` for sandboxed HTML/CSS/JS."
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "table",
      -  "doc"
      -]New value: +[
      +  "table",
      +  "doc",
      +  "html"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Display name shown on the tab. 1-64 chars."New value: +"Display name shown on the tab. 1-64 chars. Make it specific to what the surface holds (e.g. 'Findings', 'Weekly schedule', 'Architecture diagram'). Avoid generic placeholders like 'Notes' or 'Sheet' — those leave every tab in a multi-surface workspace looking the same."
  8. Changed1 schema field changed
    • changedInput schema / properties / slug / description
      Previous value: -"The workspace slug. Accepts either the bare slug ('my-workspace') or the org-prefixed form ('my-org/my-workspace') as shown in the dashboard URL — both resolve to the same workspace."New value: +"The workspace slug. Accepts either the bare slug ('my-workspace') or the org-prefixed form ('my-org/my-workspace') as shown in the dashboard URL; both resolve to the same workspace."
  9. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.