show-me-mcp

Verified diagrams, pseudocode, text trees and diffs for Pi and MCP

Packages

Package details

extension

Install show-me-mcp from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:show-me-mcp
Package
show-me-mcp
Version
0.1.0-alpha.1
Published
Sep 9, 2026
Downloads
196/mo · 17/wk
Author
caprika
License
Apache-2.0
Types
extension
Size
170.8 KB
Dependencies
6 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions/show-me.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

show-me-mcp

Source repository: alchemistklk/show-me-mcp.

Help agents explain complex ideas clearly and automatically fix layout problems in the resulting artifacts.

The agent chooses the display form and organizes the content. The MCP handles layout, detects and repairs occlusion, overlap, text overflow, and connector conflicts, and verifies the final artifact. The intended workflow does not require agents or users to repeatedly adjust diagrams by hand.

Project documentation

Goals and current status

Goal Current implementation
Five forms: pseudocode, text trees, Mermaid, diff, and HTML All five are available through the new interface. HTML supports declarative libraries; the other four are built-in capabilities, each with a defined support scope.
Automatic layout repair inside the MCP HTML label avoidance, Mermaid reflow and reinspection, text wrapping by display width, and diff display formatting are implemented. Arbitrarily complex diagrams are not guaranteed to be repairable.
Final display quality verification HTML and Mermaid artifacts are verified in Chromium; text forms validate width and content preservation. Evidence records the verification scope and content hashes.
Public repository and Pi plugin distribution The repository is public on GitHub. No standalone Pi plugin or package has been published.

PNG is an optional artifact format, not a core display category. The existing terminal | image | both options and PNG fallback belong to the legacy prototype, not the target design.

Install in Pi

The native Pi entry registers describe_display and render_display directly, without an MCP adapter. The alpha package is being prepared for npm publication. To try this checkout:

pi install /absolute/path/to/show-me-mcp

After publication, install with pi install npm:show-me-mcp@alpha. Disable duplicate tools from an existing MCP adapter before enabling the native extension. Reload Pi after installation.

Artifacts are saved under .pi/artifacts/show-me in the current project. Override this with SHOW_ME_ARTIFACT_DIR. Text layout uses the current terminal width, or SHOW_ME_TERMINAL_COLUMNS when set; supported widths are 24–240 columns. Non-interactive sessions default to 120 columns. HTML and Mermaid return file paths; text forms also return a fenced preview. Diff keeps the applicable patch separate from its wrapped preview.

The npm package also exposes show-me-mcp as a stdio MCP command. Pi exposes only the two current tools; the MCP command retains legacy render_visual support.

Run locally

Node.js and npm are required. Text trees, pseudocode, and diff do not need a browser. HTML, Mermaid, and the full test suite require a local Chrome or Chromium executable, which can be specified with SHOW_ME_CHROMIUM_BIN. The legacy image path also requires rsvg-convert. The project does not automatically download a browser or use your personal browser profile.

npm ci
npm test
npm run render:fixture
npm run render:composition
npm run render:quality-demo
npm run render:native-demo
node bin/mcp-server.mjs

If your machine uses the with-env environment wrapper, prefix the commands with it. Examples write their artifacts to artifacts/. Local Pi configuration, tool caches, dependencies, and generated artifacts are excluded from Git.

The MCP tools describe_display and render_display map to describe and render, supporting html | mermaid | pseudocode | tree | diff. Query a form's schema and examples before using an unfamiliar input format. Only HTML accepts expression-library references. The legacy render_visual tool remains available for compatibility; see the prototype guide for its inputs.

Licensed under Apache-2.0. npm publication is pending; local package validation does not establish a registry release.