Codesteward/Graph Server

Stop coding agents from
changing code blindly

The Graph Server builds a deterministic structural graph of your entire codebase — call chains, inheritance trees, auth guards, blast radius — and makes it queryable by any MCP client. No LLM inside. Pure AST analysis.

Graph Split
Results
Which functions can call the 'deleteUser' method?
3 Functions Can Call "deleteUser":
▸AuthService — deleteUser
▸UserController — removeAccount
▸AdminPanel — userDelete

Works with your favorite coding tools

Claude Code
Codex CLI
Cline
Cursor
Windsurf
VS Code
Any MCP Client

Safer, faster, more confident AI-assisted development

Smaller blast radius

Know exactly what breaks before changing a single line. Trace transitive callers across your entire codebase instantly.

Better code review confidence

Every auth guard mapped. Every dependency resolved. Review AI-generated changes with full structural context.

Fewer agent mistakes

Agents stop guessing about cross-file relationships. Deterministic graph queries replace hallucinated assumptions.

Complete auditability

Every edge has confidence 1.0 from AST analysis. Agent-inferred edges are clearly labeled. No hidden decisions.

Faster onboarding

New engineers query the graph to understand call flows, inheritance trees, and authorization patterns across large repos.

Polyglot support

14 languages, one unified graph. Python, TypeScript, Java, Go, Rust, and more — no per-language silos.

Ask. Analyze. Answer.

Query your codebase graph and get precise, auditable results.

Show incoming calls to the "deleteUser" function
3 Functions Can Call "deleteUser":
▸
AuthService — deleteUser
▸
UserController — removeAccount
▸
AdminPanel — userDelete

Build, query, enrich

Your coding agent calls three MCP tools to get complete structural visibility.

01

Build the graph

The agent calls graph_rebuild. Codesteward parses the entire codebase with tree-sitter, resolves cross-file references, and stores the structural graph. Incremental rebuilds take under a second.

02

Query anything

The agent calls codebase_graph_query with any Cypher query. Call chains, unused exports, auth coverage, blast radius — all deterministic, all instant.

03

Enrich optionally

The agent calls graph_augment to add inferred edges — dynamic dispatch, runtime dependencies. These are marked with confidence < 1.0, never mixed with ground truth.

14 languages. One graph.

Every language contributes the same structural edges. Your polyglot monorepo gets a single queryable model.

Python TypeScript JavaScript Java Kotlin C# C++ PHP Go Ruby Rust Scala Swift TSX/JSX

No Docker. No database. One command.

The default backend is GraphQLite — an embedded SQLite graph that persists to ~/.codesteward/graph.db. No server to run, no repo to mount, no background process. Set it up once and every repository on your machine is covered.

01

Set it up once, machine-wide

Auto-detects Claude Code, Cursor, Cline, Codex CLI, and Gemini CLI, registers the MCP server globally, and merges into your existing config — nothing is overwritten.

uvx --from "codesteward-mcp[graph-all,graphqlite]" codesteward-mcp setup
02

Open any repo and ask

No .mcp.json, no per-project config. The agent builds the graph on first use and queries it from then on.

$ cd /path/to/your/project
$ claude   # or: cursor, cline, codex, gemini

"Which routes reach the database without an auth guard?"

Need a shared, persistent graph?

GraphQLite keeps the graph in a local file, which is what you want on a laptop. When a team or CI has to query one graph instead of many, swap the backend for Neo4j or JanusGraph — same tools, same queries. Compose stacks ship in the repo.

docker compose -f docker-compose.neo4j.yml up -d

Give your coding agents structural visibility.

Explore the documentation or check out the source on GitHub.