Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
作者による説明(英語の原文)
Network topology editor — Claude builds diagrams via MCP. nmap/CSV import, one-click SSH.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
NETMAP_MCP_PORT必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"network-diagram": {
"command": "npx",
"args": [
"-y",
"@den.dance/network-diagram-mcp"
],
"env": {
"NETMAP_MCP_PORT": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add network-diagram --env NETMAP_MCP_PORT=your-value -- npx -y @den.dance/network-diagram-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"network-diagram": {
"command": "npx",
"args": [
"-y",
"@den.dance/network-diagram-mcp"
],
"env": {
"NETMAP_MCP_PORT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"network-diagram": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@den.dance/network-diagram-mcp"
],
"env": {
"NETMAP_MCP_PORT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
NETMAP_MCP_PORT envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント den-indance で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.7)がレジストリに届いたのは6 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Figma Context MCP, Claude Real Video, Figma MCP Server
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
The Figma MCP server brings Figma design context directly into your AI workflow.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Visual network topology editor with AI agent integration via the Model Context Protocol.
Open-source successor to netViz (netViz Inc., 1990 → CA Technologies → discontinued 2012).
Try it live → https://map.den.dance/
hostname / description accepted).localStorage. No login, no cloud. Export JSON / PNG / PDF.This package is a stdio → WebSocket bridge. It runs locally as an MCP server; the live NetMap browser tab connects to it over WebSocket. The agent talks to the bridge over MCP; the bridge forwards calls to the browser, which updates React state in real time.
LLM agent (Claude Code / Claude Desktop / Cursor)
│ MCP protocol (stdio) ▼ @den.dance/network-diagram-mcp ← this package, runs locally │ WebSocket ws://localhost:47821 ▼ NetMap in browser (https://map.den.dance/) ← React state updates live
⚠️ Requires an open NetMap browser tab. Open https://map.den.dance/ — the MCP bridge is
enabled by default (v1.2+), so the connection comes up as soon as the tab is open. Without an
open tab the bridge has no peer and every tool call will time out. (To opt out:
Settings → ⚙ → Integrations → AI Agent (MCP) → Enable WebSocket connection.)
Add to claude_desktop_config.json:
{
"mcpServers": { "netmap": { "command": "npx", "args": ["@den.dance/network-diagram-mcp"] } } }
claude mcp add netmap -- npx @den.dance/network-diagram-mcp
With a custom port:
claude mcp add netmap -e NETMAP_MCP_PORT=12345 -- npx @den.dance/network-diagram-mcp
Then open https://map.den.dance/ — the bridge is enabled by default (v1.2+). Settings → Integrations → AI Agent (MCP) if you need to inspect or toggle the connection. The toolbar will show a 🟢 MCP online badge when the browser and server are connected.
Verify the agent side:
claude mcp list
You should see netmap in the list.
| Var | Default | Description |
|---|---|---|
NETMAP_MCP_PORT | 47821 | Local WebSocket port the bridge listens on. Must match the URL configured in NetMap's Settings → Integrations → AI Agent (MCP). |
This package also ships an OS-level agent that registers handlers for ssh://, postgres://, and redis:// URLs. Click any such link in a browser or terminal and the agent spawns your installed client (psql / redis-cli / iTerm / Windows Terminal / kitty / DBeaver / TablePlus / RedisInsight / …).
Inside NetMap (v1.2+): when the serve daemon is running, clicking an SSH / Postgres / Redis port button on a node card opens an in-app picker of installed clients on your machine and launches the one you pick — every click re-detects, so newly installed clients show up immediately. Without the daemon, port-clicks fall back to the OS default URL handler.
Install once per machine:
# Linux: ~/.local/share/applications/netmap-<scheme>-handler.desktop + xdg-mime
npx @den.dance/network-diagram-mcp install --all
Other CLI subcommands:
npx @den.dance/network-diagram-mcp install ssh # single scheme
npx @den.dance/network-diagram-mcp uninstall postgres # remove registration npx @den.dance/network-diagram-mcp list # what's registered (JSON) npx @den.dance/network-diagram-mcp detect ssh # which clients are available npx @den.dance/network-diagram-mcp serve # daemon: WS + HTTP on :47821
Click handling is daemon-less — OS routes the link to a short-lived bin/handler.js process which parses the URL, picks the first installed client (priority order: CLI → popular GUI → cross-platform power), and spawns it. The optional serve daemon adds HTTP endpoints (/status, /detect, /exec) for browser-side integration with a Bearer-token-gated /exec.
npx @den.dance/network-diagram-mcp with no args still runs the original stdio MCP server (back-compat — Smithery / Claude Desktop probes are unaffected).
Top-5 clients per scheme (priority order, first-installed wins):
| Scheme | Clients |
|---|---|
ssh | iTerm2 → Windows Terminal → GNOME Terminal → Terminal.app → kitty |
postgres | psql → TablePlus → DBeaver → Beekeeper Studio → pgAdmin 4 |
redis | redis-cli → RedisInsight → Another Redis DM → Medis → RDM (legacy) |
postgresql:// aliases to postgres; rediss:// is preserved and triggers redis-cli --tls.
| Tool | Description |
|---|---|
map_get_state | Return all nodes, connections, stickies, notes |
map_clear | Clear the entire map (requires confirm: true) |
map_arrange | Naive auto-arrange (grid or circle layout — ignores connections) |
map_suggest_layout | Smart auto-layout: force (force-directed, deterministic via seed), cluster-by-type (lanes per type), or cluster-by-connection (BFS components into zones) |
| Tool | Description |
|---|---|
map_add_node | Add a node (type, name, ip, x, y) |
map_update_node | Update node fields by id |
map_delete_node | Delete a node and its connections |
map_move_node | Move node to new coordinates |
| Tool | Description |
|---|---|
map_add_connection | Add connection (from_id, to_id, label?, color?) |
map_update_connection | Update label or color of a connection |
map_delete_connection | Delete a connection by id |
| Tool | Description |
|---|---|
map_add_sticky | Add a sticky note (text, x?, y?, color?) |
map_update_sticky | Update text, color, x, y, w, h |
map_delete_sticky | Delete a sticky note by id |
map_move_sticky | Move sticky to new coordinates |
| Tool | Description |
|---|---|
map_list_sheets | List all sheets with metadata and active sheet id |
map_get_sheet_data | Get nodes / connections / stickies for a sheet (default: active) |
map_create_sheet | Create a new empty sheet and switch to it |
map_switch_sheet | Switch active sheet by id |
map_rename_sheet | Rename a sheet |
map_delete_sheet | Delete a sheet (requires confirm: true, can't delete last) |
| Tool | Description |
|---|---|
map_set_zoom | Set zoom level (0.1–3.0) |
map_set_canvas_offset | Pan canvas to absolute pixel position |
map_zoom_to_fit | Auto-fit all nodes into viewport |
| Tool | Description |
|---|---|
map_lock_sheet | Lock (locked: true) or unlock (locked: false) a sheet. Locked sheets reject all MCP mutations and disable manual editing in the UI. |
| Tool | Description |
|---|---|
map_get_notes | Get sheet-level notes text |
map_set_notes | Set sheet-level notes text |
map_get_settings | Get app settings (sshMode, showGrid, etc.) |
map_update_settings | Update app settings |
| Tool | Description |
|---|---|
map_find_node | Structured node-only filter by name / ip / type / text. Returns stripped {id, name, type, ip, x, y}. |
map_search | Full-text cross-entity search. Looks across nodes (name / ip / notes), stickies (text), connection labels, and ports (port number + service name). Optional types: ["nodes","stickies","connections","ports"] narrows the scope. |
map_get_nodes_by_type | Return every node of a single type with FULL field data (ports, dockerServices, domains, ips, notes, parentServer, …). Use this when you need the complete objects, not the stripped projection from map_find_node. |
Example — find everything matching postgres anywhere in the map:
// → call
{ "q": "postgres" }
// → result { "nodes": [{ "id": "n1", "name": "db-primary", "type": "server", "ip": "10.0.0.5" }], "stickies": [{ "id": "s2", "text": "TODO: upgrade postgres 15 → 16" }], "connections": [{ "id": "c4", "label": "postgres replication", "from": "n1", "to": "n2" }], "ports": [{ "nodeId": "n1", "nodeName": "db-primary", "port": 5432, "protocol": "tcp", "service": "postgresql" }], "total": 4 }
map_search and map_get_nodes_by_type are read-only — they work on locked sheets.
| Tool | Description |
|---|---|
map_import_sheet | Replace active-sheet content with a provided {nodes, connections, stickies?, notes?} JSON. |
map_import_nmap | Parse nmap -oX output (or a pre-parsed hosts[] array) and create nodes with their open ports. Auto-infers node type from OS fingerprint + port profile (router / switch / firewall / server / printer / …). Nodes auto-arranged in a square-root grid. |
map_import_csv | Import nodes from CSV. Auto-detects columns from the header row (name / ip / type / ports / notes — aliases like hostname / description accepted). Ports field accepts 22/tcp,80/tcp or bare numbers. Nodes laid out in a 6-column grid. |
Example — turn a 2-host nmap scan into a map in one call:
// → call
{ "xml": "<?xml version=\"1.0\"?>\n \n \n \n \n \n \n \n \n \n \n \n \n \n " }
// → result { "count": 2, "ids": ["…", "…"] }
Provide {"hosts": [...]} instead of xml when you already have parsed host data — hosts takes priority when both are given.
Example — turn a CSV inventory snippet into a map:
冒頭だけを表示しています。続きはリポジトリで読めます