Skip to main content
Glama
QuantumWars

Skill Graph MCP Server

by QuantumWars

Skill Graph

Ein Claude Code-Plugin, das die Skills und Agents, die Sie bereits haben, in einen Graphen verwandelt, den Sie abfragen können – aus einer Sitzung, in Ihrem Browser oder in einer Desktop-App.

Es katalogisiert jeden Agenten und jeden Skill in den Ordnern, auf die Sie es verweisen, zählt, welche davon tatsächlich welche anderen erwähnen, durchsucht Ihren Rechner nach Projekten, die jeden einzelnen installiert haben, und stellt das alles als MCP-Tools zur Verfügung. Alles, was es weiß, stammt aus dem Lesen echter Dateien.

Der Graph

Klicken Sie auf einen Knoten, um zu sehen, was darauf verweist, worauf er verweist, welche Projekte ihn installiert haben, sowie Ihre eigenen Notizen, Bewertungen und Tags:

Ein Knoten im Detail

Installation

/plugin marketplace add QuantumWars/project-graphx
/plugin install skill-graph

Führen Sie dann in jedem Projekt, für das Sie einen Graphen möchten, Folgendes aus:

/skill-graph:setup     # say where your skills and agents live — then offers to build
/skill-graph:build     # rescan, whenever the sources change
/skill-graph:view      # look at it, in your browser

/skill-graph:setup fragt vor dem Erstellen nach, anstatt es einfach zu tun, da ein Build mit gesetzten scanRoots jeden Scan-Root durchläuft. Wenn Sie zustimmen, gelangen Sie direkt von nichts zu einem Graphen.

Jedes Projekt erhält seinen eigenen Graphen. Wenn Sie stattdessen ein einziges Verzeichnis haben möchten, das von allen Projekten gemeinsam genutzt wird, führen Sie stattdessen /skill-graph:setup-global aus – siehe Ein Graph oder einer pro Projekt.

/skill-graph:view benötigt keinen Download – es stellt den Viewer über node bereit, das das Plugin bereits benötigt. /skill-graph:app öffnet denselben Viewer stattdessen als natives Desktop-Fenster, allerdings auf Kosten einer einmaligen Installation von etwa 280 MB Electron.

Related MCP server: skills-mcp

Voraussetzungen

Für

Sie benötigen

Hinweise

Die MCP-Tools

node 18+

Der Server wird bereits gebündelt ausgeliefert. Kein npm install.

/skill-graph:build

python3 3.6+

Nur Standardbibliothek. Auf macOS ist dies mit den Xcode-Befehlszeilentools enthalten.

/skill-graph:view

nichts weiter

Gleiches node wie oben.

add_repo

git

Nur zum Importieren der Skills eines externen Repos.

/skill-graph:app

npm + ~280 MB

Einmalige Electron-Installation, nur beim ersten Start. Optional.

Ausführen der Tests

bun

Nur für Mitwirkende.

Windows wird für /skill-graph:build nicht unterstützt. Die Build-Befehle rufen python3 auf, das Windows-Python-Installationen normalerweise nicht bereitstellen (es ist python oder py). install_skill hat dieselbe Abhängigkeit und schlägt nach dem Kopieren von Dateien fehl, sodass ein halb angewendeter Zustand zurückbleiben kann. WSL funktioniert.

Das Paketierungsskript der Desktop-App zielt nur auf macOS arm64 ab. Verwenden Sie auf anderen Plattformen /skill-graph:view oder führen Sie es unverpackt mit npm start aus app/ aus.

Ein Graph oder einer pro Projekt

Standardmäßig ist das Datenverzeichnis <project>/.claude/graph, sodass zwei Projekte niemals die Graphen des anderen sehen. Das ist normalerweise das, was Sie möchten, und der Grund, warum Ihnen nichts zwischen nicht verwandten Repos folgt.

GRAPH_DATA_DIR überschreibt dies. Setzen Sie es, und jedes Projekt liest und schreibt in dasselbe Verzeichnis:

dataDir = GRAPH_DATA_DIR  or  <project>/.claude/graph

/skill-graph:setup-global erledigt das Ende-zu-Ende – wählt den Speicherort, findet jede Quelle auf dem Rechner, schreibt die Konfiguration mit absoluten Roots, setzt die Variable in ~/.claude/settings.json und erstellt den Graphen. Es wird beim nächsten Neustart wirksam, da ein MCP-Server seine Umgebung beim Prozessstart liest.

Die gemeinsame Nutzung des Verzeichnisses teilt auch das Overlay, sodass Notizen, Bewertungen und Tags maschinenweit statt pro Repo werden. Wenn Sie überall dieselben Skills, aber nicht dieselben Notizen haben möchten, setzen Sie die Variable nicht – geben Sie jedem Projekt eine normale Konfiguration, deren Quell-Roots absolut sind. Relative Roots werden relativ zum Projekt aufgelöst; absolute nicht, sodass mehrere Projekte dieselben Ordner katalogisieren und dennoch ihre eigenen Graphen behalten können.

Projektbezogene Graphen werden durch die Umstellung auf global nie gelöscht. Entfernen Sie die Variable, und sie sind wieder aktiv.

Wo die Dinge leben

Der Code wird mit dem Plugin ausgeliefert. Die Daten gehören zum Projekt:

<your project>/.claude/graph/
├── config.json        what to catalogue, what to scan   (you own this — commit it)
├── graph-data.json    the built graph                   (regenerated wholesale)
├── overlay.json       your notes, ratings, tags, edges  (survives rebuilds)
└── imported-repos/    shallow clones from add_repo

Es werden niemals Graphdaten in das Plugin-Verzeichnis geschrieben, das bei jeder Neuinstallation gelöscht wird. Zwei Projekte auf demselben Rechner erhalten zwei unabhängige Graphen und sehen niemals die des anderen.

Die einzige Ausnahme ist Electron selbst: /skill-graph:app installiert es unter app/ des Plugins, sodass ein Plugin-Update einen erneuten Download bedeutet. /skill-graph:view muss nichts neu installieren, was der Hauptgrund dafür ist, dass es die Standardeinstellung ist.

graph-data.json wird bei jedem /skill-graph:build von Grund auf neu erstellt. Bearbeiten Sie es niemals von Hand – Ihre Bearbeitung verschwindet. Alles, was Sie über die Tools hinzufügen, wird in overlay.json gespeichert, das von Builds nie berührt wird.

Konfiguration

.claude/graph/config.json:

{
  "sources": [
    { "repo": "my-project", "root": ".claude/agents", "kind": "agent" },
    { "repo": "my-project", "root": ".claude/skills", "kind": "skill" }
  ],
  "scanRoots": ["~/code"],
  "scanExclude": ["/node_modules/"]
}
  • sources – Verzeichnisse, die die zu katalogisierenden Agents und Skills enthalten. kind: "agent" für einen Ordner mit *.md; kind: "skill" für einen Ordner mit <name>/SKILL.md-Verzeichnissen. Relative Pfade werden relativ zum Projektstammverzeichnis aufgelöst. Ein fehlender Root wird mit einer Warnung übersprungen, nicht mit einem Absturz.

  • scanRoots – Bäume, die nach Projekten durchsucht werden, die diese Skills installiert haben. Dies füllt die Angabe „wer verwendet dies tatsächlich“. [] bedeutet, nichts zu scannen, und wird so beibehalten.

  • scanExclude – Entfernen Sie jeden Pfad, der eine dieser Teilzeichenfolgen enthält.

Ein Projekt, das eine konfigurierte Quelle besitzt, wird niemals als Benutzer seines eigenen Katalogs gezählt. Ohne dies würde ein Repo, das seine eigenen .claude/skills katalogisiert, sich selbst als Benutzer jedes darin enthaltenen Skills melden, und jede Nutzungszahl wäre um eins erhöht.

Was die Tools Ihnen sagen – und was nicht

Kanten sind gezählte Erwähnungen. Eine Kante existiert, weil der Text einer Datei den Namen eines anderen Knotens enthält. Das ist eine echte, reproduzierbare Messung – keine kuratierte Aussage, dass zwei Dinge zusammengehören. Ein Skill, der nach einem gebräuchlichen Wort benannt ist, sammelt zufällig Kanten.

Nutzung ist eine Dateisystem-Tatsache. usedBy ergibt sich aus der Überprüfung, ob die Datei tatsächlich vorhanden ist. „Nicht vorhanden“ bedeutet „unter Ihren Scan-Roots nicht gefunden“, niemals „ungenutzt“.

Kategorien sind eine Schätzung. Sie stammen aus einer Schlüsselwort-Heuristik zur Build-Zeit, die zuerst den Namen liest und nur dann auf die Beschreibung zurückfällt, wenn der Name nichts aussagt – ein Ding namens python-testing ist Python, ein Ding, das Python nur beiläufig erwähnt, ist es nicht. Es ist dennoch eine Heuristik: Sie wird einige Dinge seltsam einordnen und sagt general, wenn sie es nicht sagen kann. Tags werden manuell vergeben und bedeuten, was jemand entschieden hat. Bevorzugen Sie Tags.

Importierte Repos haben keine Kanten. add_repo extrahiert nur Frontmatter; Querverweise werden für Importe nicht berechnet. Null Verbindungen bei einem importierten Skill sind eine Aussage über den Importeur, nicht über den Skill. Aus diesem Grund ist das Importieren eines Verzeichnisses, das Sie bereits als Quelle konfiguriert haben, schlimmer als nutzlos, und warum es abgelehnt wird – siehe unten.

Wenn zwei Dinge denselben Namen haben

Zwei nicht verwandte Repos können jeweils einen code-reviewer enthalten, und beide gehören in den Graphen. Eine Suche nach Namen kann also wirklich mehrdeutig sein, und die Antwort nennt stattdessen die IDs:

{ "error": "ambiguous", "candidates": ["myproj:agent:code-reviewer", "import:other:agent:code-reviewer"] }

Jedes Tool, das einen Knoten akzeptiert, akzeptiert auch eine ID, sodass ein Kandidat aus dieser Liste direkt zurückgegeben werden kann, um die Bindung aufzulösen – einschließlich install_skill und uninstall_skill, bei denen die Auswahl des falschen echte Dateien kopiert oder löscht.

add_repo lehnt ein Verzeichnis ab, das der Build bereits katalogisiert. Beide Wege würden dieselben Dateien erreichen – der Build schreibt sie in graph-data.json, ein Import speichert sie in overlay.json, und beide werden zur Lesezeit zusammengeführt – daher würde jedes Element darunter zweimal unter einem Namen erscheinen, und keine ID könnte sie unterscheiden, da es dieselbe Datei ist. Es stoppt, bevor es etwas schreibt, nennt die Datei, die sich bereits im Graphen befindet, und endet mit „Es wurde nichts importiert.“

Zwei verschiedene Repos, die zufällig denselben Skill-Namen haben, sind in Ordnung und werden trotzdem importiert; die Prüfung erfolgt auf Pfade, nicht auf Namen.

Der Graph ist eine Momentaufnahme

Er spiegelt den letzten Build wider. Fügen Sie einen Skill von Hand hinzu, ändern Sie eine Quelle oder installieren Sie etwas außerhalb dieser Tools, und er ist veraltet, bis Sie ihn neu erstellen. install_skill und uninstall_skill scannen sich selbst neu; nichts anderes tut dies.

Entwicklung

bun install --frozen-lockfile   # exactly the versions CI and the bundle were built from
bun test                        # unit + end-to-end
bun run bundle                  # rebuild server/server.bundle.mjs after editing server/

bun.lock fixiert, woraus das gebündelte Artefakt kompiliert wurde, und app/package-lock.json fixiert das Electron, mit dem die Desktop-App getestet wurde. CI installiert mit --frozen-lockfile, sodass eine Abhängigkeit, die ohne Aktualisierung der Lock-Datei erhöht wird, den Lauf fehlschlagen lässt, anstatt stillschweigend ausgeliefert zu werden.

Der Viewer kann direkt ausgeführt werden, was der schnellste Weg ist, um an app/ zu iterieren:

node server/viewer-server.js --data-dir <project>/.claude/graph

Bündeln Sie nach jeder Änderung unter server/ neu. .mcp.json führt das Bundle aus, nicht den Quellcode, daher ist eine nicht gebündelte Bearbeitung eine Bearbeitung, die nicht ausgeliefert wird. Die End-to-End-Suite startet das Bundle genau so, wie Claude Code es tut, und schlägt fehl, wenn es veraltet ist, und CI baut es neu und schlägt fehl, wenn sich die gebündelte Kopie unterscheidet.

bun run bundle führt auch scripts/normalize-bundle.js aus, das das __dirname-Literal, das der Bundler zur Build-Zeit eingefroren hat, durch einen Laufzeitausdruck ersetzt. Ohne dies würde das Artefakt den absoluten Pfad desjenigen enthalten, der es erstellt hat, und zwei Maschinen würden niemals dieselben Bytes produzieren – was den CI-Vergleich überhaupt erst ermöglicht.

Lizenz

MIT – siehe LICENSE.

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    Connects AI coding agents to the SkillFlow marketplace to search, discover, and retrieve detailed information about agent skills. It enables users to browse trending skills, categories, and publisher data directly through MCP-compatible environments.
    5
    53
    1
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    Discovers and manages portable agent capabilities (skills and MCP servers) from configurable collections, providing search, inspection, and local installation via CLI and MCP tools.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • A registry of 5,900+ peer-authored skills any MCP agent can search and load on demand.

  • Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.

  • Scan agent skills and MCP servers for malicious patterns before you load them

View all MCP Connectors

Latest Blog Posts

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/QuantumWars/project-graphx'

If you have feedback or need assistance with the MCP directory API, please join our Discord server