Skip to main content
Glama
README.md
# 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

A4.2/5.0

Scored across 18 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityStale
ResponsivenessNo issues