mdgraph
mdgraph
Scannt das Markdown eines Repos in einen Graphen, visualisiert ihn im Browser und exponiert ihn für Claude (oder jeden MCP-Host) als Navigationsindex.
Ein Datenmodell — { nodes, edges } — mit drei Konsumenten:
scan (the only hard part)
│ emits { nodes, edges }
┌──────────┼───────────┐
▼ ▼ ▼
graph.json browser MCP server
(a file) (viewer) (agents read it)Einblicke, Erreichbarkeit und verwaiste Knoten werden zur Lesezeit aus dem Modell abgeleitet. Knoten und Kanten bleiben dumm.
Das Modell
node = { id, label, path, type, cluster, content } // type: root | ai | doc
edge = { source, target, sourceLine, context } // context = the line the link lives ontype wird per Dateinamenskonvention vergeben (README.md → root, CLAUDE.md/AGENTS.md/*.mdc → ai, sonst → doc). Kanten entstehen aus tatsächlichen Links im Text — standard [x](./y.md) und [[wikilinks]] — nicht aus Ordnerzugehörigkeit, sodass eine Datei in docs/, die über die Baumstruktur hinweg verlinkt, auch tatsächlich verbunden ist. Ordner steuern nur cluster (Einfärbung/Gruppierung).
Related MCP server: mcp-server-markdown
Installation & Ausführung
Keine Installation nötig — einfach direkt mit npx ausführen:
npx @emmd474/mdgraph scan . # print the graph as JSON
npx @emmd474/mdgraph view . # open the interactive graph in a browser
npx @emmd474/mdgraph scan . --out graph.jsonOder global installieren, um einen einfachen mdgraph-Befehl zu erhalten:
npm install -g @emmd474/mdgraph
mdgraph view ./my-repo
mdgraph scan ./my-repo --out graph.jsondir standardmäßig das aktuelle Verzeichnis. view akzeptiert --port (Standard: 4173).
Befehle
Befehl | Funktion |
| Erstellt den Graphen, gibt JSON auf stdout aus (oder mit |
| Startet den interaktiven Graphen unter |
| Startet den MCP-Server über stdio, für Claude und andere Agenten. |
Für Claude exponieren (MCP)
Claude Desktop — in claude_desktop_config.json eintragen:
{
"mcpServers": {
"mdgraph": {
"command": "npx",
"args": ["-y", "@emmd474/mdgraph", "mcp", "/abs/path/to/your/repo"]
}
}
}Claude Code:
claude mcp add mdgraph -- npx -y @emmd474/mdgraph mcp /abs/path/to/your/repoHost neu starten und Claude erhält vier Werkzeuge:
Werkzeug | Zweck |
| Inhaltsfreie Übersicht: Typen, Cluster, Linkanzahlen, verwaiste/erreichbare Flags, Kanten. Die günstige Orientierung. |
| Rohes Markdown eines Dokuments per Pfad. |
| Alles, was von einem Einstiegsdokument aus erreichbar ist, in Lesereihenfolge — die exakte Menge zum Laden und Verstehen. |
| Dokumente, auf die nichts verlinkt. |
Der Punkt: Ein Agent ruft get_project_map zur Orientierung auf, dann get_context("README.md"), um nur die Dokumente zu laden, die die Aufgabe braucht — statt jedes .md in den Kontext zu kippen.
Veröffentlichung (für Maintainer)
Der Name mdgraph ist auf npm vergeben, daher wird scoped unter deinem Konto veröffentlicht:
# 1. set the scope to YOUR npm username (edit "name" in package.json if not @emmd474)
npm whoami # confirm you're logged in; else: npm login
npm publish --access publicScoped-Pakete sind standardmäßig privat, daher ist --access public beim ersten Mal erforderlich. Für ein Update die Version erhöhen und erneut veröffentlichen:
npm version patch # 0.1.0 -> 0.1.1, also creates a git tag
npm publishnpm pack --dry-run zeigt genau, was veröffentlicht wird (derzeit 7 Dateien, ~16 kB — kein node_modules, kein Test-Repo, dank der files-Allowlist).
Am Beispiel ausprobieren
git clone <this repo> && cd mdgraph && npm install
node cli.mjs view testrepo
node cli.mjs scan testrepoWas real ist vs. was als Nächstes kommt
Getestet und funktionsfähig: der Scanner (md + Wikilink-Erkennung, Codefence-Überspringen, Konventions-Typisierung, Erkennung verwaister Knoten), der Browser-Viewer und alle vier MCP-Werkzeuge über einen echten stdio-Handshake.
Als Nächstes, in etwa der Reihenfolge:
Link-Parsing härten — der Scanner arbeitet zeilenbasiert und überspringt Codeblöcke, aber ein Inline-Code-Span (
`[x](y)`) kann noch einen falschen Link erzeugen. Einen echten Markdown-AST (remark+unist-util-visit) einbauen, wenn du Präzision willst; die ausgegebene Form bleibt identisch.Manuelle Kanten — dem Viewer erlauben,
related:in die Frontmatter einer Datei zu schreiben, die als dritte Kantenquelle gelesen wird.Frontmatter-Tags als Clusterquelle neben den Ordnern.
--watchbeiview, um Graph-Updates per Server-Sent Events zu pushen.
MIT-lizenziert.
This server cannot be installed
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
- FlicenseNot gradedqualityDmaintenanceEnables intelligent navigation and exploration of the Model Context Protocol specification through dynamic markdown tree generation, section search, content retrieval, and upstream synchronization with the official MCP repository.
- AlicenseAqualityDmaintenanceMCP server for markdown files — search, extract sections, list headings, find code blocks across docs.6675MIT
- FlicenseNot gradedqualityAmaintenanceMCP server that enables full-text search and link navigation over Markdown files as a knowledge graph.
- AlicenseNot gradedqualityAmaintenanceEnables reading, writing, and searching a local markdown-based memory store using MCP tools, with safety checks and index consistency.MIT
Related MCP Connectors
Markdown utilities MCP.
MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.
Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.
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/EMMD474/mdgraph'
If you have feedback or need assistance with the MCP directory API, please join our Discord server