v0.4.0
Added — codesteward-graph
- Graph backend abstraction layer (
engine/backends/): newGraphBackendABC with a
unified async interface for node/edge writes, named queries, and raw query passthrough.
All tool functions are now backend-agnostic. - JanusGraph backend (
backends/janusgraph.py): Apache 2.0 licensed alternative to Neo4j.
Connects via Gremlin (Apache TinkerPopgremlinpython>=3.7). Named query templates
(lexical,referential,semantic,dependency) reimplemented in Gremlin. Raw query
passthrough uses Gremlin instead of Cypher. - GraphQLite backend (
backends/graphqlite.py): embedded SQLite-based graph database
(graphqlite>=0.4) — no server needed, ideal for local dev viauvx. Speaks Cypher
(same templates as Neo4j). Database defaults to~/.codesteward/graph.db; override with
GRAPHQLITE_DB_PATH. - Neo4j backend extracted into
backends/neo4j.py(same Cypher queries, now behind the
GraphBackendinterface). get_backend()factory inbackends/__init__.pydispatches byGRAPH_BACKENDvalue.- New optional dependency extras:
janusgraph(gremlinpython) andgraphqlite(graphqlite).
Added — codesteward-mcp
GRAPH_BACKENDenvironment variable to select the graph backend:neo4j(default),
janusgraph, orgraphqlite.JANUSGRAPH_URLenvironment variable for the Gremlin Server WebSocket URL.GRAPHQLITE_DB_PATHenvironment variable for the SQLite database file path.gremlinraw query type incodebase_graph_queryfor JanusGraph raw Gremlin passthrough.
Cypher/Gremlin mismatch is rejected with a clear error.docker-compose.janusgraph.yml— drop-in JanusGraph stack (BerkeleyDB JE + Lucene,
single-node, no external Cassandra/HBase required).docker-compose.neo4j.yml— renamed from the previousdocker-compose.ymlfor clarity.- Docker image now installs the
janusgraphextra by default. - New optional dependency extras on
codesteward-mcp:janusgraphandgraphqlite
(re-exported fromcodesteward-graph). - Global setup templates: Claude Code (
templates/global-claude-code/) and OpenAI Codex
(templates/global-codex/) with CLAUDE.md, skill file, settings snippet, and AGENTS.md. codesteward-mcp setupsubcommand — one-time global setup that auto-detects installed
AI tools (Claude Code, Cursor, Cline, Codex CLI, Gemini CLI), registers the MCP server in
each tool's global config, and merges workflow instructions into CLAUDE.md / AGENTS.md /
GEMINI.md. Idempotent — safe to re-run.--uninstallreverses all changes cleanly.
--backendflag acceptsgraphqlite(default),neo4j, orjanusgraph.- Cline support:
.clinerulestemplate, Cline detection insetupcommand (cross-platform
globalStorage path resolution), and Cline section in AGENT_SETUP.md with marketplace install
instructions viallms-install.md. docs/setup/— per-tool setup guides (Claude Code, Cursor & Cline, Codex CLI, Gemini CLI,
Windsurf / VS Code / Claude Desktop / Continue.dev, Docker + Neo4j / JanusGraph). Referenced
from README.md Quick Start.
Changed — codesteward-mcp
GRAPH_BACKENDdefault changed fromneo4jtoauto— auto-detects the appropriate
backend at startup: Neo4j ifNEO4J_PASSWORDis set, JanusGraph ifJANUSGRAPH_URLis
non-default, otherwise GraphQLite. Existing deployments with explicit env vars are unaffected.- Tool response fields renamed:
neo4j_connected→backend_connected; new
graph_backendfield ingraph_rebuildandgraph_statusresponses. _make_async_driver()replaced by_make_backend()— returns aGraphBackendinstance
(orNonefor stub mode) instead of a raw Neo4j driver.GraphBuildernow accepts abackendparameter (theGraphBackendinstance) instead of
neo4j_driver.- Cypher query templates moved from inline constants in
tools/graph.pyinto each backend's
query_named()implementation. - Server instructions updated to describe all three backends and the
gremlinquery type. - README.md Quick Start rewritten: leads with
uvx codesteward-mcp setupfor zero-config
global setup; manual setup simplified with GraphQLite as default. llms-install.mdrewritten for GraphQLite default and Cline compatibility.- All
uvxargs in templates and docs fixed to use the--frompattern
(uvx --from "codesteward-mcp[graph-all,graphqlite]" codesteward-mcp) — the previous
pattern failed on macOS whereuvxcannot parse extras as a command name. - Global setup templates (
templates/global-claude-code/,templates/global-codex/) updated
to use GraphQLite as default backend. - License changed from BSD 3-Clause to Apache 2.0.
Docker image
docker pull ghcr.io/codesteward/codesteward-graph:0.4.0Full setup guide: AGENT_SETUP.md