Skip to main content

tesserae-mcp

Part of the Tesserae monorepo (packages/tesserae-mcp), so the bridge stays in lockstep with the /api/mcp surface it wraps. Published to PyPI as tesserae-mcp.

The MCP bridge for Tesserae. It lets an AI agent (Claude Desktop, Claude Code, or any MCP client) build freeform (canvas) dashboards for your e-ink panels: it lists your widgets and devices, lays out a canvas, renders a preview to check its own work, and pushes to a panel.

This is a thin stdio client. It talks to a running Tesserae over its /api/mcp HTTP surface, so the rendering, widgets, and devices all come from your own Tesserae instance.

create_canvas_page → set_canvas → render_preview → (look) → set_canvas → …

Prerequisites

A running Tesserae with the MCP API enabled: Settings → System → MCP → Enable MCP API. If this bridge runs on a different machine from Tesserae, also Regenerate token there and copy it.

Install

Run this on the machine where your agent runs (your laptop/desktop), which may be different from where Tesserae runs.

pipx install tesserae-mcp

That gives you the tesserae-mcp command. Upgrade it later with pipx upgrade tesserae-mcp; Tesserae flags an out-of-date bridge under Settings → System → MCP once one has connected.

(From source: pip install "git+https://github.com/dmellok/tesserae#subdirectory=packages/tesserae-mcp". The standalone dmellok/tesserae-mcp repo is archived at 0.5.0 — development moved into the monorepo.)

Configure your agent

Point your MCP client at tesserae-mcp. Example (Claude Desktop / Claude Code mcpServers config):

{
  "mcpServers": {
    "tesserae": {
      "command": "tesserae-mcp",
      "env": {
        "TESSERAE_URL": "http://127.0.0.1:8765",
        "TESSERAE_MCP_TOKEN": "<your-token>"
      }
    }
  }
}
  • TESSERAE_URL — where your Tesserae is reachable (default http://127.0.0.1:8765). For a Docker/Home Assistant install, use its LAN address, e.g. http://192.168.1.50:8765 (the port must be reachable; HA ingress-only setups won't work).
  • TESSERAE_MCP_TOKEN — the token from Settings. Omit it when the agent and Tesserae share a machine (loopback is trusted).

Then just ask: "Build me an 800×480 dashboard with the time, today's weather for Melbourne, and my next calendar event, then show me a preview."

Tools

Tool What it does
list_widgets Every placeable widget (with fragments) + theme/style/font options
get_widget_options A widget's options + format hints (big choice lists omitted by default)
get_widget_choices Page through one option's choice rows (HA entity pickers etc.)
probe_widget_data A widget's data + data_source (live/sample/error) + bindable field paths
list_devices Registered panels: dimensions + colour capability (palette, mono flag)
list_pages Existing canvas dashboards
create_canvas_page Create an empty canvas (size it to your panel)
get_canvas Read a canvas document (returns a rev for concurrency-safe writes)
set_canvas Replace a canvas document (422 with field errors if invalid)
add_element Append one element (live-updates an open editor)
update_element Change one element in place (no full re-send)
delete_element Remove one element
patch_canvas Change document-level fields (size, theme, bg) without touching elements
arrange Compute aligned grid/row/column boxes so you lay out by intent, not pixels
measure_text Measure rendered text width/height so a box fits its content
render_report Read back what rendered (values, overflow, live-vs-sample, colours) as JSON
render_preview Render the canvas to a PNG the agent can see
push_to_device Push the canvas to explicit device(s)

Writes (set_canvas, add_element, update_element, delete_element, patch_canvas) accept an optional base_rev (from get_canvas); if the page changed since, the write returns HTTP 409 so you re-read instead of clobbering a concurrent edit.

Run without installing

From a clone:

pip install mcp
TESSERAE_URL=http://127.0.0.1:8765 python -m tesserae_mcp

License

AGPL-3.0-or-later, matching Tesserae.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tesserae_mcp-0.13.0.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tesserae_mcp-0.13.0-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file tesserae_mcp-0.13.0.tar.gz.

File metadata

  • Download URL: tesserae_mcp-0.13.0.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tesserae_mcp-0.13.0.tar.gz
Algorithm Hash digest
SHA256 1c77934e8d9bc7c7d55be5907c22deb8d8d1ad7de03917f03aca507385c9b1bb
MD5 66d945ccdbd26f38c1b55b056a7d1f3e
BLAKE2b-256 139ac4b4f76c731e18a70eaa62d08f91e155bef9a9fc120c2fb00691e2662fc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesserae_mcp-0.13.0.tar.gz:

Publisher: publish-tesserae-mcp.yml on dmellok/tesserae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesserae_mcp-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: tesserae_mcp-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 40.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for tesserae_mcp-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73752e3ba231c853d3092fd5e6b780af2472e8f98dcea267b84f0b4c29e67c4a
MD5 3e20f3a63ec9bf2629009fe1d5cac6a9
BLAKE2b-256 2d9849bb8929360528045779b23f335724cb0d2cb644330eecb7a7dcf3308c6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesserae_mcp-0.13.0-py3-none-any.whl:

Publisher: publish-tesserae-mcp.yml on dmellok/tesserae

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.14.0

2 files

This release

0.13.0 This release

2 files

0.12.0

2 files

0.11.1

2 files

0.11.0

2 files

0.10.3

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.1

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.14

2 files

0.5.13

2 files

0.5.12

2 files

0.5.11

2 files

0.5.10

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page