elk-mcp
Click on "Install 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., "@elk-mcplayout this graph with layered algorithm and top-down direction"
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.
@cocrates/elk-mcp
elkjs 기반 그래프 레이아웃을 MCP로 제공하는 TypeScript 패키지입니다.
에이전트는 노드/엣지 구조만 넘기고, 좌표·엣지 경로는 이 서버가 계산합니다. 렌더링은 포함하지 않습니다.
패키지 |
|
바이너리 |
|
런타임 | Node.js 18+ |
전송 | MCP stdio (JSON-RPC) |
MCP 도구
Tool | 설명 |
|
|
| 레이아웃 전 검증 (중복 id, parent, endpoint 등) |
| 등록된 ELK 알고리즘 목록 |
| 알려진 레이아웃 옵션 ( |
| 레이아웃 카테고리 |
layout_graph 입력
graph: 구조만 (nodes,edges)options:algorithm,direction,layoutOptions등 (그래프와 분리)
options.algorithm은 ELK layout algorithm id(예: layered, mrtree, force)이고, options.direction은 RIGHT/LEFT/UP/DOWN 형태 문자열입니다.
계층은 둘 중 하나:
flat:
node.parentnested:
node.children
(같은 노드에 둘 다 쓰지 말 것)leaf 노드(자식이 없는 노드)의
width/height는 가능하면 제공하세요. 미제공이면 서버에서 기본값80x40을 사용합니다.edges의 엔드포인트는 노드 id 또는 포트 id가 될 수 있습니다(노드의ports[]로 포트를 선언한 경우).edges[]는graph.edges에 모두 모아도 됩니다. 서버가 엣지 양끝의 LCA(최저 공통 조상) 노드 아래에 배치합니다.edges[]는id가 필요합니다. 또한source/target또는sources/targets형태로 엔드포인트를 줄 수 있습니다.
{
"graph": {
"nodes": [
{ "id": "svc", "label": "Service" },
{ "id": "A", "parent": "svc", "label": "API", "width": 120, "height": 40 },
{ "id": "B", "parent": "svc", "label": "DB", "width": 100, "height": 40 },
{ "id": "C", "label": "Client", "width": 90, "height": 40 }
],
"edges": [
{ "id": "e1", "source": "A", "target": "B" },
{ "id": "e2", "source": "C", "target": "A" }
]
},
"options": {
"algorithm": "layered",
"direction": "RIGHT"
}
}출력
출력은 options.absoluteCoordinates에 따라 좌표계가 달라집니다.
options.absoluteCoordinates가true(기본):nodes[].x/y와edges[].sections[].startPoint/endPoint/bendPoints가 모두 단일(전역) 좌표계 기준입니다.options.absoluteCoordinates가false: 값들은 렌더링 프레임에서 바로 쓰기 어렵습니다(노드/엣지의 로컬 좌표계 기준으로 내려옵니다). 일반적인 캔버스 렌더링에는 기본값인true를 권장합니다.
절대좌표(기본) 기준 flat JSON의 주요 필드:
nodes[]:id,label?,x,y,width,height,parent?,children?x,y: 노드 바운딩박스의 좌상단 기준 좌표(ELK 결과 기준)ports?: 각 포트의id,x,y,width,heightlabels?: 각 라벨의id?,text?,x,y,width,height
edges[]:id,sources,targets,sections[],junctionPoints?sections[]는 ELK extended edge 라우팅이 분해된 구간 목록입니다.각
sections[]항목은startPoint,endPoint,bendPoints[]로 구성되며,bendPoints는 폴리라인 중간 정점(순서대로 연결)입니다.junctionPoints는 하이퍼엣지 등에서 분기/합류점이 계산된 경우에만 내려옵니다.
Related MCP server: Playwright MCP
클라이언트 설정
{
"mcpServers": {
"elk": {
"command": "npx",
"args": ["-y", "@cocrates/elk-mcp"]
}
}
}로컬 빌드:
{
"mcpServers": {
"elk": {
"command": "node",
"args": ["/path/to/elk-mcp/dist/mcp/index.js"]
}
}
}개발
npm install
npm run build
npm test
npm run start:mcp프로그램에서 코어 API를 직접 쓸 수도 있습니다:
import { layoutGraph } from "@cocrates/elk-mcp";
const result = await layoutGraph(
{
nodes: [
{ id: "A", width: 120, height: 40 },
{ id: "B", width: 100, height: 40 },
],
edges: [{ id: "e1", source: "A", target: "B" }],
},
{ algorithm: "layered", direction: "RIGHT" },
);GitHub Release · npm 배포
패키지 이름: @cocrates/elk-mcp (scoped). npm에 퍼블리시하려면 해당 scope 권한이 필요합니다.
1. 버전 올리기
npm version patch # 0.1.0 → 0.1.1
# 또는 minor / major
npm run build2. npm 배포
npm login
npm publish --access publicfiles 필드에 dist, README.md, LICENSE만 포함되므로 publish 전에 반드시 npm run build 하세요. (dist/는 gitignore일 수 있습니다.)
3. GitHub Release
git push origin main --follow-tags
gh release create v0.1.1 \
--title "v0.1.1" \
--notes "$(cat <<'EOF'
## Changes
- …
## Install
npm install -g @cocrates/elk-mcp@0.1.1
EOF
)"태그/릴리스는 npm version이 만든 git tag와 버전을 맞추면 됩니다.
권장 순서
PR 머지 →
mainnpm version+npm run build+npm publishgit push --follow-tags+gh release create
CI에서 publish하려면 Node 18+, NPM_TOKEN, (선택) GITHUB_TOKEN을 시크릿으로 두면 됩니다.
참고
elkjs 인터페이스:
docs/elkjs.md
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseAqualityFmaintenanceGPU-accelerated graph visualization and analytics server for Large Language Models that integrates with Model Control Protocol (MCP), enabling AI assistants to visualize and analyze complex network data.Last updated172411MIT- AlicenseAquality-maintenanceA server that enables LLMs to interact with web pages through structured accessibility snapshots without needing screenshots or visually-tuned models.Last updated246,254,4241
- Alicense-qualityAmaintenanceA graph-based MCP server that provides AI coding agents with persistent memory to store patterns, track complex relationships, and retrieve knowledge across sessions. It leverages graph structures to handle temporal queries and relational paths that traditional vector stores often miss.Last updated218MIT
- AlicenseAqualityAmaintenanceA Compact Knowledge Graph MCP server providing pre-structured domain knowledge as a routing layer for agent stacks, enabling efficient structural queries (e.g., prerequisites, dependency chains) without hallucinations.Last updated44MIT
Related MCP Connectors
HiveCompute MCP Server — decentralized inference router for AI agents
The internet's infrastructure graph for AI agents - 46B nodes and edges, free trial via 2 HTTP calls
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cocrates/elk-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server