composer-mcp
Visual architecture canvas that updates in real-time. Agents can build, read, and modify system design diagrams — services, databases, queues, APIs, entities — all linked to actual code paths in your repo.
README
<p align="center"> <img src="https://github.com/OliverGrabner/composer-mcp/raw/main/demo.gif" alt="Composer demo" /> </p>
<p align="center"> <img src="https://usecomposer.com/logo_warm_trio_no_bg.svg" width="14" alt="Composer logo" /> <strong>Composer MCP Server</strong> </p>
<p align="center"> Give your AI coding agent an architecture canvas.<br/> Design, visualize, and evolve software architecture diagrams - right from your IDE. </p>
<p align="center"> <a href="https://www.npmjs.com/package/@usecomposer/mcp"><img src="https://img.shields.io/npm/v/@usecomposer/mcp?color=D27754&label=npm" alt="npm version" /></a> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT License" /></a> <a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-compatible-green.svg" alt="MCP Compatible" /></a> </p>
Composer is a visual system design tool that lets AI coding agents create and modify interactive architecture diagrams through MCP (Model Context Protocol). Your agent gets tools to add services, databases, queues, and connections, and you get a live canvas at usecomposer.com that updates in real-time.
Your IDE <--> MCP Server (this package) <--> Composer API <--> Your Diagram
Getting Started
Connect your IDE
Claude Code:
claude mcp add --transport http composer https://mcp.usecomposer.com
Cursor — create .cursor/mcp.json in your project root:
{
"mcpServers": {
"composer": {
"type": "http",
"url": "https://mcp.usecomposer.com"
}
}
}
Your browser will open for authorization on first use.
<details> <summary><strong>Claude Code</strong></summary>
claude mcp add --transport http composer https://mcp.usecomposer.com
</details>
<details> <summary><strong>Cursor</strong></summary>
Create .cursor/mcp.json in your project root:
{
"mcpServers": {
"composer": {
"type": "http",
"url": "https://mcp.usecomposer.com"
}
}
}
</details>
<details> <summary><strong>Codex</strong></summary>
codex mcp add composer -- npx -y @usecomposer/mcp --stdio
</details>
<details> <summary><strong>VS Code (Copilot Chat)</strong></summary>
Create .vscode/mcp.json in your project root:
{
"servers": {
"composer": {
"type": "http",
"url": "https://mcp.usecomposer.com"
}
}
}
</details>
<details> <summary><strong>VS Code (Cline)</strong></summary>
Open Cline sidebar > Settings (gear icon) > MCP Servers > Add Remote Server:
{
"mcpServers": {
"composer": {
"type": "http",
"url": "https://mcp.usecomposer.com"
}
}
}
</details>
<details> <summary><strong>VS Code (Continue)</strong></summary>
Add to .continue/config.yaml:
mcpServers:
- name: composer
url: https://mcp.usecomposer.com
</details>
<details> <summary><strong>Windsurf</strong></summary>
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"composer": {
"serverUrl": "https://mcp.usecomposer.com"
}
}
}
Note: Windsurf uses
"serverUrl"instead of"url".
</details>
<details> <summary><strong>OpenCode</strong></summary>
Create opencode.json in your project root:
{
"mcp": {
"composer": {
"type": "remote",
"url": "https://mcp.usecomposer.com"
}
}
}
</details>
Tools
Diagram Management
| Tool | Description |
|---|---|
list_diagrams |
List all your diagrams. Call this first to find which diagram to work on |
create_diagram |
Create a new diagram and auto-select it for this session |
select_diagram |
Select which diagram to work on for this session |
rename_diagram |
Rename the currently selected diagram |
Note: Call
list_diagramsthenselect_diagram(orcreate_diagram) before using other tools.
Read
| Tool | Description |
|---|---|
get_graph |
Get the full architecture diagram - all nodes and edges |
get_node |
Get details for a single node including connected edges |
search_graph |
Search nodes and edges by keyword |
get_screenshot |
Get a PNG thumbnail of the diagram from the last auto-save |
Write
| Tool | Description |
|---|---|
upsert_node |
Create or update a node (service, database, queue, etc.) |
upsert_edge |
Create or update a connection between two nodes |
define_api |
Define API endpoints on a backend service node |
delete_element |
Delete a node or edge from the diagram |
link_path |
Link a node to a file or folder in your codebase |
Plan & Verify
| Tool | Description |
|---|---|
verify_diagram |
Check for issues like missing endpoints or orphaned nodes |
plan_import |
Step-by-step workflow for importing an existing codebase |
get_guide |
Reference guide for node types, protocols, and best practices |
Node Types
client · frontend · backend · database · cache · queue · storage · external
Edge Protocols
REST · gRPC · GraphQL · WebSocket · TCP · UDP · async · event · internal
Example Prompts
Once connected, try asking your AI agent:
| Prompt | What it does |
|---|---|
| "Import this codebase into Composer" | Scans your repo and builds the architecture diagram |
| "Create a new Composer diagram called Backend Architecture" | Creates and auto-selects a new diagram |
| "Add a Redis cache between the API and the database in Composer" | Adds a new node and edges to the diagram |
| "Add analytics monitoring to the Composer diagram" | Adds observability nodes and connections |
| "Update the APIs I defined in Composer" | Refreshes endpoint definitions on backend nodes |
| "Verify my Composer diagram" | Checks for missing endpoints, orphaned nodes, etc. |
| "Link each Composer node to its source code" | Associates diagram nodes with file paths |
How It Works
Authentication is handled via OAuth 2.1 — your browser opens for a one-time consent flow, and you're connected. Tool calls are proxied to the Composer API at mcp.usecomposer.com. Your diagram data lives on Composer's servers. The MCP server itself is stateless.
Changes made through MCP are immediately visible on the Composer canvas via real-time WebSocket sync.
Development
git clone https://github.com/olivergrabner/composer-mcp
cd composer-mcp
npm install
npm run dev # Watch mode (rebuilds on change)
npm run build # Production build
Links
- Composer - the visual architecture canvas
- MCP Protocol - Model Context Protocol spec
- Issues - bug reports and feature requests
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.