In-depth architectural comparison of the Excalidraw Architect MCP and Portravo MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Excalidraw Architect MCP
Architecture & Design · Local stdio
Quality: 64/100 (Good) | Auth: No auth required
Portravo
Architecture & Design · Remote HTTP/SSE
Quality: 69/100 (Great) | Auth: OAuth 2.0
Verdict Summary: Choose Excalidraw Architect MCP if you need specialized Architecture & Design tools running via a local process. Choose Portravo if your workspace requires Architecture & Design integration with remote web transport. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Excalidraw Architect MCP when:
You need dedicated capabilities in the Architecture & Design domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
Generate beautiful Excalidraw architecture diagrams with auto-layout, architecture-aware component styling, and stateful editing. 50+ technology mappings including databases, message queues, caches, and more. No API keys required.
Review construction plan takeoffs and download estimates after review and pricing.
Create a new Excalidraw diagram of any supported type.
Two input modes:
1. **Graph types** (``architecture``, ``flowchart``) - pass ``nodes`` and
``connections``. The tool handles layout, styling, and rendering; no
coordinates needed.
2. **Typed diagrams** (every other type) - pass ``diagram_type`` and a
``spec`` object shaped for that type. Call ``list_diagram_types`` to
choose a type and ``get_diagram_schema`` to see its spec shape.
mermaid_to_excalidraw
Convert Mermaid flowchart syntax into an Excalidraw diagram.
Supports the mermaid flowchart subset that AI agents commonly generate:
- Directions: graph TD, LR, BT, RL
- Node shapes: [text], {text}, ((text)), ([text])
- Edge types: -->, ---, -.-> ==> with |label|
- Subgraphs: subgraph Title ... end
Component types are auto-detected from node labels (e.g., a node labeled
"PostgreSQL DB" automatically gets database styling).
modify_diagram
Modify an existing Excalidraw diagram created by this tool.
Supports iterative editing: add components, remove nodes, update labels,
and rewire connections - without recreating the entire diagram.
IMPORTANT: Call get_diagram_info first to understand the current diagram
state before making modifications.
For **typed diagrams** (sequence, pyramid, bar, swimlane, ...) there is a
single operation:
{"op": "update_spec", "patch": {"tiers": [...], "title": "New title"}}
The patch is deep-merged into the stored spec and the diagram re-rendered.
Lists are replaced wholesale, so send the complete list to change one
entry. The node/connection operations below apply to architecture and
flowchart diagrams only.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Excalidraw Architect MCP is categorized under Architecture & Design and uses a local stdio subprocess. In contrast, Portravo belongs to Architecture & Design using remote streaming HTTP/SSE transport. Select Excalidraw Architect MCP when you need capabilities focused on architecture & design and Portravo when you require tools for architecture & design.
Get a structured summary of an existing Excalidraw diagram.
Call this BEFORE modify_diagram to understand what nodes and connections
currently exist. The summary includes node ids, labels, component types,
and the full connection topology.
export_diagram
Export an .excalidraw file to SVG or PNG image.
Converts an existing .excalidraw diagram into a portable image file
without requiring a browser or the Excalidraw application.
list_diagram_types
List every supported diagram type with guidance on when to use it.
Call this BEFORE create_diagram when the right diagram type isn't obvious.
Picking the wrong type is the most common way a diagram fails - a
swimlane drawn as a flowchart loses the handoffs that were the point.
Two rules worth applying whatever you pick:
- Target density ~4/10. Above 9 nodes it is probably two diagrams.
- Mark only 1-2 elements "focal": true. The accent color is a signal,
and using it everywhere destroys it.
Returns:
A table of type -> family, when to use it, and when not to.
get_diagram_schema
Get the JSON schema and selection guidance for one diagram type.
Call this before passing a `spec` to create_diagram for a type you have
not used yet, so the payload matches on the first attempt.
kg_init
Create a new architecture knowledge graph file (markdown).
The knowledge graph is the persistent source of truth for your system's
services and dependencies. Diagrams are rendered *from* it.
kg_add_service
Add or update a service in the knowledge graph.
kg_remove_service
Remove a service and all dependencies touching it.
kg_link
Add a directed dependency: ``from_id`` depends on / calls ``to_id``.
Both services must already exist (add them with kg_add_service first).
``style`` is one of solid/dashed/dotted/thick.
kg_unlink
Remove the dependency ``from_id`` -> ``to_id``.
+14 more tools listed on main page
Portravo Tools (8)
get_profile
Identify the signed-in Portravo account after OAuth account linking.
list_projects
Find construction projects in the connected Portravo account, including draft, review, priced and final estimates. Returns 50 projects per page. Use nextOffset to continue.
get_takeoff
Read an owned construction project's plan files and extracted takeoff quantities, trades, confidence and human review status. Use this to summarize quantities or identify pending review. Quantities require estimator review before pricing or bidding.
list_pricing_markets
List the regional construction pricing markets supported by Portravo before choosing a metro_code for a new estimate.
create_project
Create a new construction estimate project in the connected Portravo account. Supply the project name and optional address or supported metro_code. Reuse the same idempotency_key on retry to create exactly one project. Does not run extraction or consume estimate credits.
attach_plan_pdf
Attach a PDF selected in this conversation as the first plan for a new Portravo project. Only PDF attachments up to 25 MiB are supported. Prefer the host-provided plan download_url/file_id. If unavailable, plan_inline accepts canonical base64 computed from the exact user-uploaded PDF bytes, with file_name and application/pdf mime_type, up to 32 KiB. Supply exactly one of plan or plan_inline; never recreate document bytes from text. Existing plans and review work are protected. Supply a stable idempotency_key and reuse it on retry. Stores the selected PDF privately in the connected account; does not extract or consume credits.
run_takeoff
Run the initial AI takeoff for a new project with an attached plan PDF. This consumes one estimate from the user's existing Portravo balance; ask for explicit credit-use confirmation before setting confirm_credit_use=true. Reuse the idempotency_key on retry to prevent a duplicate charge. Returns extracted quantities for review in Portravo, not a bid-ready estimate. Failed provider runs refund the reservation; existing review work cannot be overwritten.
export_reviewed_estimate
Get a short-lived Excel XLSX download for an owned Portravo estimate after every takeoff line has been reviewed and the estimate is priced or final. If review is incomplete, return the Portravo review link and let the user complete quantities, assembly mappings and pricing there. Never exports unreviewed estimates.