tesserae-mcp
# tesserae-mcp (moved)
> [!IMPORTANT]
> This repository has moved into the main Tesserae repo. Development now happens at
> **[dmellok/tesserae → `packages/tesserae-mcp`](https://github.com/dmellok/tesserae/tree/main/packages/tesserae-mcp)**.
> This repo is archived and read-only; it is kept only so existing installs and pinned
> tags keep resolving. It will not receive further updates.
## Install
```bash
pip install tesserae-mcp
```
It is published to PyPI from the monorepo. To install from source:
```bash
pip install "git+https://github.com/dmellok/tesserae#subdirectory=packages/tesserae-mcp"
```
## What it is
The stdio [MCP](https://modelcontextprotocol.io) bridge that lets an AI agent (Claude
Code / Desktop, Codex, Cursor, or any MCP client) build **Tesserae canvas dashboards**:
it lists your widgets and devices, lays out a canvas, renders a preview to check its own
work, and pushes to a panel. It is a thin client over a running Tesserae's `/api/mcp`
HTTP surface, so the rendering, widgets, and devices come from your own instance.
## Docs
- MCP servers (install & configure): https://docs.tesserae.ink/dev/mcp-servers/
- Build dashboards with AI: https://docs.tesserae.ink/dev/mcp/
## Why it moved
The bridge is a thin client over Tesserae's `/api/mcp` surface, so keeping it in the same
repo holds its tool list and doc-shape in lockstep with the server and tests both in one
CI run. It still ships a thin wheel (stdlib plus the `mcp` SDK only), so an agent-machine
install stays light.
---
Existing `pip install git+https://github.com/dmellok/tesserae-mcp` commands and the `v*`
tags in this repo continue to work but are frozen. Switch to `pip install tesserae-mcp`
to track new releases.
TDQS
Scored across 18 tools
Each tool targets a distinct purpose: listing resources, measuring, rendering, editing elements vs documents, and querying widget metadata. The close cousins (render_preview vs render_report, set_canvas vs patch_canvas vs update_element) are clearly separated by their input/output and scope, leaving no real ambiguity.
Tool names follow a consistent verb_noun snake_case pattern (list_widgets, get_canvas, update_element, push_to_device). The only outlier is 'arrange', a single verb, but it is still a clear imperative and fits the overall style.
18 tools is well-scoped for a canvas dashboard editor covering widget discovery, layout, rendering, device management, and document editing. Each tool addresses a distinct need without superfluous additions, and the count is appropriate for the complexity of the domain.
The set covers the full lifecycle for canvases and elements: create, read, update, delete, render, and push. The only notable gap is the lack of a delete_page tool (or explicit page deletion/archival), which is a minor oversight given list_pages and create_canvas_page cover the rest of page lifecycle.