io.github.CloudCorpRecords/diagramport
Generate Mermaid diagrams and charts from Mermaid syntax, validated locally.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
@reneturcios/diagramportclaude mcp add diagramport -- npx -y @reneturcios/diagramport@0.1.0 mcp
{
"mcpServers": {
"diagramport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/diagramport@0.1.0",
"mcp"
]
}
}
}
ghcr.io/cloudcorprecords/diagramport:0.1.0claude mcp add diagramport -- docker run -i --rm ghcr.io/cloudcorprecords/diagramport:0.1.0 mcp
{
"mcpServers": {
"diagramport": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cloudcorprecords/diagramport:0.1.0",
"mcp"
]
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
diagramport
diagramport generates Mermaid diagrams and charts from Mermaid
syntax. Give it a diagram — graph TD; A-->B; and friends — and it
hands back the form you asked for: the syntax itself, a shareable
mermaid.ink link, or a rendered image produced by a renderer command
you configure on your own machine.
Everything except rendering is local logic that always works: the syntax is validated before anything else happens, and the share links are built from the diagram text without any network call.
Install
npx @reneturcios/diagramport generate --mermaid "graph TD; A-->B;" --output-type mermaid
Or run the container image:
docker run -i ghcr.io/cloudcorprecords/diagramport
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.
CLI
# Validate syntax only (exit 1 with the reason when invalid)
diagramport validate --mermaid "graph TD; A-->B; A-->C; B-->D; C-->D;"
# Return the validated syntax
diagramport generate --mermaid "graph TD; A-->B;" --output-type mermaid
# Build a shareable mermaid.ink link (SVG or PNG)
diagramport generate --mermaid "graph TD; A-->B;" --output-type svg_url
diagramport generate --mermaid "graph TD; A-->B;" --output-type png_url
# Render an image (needs DIAGRAMPORT_RENDERER_COMMAND, see below)
diagramport generate --mermaid "graph TD; A-->B;" --output-type base64
diagramport generate --mermaid "graph TD; A-->B;" --output-type file
diagramport --version
Exit codes: 0 on success, 1 when the syntax is invalid or
rendering fails (the error names the problem), 2 for usage errors.
MCP server
One bin serves both faces. The mcp subcommand starts a stdio MCP
server:
npx -y @reneturcios/diagramport mcp
MCP client configuration:
{
"mcpServers": {
"diagramport": {
"command": "npx",
"args": ["-y", "@reneturcios/diagramport", "mcp"]
}
}
}
Tools
| Tool | Input | What it returns |
|---|---|---|
generate_mermaid_diagram | mermaid (string, required) — the mermaid diagram syntax; theme (string, optional, default default); backgroundColor (string, optional, default white); outputType (string, optional, default base64) — one of base64, svg, mermaid, file, svg_url, png_url | Depends on outputType: mermaid returns the validated syntax as text; svg_url / png_url return a public mermaid.ink link; base64 returns the rendered PNG image as a base64 encoded string; svg returns the rendered SVG markup; file saves the rendered PNG image to disk and returns its path. |
Validation
Syntax is checked locally before any output is produced. The first
non-empty line must start with a known diagram type (graph,
flowchart, sequenceDiagram, classDiagram, stateDiagram,
stateDiagram-v2, erDiagram, journey, userJourney, gantt,
pie, gitGraph, mindmap, timeline, quadrantChart,
requirementDiagram, C4Context), and quotes and brackets must be
balanced (brackets inside a double-quoted label do not count).
Invalid syntax is reported as an error naming the reason — it is
never passed on to a renderer or a link builder. This is a
structural sanity check, not a full Mermaid parse.
Share links
For svg_url and png_url, diagramport builds the link locally:
the payload is the base64url encoding of the UTF-8 diagram text,
appended to https://mermaid.ink/svg/ (SVG) or
https://mermaid.ink/img/ (PNG). Anyone opening the link gets the
diagram rendered by mermaid.ink; diagramport itself makes no
network call to build it.
Rendering
diagramport bundles no renderer — rendering a diagram to an
image needs a Mermaid engine and, typically, a headless browser,
which are deliberately left to the operator. The base64, svg,
and file output types render through a local command named by
the DIAGRAMPORT_RENDERER_COMMAND environment variable. The
command receives the diagram text on stdin and must write the
rendered image bytes to stdout:
export DIAGRAMPORT_RENDERER_COMMAND="my-mermaid-renderer --format png"
diagramport generate --mermaid "graph TD; A-->B;" --output-type base64
With no renderer configured, those output types return an error
naming DIAGRAMPORT_RENDERER_COMMAND. Image bytes are never
invented or stubbed. file output is written under
DIAGRAMPORT_OUTPUT_DIR when set, otherwise ./diagrams/, with a
timestamped .png file name.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network, fake renderer only
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
الأسئلة الشائعة
ما هو io.github.CloudCorpRecords/diagramport؟
Generate Mermaid diagrams and charts from Mermaid syntax, validated locally.
كيف أثبّت io.github.CloudCorpRecords/diagramport؟
يعمل على جهازك. في Claude Code: claude mcp add diagramport -- npx -y @reneturcios/diagramport@0.1.0 mcp. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج io.github.CloudCorpRecords/diagramport إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل io.github.CloudCorpRecords/diagramport مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون io.github.CloudCorpRecords/diagramport؟
ينشره CloudCorpRecords. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.