inkboard
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_boardC | Creates an empty board (.inkboard file). |
| save_boardA | Saves the board displayed in the application (live mode; it must already have a file). No effect in file mode: every tool already saves there. |
| describe_boardA | Lists the pages and objects of a board (id, type, text, position, connector links). In live mode, also reports the user's selection ( |
| board_changesA | Reports what the USER changed on the board since your last look (describe_board or board_changes): objects added, modified, deleted. Your own changes are not reported. The first call records a baseline. |
| add_imageA | Adds an image (PNG, JPEG, GIF, WebP or SVG, 15 MiB at most) from a file ( |
| add_shapeC | Adds a shape with text (rect, ellipse, diamond, triangle, sticky = sticky note, text = free text). Returns the id. |
| add_connectorA | Connects two objects with an arrow that follows them when they move (ids returned by add_shape or describe_board). |
| add_tableB | Adds a table of cells; |
| add_code_blockB | Adds a code block (monospace font, dark background, syntax highlighting). |
| add_formulaB | Adds a LaTeX formula (math mode) typeset the way TeX does. Errors if the LaTeX is not supported. |
| import_mermaidA | Adds a Mermaid diagram (flowchart/graph, stateDiagram, sequenceDiagram) with automatic layout. Returns the ids created. |
| update_objectA | Modifies an object: text, position (top-left corner), size (shapes), colors, line style, font, lock, rotation; a connector's route, arrowheads and ends; one table cell. Everything is validated before anything is applied (an error changes nothing); a parameter that does not suit the object's type is ignored and listed in |
| delete_objectA | Deletes an object, or several with |
| auto_layoutC | Rearranges the shapes joined by connectors into a layered graph. |
| add_pageC | Adds a page. Returns its number. |
| exportA | Exports a page to a file; the format is chosen by the extension of |
| search_iconsA | Searches the built-in icon library (about 28,800 icons: AWS, Azure, Google Cloud, Cisco, Kubernetes, brand logos, UI and diagram symbols...) by keywords; names are in English. Every word of |
| list_icon_groupsA | Lists the groups of the icon library (AWS, Azure, Brands...) with their sets and the number of icons of each, to know what to search for. Does not modify the board (a board |
| add_iconA | Places an icon of the library on the board, as an image object that can be connected with add_connector. |
| renderA | Returns a PNG picture of the board (or of a part of it) as an image, to check your work visually. Read-only: the board, the file and the undo history are untouched. By default the whole page content is shown. |
| find_objectsA | Finds objects on a page without reading the whole board: by text, regex, type or area. Filters combine (all must match). |
| move_objectsA | Moves objects together. Either relative ( |
| arrange_objectsA | Aligns, distributes, stacks, groups or locks objects. align_*: at least 2 unlocked objects, aligned on their common bounding box. distribute_*: at least 3 unlocked objects, equal gaps between the two outermost (an error otherwise; the engine alone would do nothing). Locked objects are skipped by align/distribute and reported in |
| manage_pagesA | Lists, renames or deletes pages (add_page creates them). |
| duplicate_objectsA | Copies objects, each copy shifted by (dx, dy) from the previous one (default 40, 40; |
| batchA | Runs several tool calls in ONE request (1 to 200 operations, in order), on one board, as a single undo step in the application. Use it to build or rework a board quickly instead of one call per object. Each operation is {"tool": "add_shape", "args": {...}} with the arguments the tool normally takes (but never |
| format_textA | Formats text already on the board, like selecting it in the application: bold, italic, underline, strike, color, highlight. Works on a shape's text, a connector's label, or one table cell ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Each tool has a clearly stated purpose, and the add_* family is cleanly split by content type (shape, icon, image, table, code, formula, mermaid). A few boundaries blur: update_object also moves/locks a single object while move_objects and arrange_objects handle the same properties in bulk, and export vs render vs save_board are close but disambiguated by whether they return a file, a picture, or just persist state.
Nearly all names are snake_case verb_noun (add_shape, delete_object, find_objects, manage_pages, search_icons). A handful deviate: export, render, batch are bare verbs and board_changes is a noun, and manage_pages is a multi-action catch-all, but the overall pattern remains readable and predictable.
27 tools is on the heavy side for a drawing app; the surface could likely compress (separate add_table/add_code_block/add_formula/add_icon tools, plus manage_pages subactions). Still, each tool maps to a real distinct capability rather than filler, so it is only borderline over-scoped.
Coverage is strong: board creation, object creation across all content types, update/delete/move/arrange/group/lock/duplicate, page management, search, formatting, import/export, rendering and a batch meta-tool. Minor gaps only: no explicit undo/redo or clipboard-style cut/paste tooling, which agents must emulate via duplicate_objects and batch atomicity.