Skip to main content
Glama
649,985 tools. Updated 2026-10-11 03:19

"Canvas" matching MCP tools:

  • Drop a ping marker on the canvas at scene-pixel coordinates (canvas.ping), visible to all clients. Use to draw players' attention to a spot. x and y are REQUIRED (scene pixels, not grid squares).
    ConnectorAPI key
  • Pan and/or zoom the canvas (canvas.animatePan) for everyone's view, in scene pixels, not grid squares. All fields optional: omit x/y to keep the centre, scale to keep the zoom. canvas-ping draws attention to a spot instead.
    ConnectorAPI key
  • Open the FluxInk handwriting recognition canvas. The user draws freehand strokes with a stylus, finger, or mouse. The strokes are converted by one of two model families: general recognition for handwriting, math, and chemical formulas, or structure recognition for molecular structures. Use this when the user asks to handwrite, draw, sketch, ink, scribble, or scrawl something. Use this when the user wants to draw a math equation, chemical formula, or molecular structure rather than type it. Use this when the user asks for a canvas, drawing pad, handwriting input box, or whiteboard. Use this when the user wants to convert stylus or finger drawings into recognized text or markup. Do NOT use this when the user types a question, equation, or formula in chat and just wants an answer. Do NOT use this when the user uploads or references an existing image of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document, study sheet, or layout PDF (call create_layout instead). Do NOT use this when the user wants text rendered in a personal handwriting style (call show_style_canvas instead). Do NOT use this for conversational or informational requests that need no ink input. Do NOT re-open if a FluxInk handwriting canvas is already visible from any earlier turn. Instead instruct the user to keep drawing on the existing canvas. Only set force_new=true when the user explicitly asks for a brand new, fresh, or blank canvas. Always pass the original chat message in the prompt parameter so context is preserved after recognition. After calling, write a single short acknowledgement and do NOT describe the canvas UI.
    ConnectorNo auth
  • Open the FluxInk natural texture ink style capture canvas. The user draws a few sample characters in a personal handwriting style. The widget then renders the requested text as a PNG spritesheet IN THAT EXACT PERSONAL HANDWRITING STYLE. Output is a downloadable spritesheet of individual handwritten glyphs that can be used as an asset (for example with image generation). Use this when the user asks to render or generate text in a personal handwriting style. Use this when the user wants a personalized handwritten note, card, letter, invitation, journal entry, or signature line that should look hand written by the user. Use this when the user wants to capture, clone, or sample a personal handwriting style and reuse it. Do NOT use this when the user just wants handwriting recognized (call show_handwriting_canvas instead). Do NOT use this for generic decorative handwritten fonts, calligraphy art, or AI generated script unrelated to the personal writing of the user. Do NOT use this to read text from an existing photo of handwriting (call recognize_image instead). Do NOT use this when the user wants a formatted document or layout (call create_layout instead). Do NOT use this for plain informational requests. Supports English and Chinese. Always pass the COMPLETE target text in the text parameter. Never truncate or abbreviate. Every character must appear in the spritesheet. Do NOT re-open if a FluxInk natural texture ink canvas is already visible from any earlier turn. Instead instruct the user to update the target text inside the existing widget. Only set force_new=true on an explicit user request for a brand new style canvas. After calling, write a single short acknowledgement and do NOT describe the UI. Once the user saves the spritesheet they can re-upload it for further design work.
    ConnectorNo auth
  • Run a single-statement SELECT against the canvas dataframes registered by bls_get_series or by an earlier register_as. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied at the bridge layer — use bls_dataframe_describe to list available dataframes. Supports JOINs, aggregates, window functions, and CTEs. Optional register_as persists the result as a new dataframe with a fresh TTL for chained analysis. Canvas SQL operations consume zero BLS API quota. Requires CANVAS_PROVIDER_TYPE=duckdb.
    ConnectorNo auth
  • Update a project's metadata: rename, change description, move to a different folder, or change aspect ratio. Only fields you provide are changed. To move a project to the workspace root, pass folder_id="" (empty string). Aspect ratio: pass any "W:H" (positive integers). The canvas is fit inside 1920×1080 keeping the ratio, so element pixel coordinates use the resulting canvas. Common values: - "16:9" → 1920×1080 (landscape, YouTube/web — default) - "9:16" → 608×1080 (portrait — TikTok/Reels/Shorts) - "1:1" → 1080×1080 (square — Instagram feed) - "3:4" → 810×1080 (portrait card) - "4:5" → 864×1080 (portrait — Instagram feed) Element coordinates are stored as fractions of the canvas, so existing elements reflow to the new canvas automatically — no element coordinates are rewritten. Concurrency: whole-project mutation (conflict domain: the entire project) — serialize. Do not run it in parallel with ANY other mutation on the same project_id, including element/voiceover edits; run them one at a time. (Mutations to different projects run in parallel freely.)
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to create, read, edit, typecheck, compile, and version local React canvas artifacts through MCP, with inline interactive previews in supporting chat clients.
    5 npm
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Turns Canvas LMS into a scriptable pipeline and exposes it to AI assistants via MCP for querying courses, grades, assignments, and syncing files using natural language.
    14
    3
    MIT

Matching MCP Connectors

  • TeamAgent Canvas MCP(服务端 0.4.0):91 个工具——开岗、改配置、跑动作、看数据、发布并配知识库。可匿名试用,带 Key 解锁全部。

  • A decentralized 32×32 pixel-war execution grid for autonomous AI agents on Base Mainnet. Competitive game theory meets an on-chain USDC economy with native Model Context Protocol (MCP) integration.

  • Run a read-only SQL SELECT over the bioactivity rows chembl_get_bioactivities spilled to a canvas — rank, group, dedupe, and aggregate across the FULL set, not the inline preview. Reference each staged table by the name chembl_get_bioactivities returned — bioactivities for its potency_ranked view, bioactivities_null_potency for null_potency; discover the staged tables and their columns with chembl_dataframe_describe. Compute honest aggregates here (e.g. SELECT molecule_chembl_id, MEDIAN(pchembl_value) AS med FROM bioactivities WHERE standard_type = 'IC50' GROUP BY 1 ORDER BY 2 DESC). Two independent bounds apply, each reported on its own field: truncated is true when the SQL result exceeded the canvas row cap, and rendered_rows says how many of the returned rows the markdown table holds once its character budget is reached (below row_count on a wide or long result). Page past either bound with SQL LIMIT/OFFSET — append e.g. LIMIT 500 OFFSET 500 and re-call; offsets reach rows beyond the canvas row cap. Requires CANVAS_PROVIDER_TYPE=duckdb.
    ConnectorNo auth
  • List canvas documents in a workflow run. Canvas documents are collaborative markdown files that multiple agents can edit in parallel. Omit run_id to list documents across all runs. Read-only. Use read_canvas for content and get_canvas_toc for section IDs. There is no get_run; list_runs returns run records. Pass playbook_id as the UUID or GUID of the playbook this call should target.
    ConnectorAPI key
  • List canvas dataframes (df_<id>) materialized by eia_query_route calls that passed stage: true, with provenance, expiry, row count, and column schema. Nothing is staged until such a call runs, so an empty list on a fresh session means no query has staged yet, not that staging failed. Drops entries for dataframes the canvas no longer holds before responding, so the list is always current. Pass a specific name to inspect one dataframe; omit to list all active dataframes for this tenant. A name that is not staged comes back as found=false alongside the handles that are, never as an empty list. Listing is not use: only an eia_dataframe_query statement naming a dataframe extends its expiry, so a dataframe polled with this tool and never queried still lapses on schedule.
    ConnectorNo auth
  • Delete a video, image, text, or shape LEAF layer. Errors on a group.<id> (dissolve it with ungroup_layers instead) and on a pinned layer such as the canvas backdrop. Deleting a video layer also takes everything welded to that clip: its welded audio overlay(s) and its welded caption lines, both of which derive their timing from the clip's trim and have no meaning without it.
    Connector
    Destructive
    No auth
  • Resize the ACTIVE page's canvas to width × height pixels. The composition is scaled UNIFORMLY to fit the new frame (a single factor s = min(newW/oldW, newH/oldH), so nothing distorts — a circle stays a circle) and then re-centred so the old composition centre maps to the new canvas centre. Every layer's position, size, group pivots, and x/y/width/height keyframes follow this fit+recentre; same-aspect resizes scale exactly, aspect changes letterbox the content centred. Each page owns its size, so this leaves sibling pages untouched — select_page then set_canvas_size again to resize another one. Common sizes: 1080×1920 (9:16 Reels/TikTok/Shorts), 1080×1350 (4:5 Instagram), 1080×1080 (1:1 square), 1920×1080 (16:9 YouTube).
    Connector
    Destructive
    No auth
  • Add ONE block (graph node) to a canvas rig — the granular edit for 'add a step that …'. Appends and auto-wires an edge from the current last block (default), from `after` (a node id/label/position), or unwired with after='none' (a new parallel branch head). Node fields match rig_author's nodes. Returns the rig's fresh block-by-block summary — read it back to the user; the Builder canvas updates live. For whole-rig authoring use rig_author; this is the scalpel.
    ConnectorNo auth
  • Publish a connected Framer project — pushes all staged CMS/canvas changes live. Pass deploy=true to also promote the deployment to production hosting. Run this after framer_cms / framer_canvas edits, then re-crawl to verify. CAUTION: publish flushes EVERY staged change on that project, including edits made by the site's own team in the Framer editor. On a shared/client project, confirm with the user before publishing.
    ConnectorOAuth
  • Edit a specific section of a canvas document. Parallel-safe: only the targeted section is updated. Requires canvas:write or full permission. Lock the section first in multi-agent scenarios. Use write_canvas only when replacing the whole document, and get_canvas_toc to obtain section_id. Pass playbook_id as the UUID or GUID of the playbook this call should target.
    ConnectorAPI key
  • Permanently delete a workflow run and its isolated canvas artifacts. This cannot be undone. Requires canvas:write or full permission. Use update_run with status=archived to keep artifacts, and delete_playbook only when the whole playbook should go. Pass playbook_id as the UUID or GUID of the playbook this call should target.
    Connector
    Destructive
    API key
  • Add a native editor layer. Supported types: text, image, shape, group, qr, video, audio. SVG uses an image layer with isSvg:true. Position is the layer CENTER in canvas pixels. The layer accepts the same persisted fields as /editor: transforms, opacity, blendMode, text styles/effects/rich text, image filters/customFilters/crop/masks/local effects/perspective, shape gradients/strokes/shadows, QR styling, timeline ranges, trims, volume, and keyframes. Returns the changed slide as an inline preview automatically.
    ConnectorNo auth
  • Run a read-only SQL SELECT against a canvas table staged by gnomad_list_gene_variants (table gene_variants) or gnomad_search_clinvar (table clinvar_variants) and return one page of the result. Use the canvas_id and table_name those tools returned to rank by allele frequency, group by consequence class, count loss-of-function variants, or filter the full set the inline preview only sampled. A page holds up to limit rows (default 100, max 500) and ends early once its rows reach 10,000 characters of JSON; continue from next_offset until it is null. Each page re-runs the SQL, so stable paging needs an ORDER BY over a unique key (such as variant_id) and an unchanged table. Paging reaches the server row cap: above it total is null and later rows are reachable only by filtering or aggregating in SQL. SELECT statements only — writes, DDL, and file/HTTP table functions are rejected by the canvas gate. Call gnomad_dataframe_describe first to discover staged table and column names.
    ConnectorNo auth
  • 执行一个岗位动作(如 AICare 的 preflight / list_checks / gen_report / run_detection / resolve_user)。参数:slug、action 必填;params 按 list_actions 的 schema 填;session_id 想让结果落在某次会话里就带;hostUserId 宿主用户标识可选。返回 {ok, mode:"sync", data} 直接用;{ok, mode:"job", jobId, pollSec} 用 get_job 轮询。代价:list_actions 标 paid 的会从岗位出资人余额扣 credits(出报告 5 / 跑检测 2),失败不扣;同键(如同对象同一天)重复调用返回缓存结果(cached 标记)不重复扣,用户催第二次可放心重试。典型编排:list_actions → canvas_action(preflight) 拿背景 → canvas_action(gen_report) → get_job → 用自然语言讲给用户。公共岗位:gaia-academy(龙虾学院 · Agent 进修)的动作标 public:true——任何持有效 Key 的调用方都能跑,不需要拥有该岗位;学员身份取调用方 Key 的用户,非 public 动作对非归属方仍 403。典型用法:canvas_action(gaia-academy, search_courses → start_exam → submit_exam → get_principle)。
    ConnectorNo auth
  • 把内容推到某个画布会话的屏上。参数:session_id 必填(来自 open_canvas 或 list_sessions);content 必填,写成一条"助手回复"文本,可含 ```canvas-md(Markdown 卡片)/ ```canvas-html(完整 HTML 文档)/ ```canvas(JSON 块)围栏,围栏外文字显示为字幕;speak=true 朗读字幕;title 可选。会话在线立即上屏;不在线(含还没人打开过的)存为待展示,该会话或同岗位同一 hostUserId 下次打开自动补推。屏属于会话不属于人:别复用别人的 session_id;要执行有副作用的动作(出报告/跑检测)用 canvas_action。需要有效 Key,匿名不开。
    ConnectorNo auth
  • When: use whenever you would otherwise make several canvas_* write calls in a row, above all with tools that take one item per call: create every zone (group_nodes), convert many nodes (replace_node), set several tables' columns (set_columns). Eighteen zone creations or thirty-five replacements become one call and one save. Each operation is {"tool": "<canvas tool, with or without the canvas_ prefix>", "args": {<that tool's arguments, without diagram_id>}}. Operations run in order on the same diagram, so a later one can use what an earlier one created by its exact label (create a zone in operation 1, add nodes with that zone as their group in operation 2). All or nothing: if one operation fails, nothing is saved and the result names the failing operation. Write tools only; read with canvas_view. Returns compact JSON: one line per operation, the ids created, changed or removed, and the new revision. Next: canvas_layout_canvas once if the structure changed (or end the batch with a layout_canvas operation), then canvas_view.
    Connector
    Destructive
    API key
  • Generate the A4 PARTICIPANT WORKSHEET for ONE activity — the sheet each participant fills in on their own, at the table. NOT the big sheet on the wall: if the user says canvas, wall canvas, poster, brownpaper, large format, A1, A0, matrix or mapping wall, use generate_canvas instead. Uses Metodic's real generator and returns a branded document in the chat (also saved to the session for the print-ready PDF) — do NOT author these yourself. Give the activity's number (1-based, from the agenda). For a whole session, call this once per activity (1, then 2, …). Takes ~15-20s and ~0.5 Metodic credit each — but if a worksheet for that activity already exists it comes back for free, so just ask. Framing activities (Opening/Closing) have no worksheet.
    ConnectorNo auth