Skip to main content

LeanIX enterprise-architecture helper: GraphQL proxy, factsheet download, and graph loading into KuzuDB or Neo4j

Project description

dvm-eahelper — LeanIX Enterprise Architecture Helper

Successor to dvm-leanix and dvm-eagraph, combined into a single package.

One CLI (eahelper) to:

  • Run eahelper server — a GraphQL proxy to SAP LeanIX plus an embedded MCP server in a single process, with the debug browser managed automatically
  • Extract the Bearer token from a managed (or your own) browser via Playwright CDP
  • Download factsheets and relationships as JSON
  • Load them into a graph database — KuzuDB (embedded, default) or Neo4j
  • Query the graph from any MCP-aware tool (Claude Code, VS Code Copilot, ...)

Works on Windows and macOS.

Installation

uv tool install dvm-eahelper        # or: pip install dvm-eahelper
uvx playwright install chromium     # one-time, for the proxy

Quick start

eahelper server

On first run this prompts for your LeanIX workspace URL and preferred graph database, saves the answers to ~/.eahelper/config.toml (so you're only asked once), launches a managed debug browser to capture a Bearer token, then closes it again. The server exposes the GraphQL proxy and an MCP endpoint on one port (default 8765).

eahelper download --relations   # auto-starts the server if it isn't running
eahelper load                   # prompts for DB backend the first time; then remembers it
eahelper load --db neo4j        # or choose explicitly

KuzuDB is embedded — no server needed; the database is a local directory (--db-path, or [graph].kuzu_path in config.toml, default ./eahelper-kuzu-db). For Neo4j, start your server and put NEO4J_URI, NEO4J_USERNAME, NEO4J_PASSWORD in a .env file (never in config.toml — no secrets are stored there).

Configuration

Settings are resolved in this order for every value: CLI flag → environment variable → ~/.eahelper/config.toml → interactive prompt (saved back to config.toml) → built-in default.

eahelper config              # show effective config
eahelper config path         # print the config file path
eahelper config set graph.db kuzu
eahelper config set leanix.workspace_url https://eu-10.leanix.net/YourWorkspace
eahelper config unset browser.browser

Sections: [leanix] workspace_url, proxy_port · [browser] browser, cdp_port, keep_open · [graph] db, kuzu_path, mcp_read_only · [neo4j] uri.

MCP (Model Context Protocol)

eahelper server mounts an MCP server at /mcp (streamable HTTP), exposing get_schema() and query(cypher) tools against your graph database. A stdio variant is also available for harnesses that spawn a subprocess:

eahelper mcp                      # stdio transport
eahelper mcp-config                # print Claude Code / VS Code config snippets
eahelper mcp-config --install      # write/merge .mcp.json and .vscode/mcp.json

Pass --mcp-read-only to eahelper server (or set [graph] mcp_read_only = true) to reject write Cypher queries.

Managed browser

By default, eahelper server launches and closes a debug browser automatically (persistent profile at ~/.eahelper/browser-profile, CDP port 19222) whenever a LeanIX token is needed, and never touches a browser it didn't start. Pass --keep-browser (or set [browser] keep_open = true) to leave it open.

If you prefer to manage the browser yourself, launch it manually and eahelper will connect to the existing CDP endpoint instead of starting a new one:

Windows (PowerShell, Edge — requires ALL other Edge windows closed first):

Start-Process "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" `
  "--remote-debugging-port=19222 --user-data-dir=C:\Temp\edge-debug --no-first-run --no-default-browser-check"

macOS (Chrome):

open -na "Google Chrome" --args --remote-debugging-port=19222 --user-data-dir="$HOME/chrome-debug"

Commands

Command Purpose
eahelper server GraphQL proxy + MCP server (foreground); add start/stop/status for background
eahelper proxy Legacy standalone GraphQL proxy + GraphiQL UI
eahelper diagnose Check browser/CDP/SSL connectivity
eahelper download Download factsheets & relationships to JSON
eahelper load Load downloaded JSON into KuzuDB or Neo4j
eahelper seed Seed example/reference data
eahelper mcp MCP server over stdio
eahelper mcp-config Print/install MCP client config snippets
eahelper config View or edit ~/.eahelper/config.toml

download and load auto-start eahelper server in the background if it isn't already running.

Agent skill

An installable Agent Skill (Claude Code, GitHub Copilot, and other agentskills.io-compatible tools) that walks you through setup and usage lives at dvm-eahelper-skills.

Migrating from dvm-leanix / dvm-eagraph

Old New
dvm-leanix serve / lean-ix serve eahelper proxy
dvm-leanix download eahelper download
dvm-leanix diagnose eahelper diagnose
dvm-eagraph eahelper load
dvm-eagraph-seed eahelper seed

Token store moved from ~/.lean-ix/ to ~/.eahelper/.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dvm_eahelper-0.2.0.tar.gz (142.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dvm_eahelper-0.2.0-py3-none-any.whl (71.9 kB view details)

Uploaded Python 3

File details

Details for the file dvm_eahelper-0.2.0.tar.gz.

File metadata

  • Download URL: dvm_eahelper-0.2.0.tar.gz
  • Upload date:
  • Size: 142.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dvm_eahelper-0.2.0.tar.gz
Algorithm Hash digest
SHA256 76200bb3f5ce0efb369a43e2956065b7cc1cefd73895ba4289e5709da67a711f
MD5 c6e431120613d84b9d3ae3372a26390a
BLAKE2b-256 a910a26651a53af32188d7b6698aa2c957d15a6033300d3629a8c5a7648a7bb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dvm_eahelper-0.2.0.tar.gz:

Publisher: publish.yml on divyavanmahajan/dvm-eahelper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dvm_eahelper-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dvm_eahelper-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 71.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dvm_eahelper-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3efb4cd464f533b687aa50ac556108992aceebde4f57a27dab8118f821395205
MD5 08a4dc65f2d8fac6ee508a3d9f9f85ab
BLAKE2b-256 098e227191c767afcac32370f5d6b8834110704f3e6a8a469cad39a52fe20fcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for dvm_eahelper-0.2.0-py3-none-any.whl:

Publisher: publish.yml on divyavanmahajan/dvm-eahelper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page