Blueprint
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BlueprintPlan a workbook for a market sizing model for a B2B payments product"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blueprint
An MCP App for Claude Desktop: you plan a workbook (.xlsx) or a deck (.pptx) on a canvas inside the chat, approve it, and then Claude builds the real file from the plan you approved.

I built this because asking Claude for a spreadsheet or a deck in one shot kept giving me something close but wrong in ways that were slow to fix after the fact. The tab order was off, or a chart sat where a table should be. Arguing about structure is much cheaper before anything is built, so Blueprint makes the structure the thing you review.
How it works
There are three layers, and you approve each one before Claude moves on:
Outline. Claude proposes the tabs or slides. You drag rows to reorder, rename them in place and leave notes.
Layouts. Claude puts blocks on a grid for each tab or slide (inputs, calcs, tables, charts, stats, bullets, diagrams). You drag and resize them, edit columns and line items, and answer Claude's questions.
Build. Claude closes every open note, then the Python builder writes the file. The Built view shows a preview, a plan-vs-build diff and the formula check.
Notes are threads on a row or block. Your instructions and Claude's questions live in the same place, and the build refuses to run while any thread is still open.
Claude Desktop chat
│ MCP tools over stdio (start_project, propose_outline, propose_layouts, build_deck ...)
▼
Node server (src/server) ── plan JSON in ~/.blueprint/projects/<id>.json
│ ▲
│ ui:// resource │ ui_save_layout, ui_note, ui_approve (canvas-only tools)
▼ │
Canvas (src/app, bundled by Vite into one HTML file, rendered inline in the chat)
│
│ approved plan
▼
Python builder (builder/) ── openpyxl for .xlsx, python-pptx for .pptx
│
▼
LibreOffice (optional): recalculates the workbook, renders slide PNGs and a PDFThe server never calls a model. Everything runs locally and the thinking happens in your Claude Desktop chat.

Styles come from four places: plain, the built-in house format (Arial 10, blue inputs, black formulas, a Read Me cover), any formatting skill in ~/.claude/skills, or a template file you hand it. extract_format can also derive a style from your own .xlsx or .pptx and save it as a skill. builder/styles/harbor_deck.json is a sample skill format the tests build against.
Related MCP server: Excel MCP Server
Running it
You need Node 20 or newer, Python 3 with pip3 install openpyxl python-pptx, and Claude Desktop on macOS. LibreOffice is optional.
git clone https://github.com/Joconnell04/blueprint && cd blueprint
npm install
npm run bundle # builds the server and canvas, then writes blueprint.mcpbThen in Claude Desktop, go to Settings > Extensions and drag blueprint.mcpb onto the drop zone. Set the output folder and the Python path in the extension's settings if the defaults are wrong. Quit Claude Desktop with Cmd+Q and start a new chat; the canvas is cached by resource URI, so an old chat keeps showing the old canvas. The first time a canvas renders, click "Always allow".
If there is a release on the Releases page, you can download its .mcpb and skip the build.
To try a workbook, say: "Plan a workbook with Blueprint: market sizing model for a B2B payments product, house format." Claude asks two to five questions, the brief card fills in, and the outline canvas appears. For a deck: "Plan a deck with Blueprint: Q3 board update for the investors." On a small job you can say "skip layouts" and it builds from the approved outline.
Built files land in ~/Documents/Blueprint. Plans, templates and styles live in ~/.blueprint.
Tool | What it does |
| create a workbook or deck plan |
| set the ordered tabs or slides and render the canvas |
| set blocks, positions, content and questions for one or more rows |
| apply edits from the chat |
| read the plan with hand edits, open threads and warnings |
| close a thread with what was done, or decline it with a reason |
| build the file from the approved plan, plus checks and images |
| sheet or slide images of the last build, with findings |
| scan an existing file into a plan, block by block |
| derive a formatting skill from example files |
| reformat an imported workbook without touching values or formulas |
| reuse an approved plan |
| reopen a plan in a new chat |
The canvas also calls nine ui_* tools that the model never sees.
Variable | What it does |
| where plans live (default |
| where built files go (default |
| Python with openpyxl and python-pptx |
| skills folder to read styles from |
| path to LibreOffice's |
Developing
npm run build # server (tsc) and canvas (vite, one HTML file)
npm test # Python builders, stdio flows, layout units, Playwright
npm run dev:ui # rebuild the canvas on change
node dist/server/main.js --http 3001 # HTTP mode for the ext-apps basic hostThe Playwright suite needs Chromium once (npx playwright install chromium). It starts its own server and host and writes failure screenshots to test/e2e/artifacts.
docs/design.md covers the architecture, builder/SPEC.md and builder/SPEC-deck.md the build payloads, docs/skill-format-block.md the format: block a skill uses to describe a style, and docs/VERIFY.md a manual check to run in Claude Desktop after an install.
What's rough
Do not hand-edit
claude_desktop_config.jsonfor this server. Claude Desktop rewrites that file on quit and drops entries it did not load itself.Without LibreOffice there's no recalculation before the formula check, and no slide PNGs or PDF.
The canvas is cached per resource URI, so after an update you have to start a new chat to see it.
Font handling assumes the faces are installed. A style that names a font you don't have falls back to Arial and the build says so.
Some code comments cite design notes under
docs/research/that I kept private because they were written against real work files.macOS only so far; the bundle manifest says
darwin.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create and manage documents, spreadsheets, and presentations from your AI assistant.
Whiteboard where any shape opens into another canvas. Claude Code and Codex plugins render plans on it.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Create, review and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables creation and manipulation of Microsoft Office files (Excel, Word, PowerPoint) through natural language commands. Supports generating spreadsheets with formulas and charts, formatted documents with tables, and presentations with various layouts without requiring Office installation.1-
- FlicenseNot gradedqualityDmaintenanceGives Claude deep tool-level control over Microsoft Excel files (.xlsx, .xlsm, .csv, .tsv) with 164 tools across 24 modules for reading, writing, formatting, formulas, charts, data analysis, and more.-
- AlicenseAqualityCmaintenanceEnables turning a Markdown brief into a reviewed slide plan and then consistent, on-brand slide visuals via Claude Code, with human approval gates before any paid image generation.101MIT
- AlicenseAqualityBmaintenanceEnables Claude to open, filter, search, summarize, and write local .xlsx, .xlsm, .xls, and .csv spreadsheets through ten tools, all running locally with no Microsoft Office installed. Access is sandboxed to folders you allow, with an optional read-only mode and an audit log of every file operation.10MIT