servicegraph
Local-first cross-service code intelligence engine for AI agents, connecting frontend, gateways, backend services, and databases to enable impact analysis and change planning.
README
<div align="center">
ServiceGraph
Local-first cross-repository change intelligence for AI agents
中文 · Web Workbench · Development plan · Impact analysis plan · Integrations
</div>
ServiceGraph is building a local-first, cross-repository change intelligence engine for AI agents. It connects frontend code, gateways, backend services, contracts, configuration, registries, databases, and eventually runtime traces so a requirement or code change can become an evidence-backed impact, development, integration, and verification plan.
ServiceGraph is in early development. The CLI, versioned SQLite graph, Codebase Memory Route/HTTP import, bounded cross-repository traversal, and MCP/CLI/Web Mermaid sequence output work today. Broader framework coverage, impact propagation, boundary view, and Change Lens remain in development.
Why ServiceGraph?
A repository code graph knows what the source says can happen. A service registry knows which service instances currently exist. A runtime trace knows what happened for one sampled request. Cross-service development needs all three views, tied to stable service, endpoint, revision, and source identities.
ServiceGraph aims to answer questions such as:
- How does a click in
mall-webreach the inventory database? - Which repository and handler implement
POST /ordersin the test environment? - If this DTO, route, or service name changes, which repositories and tests are affected?
- Is this edge inferred from source, declared in a contract, or observed at runtime?
- Which services are the minimum set needed to develop this flow locally?
Architecture
flowchart LR
CLI["CLI"] --> D["servicegraphd"]
MCP["MCP server"] --> D
WEB["Sequence Workbench<br/>(MVP available)"] --> D
CBM["Codebase Memory"] --> D
CG["CodeGraph<br/>(optional enrichment)"] --> D
NACOS["Nacos<br/>(planned)"] --> D
OTEL["OpenTelemetry<br/>(planned)"] --> D
D --> GRAPH["Federated evidence graph"]
GRAPH --> SEQ["Sequence query engine"]
SEQ --> WEB
GRAPH --> IMPACT["Impact engine<br/>(planned)"]
IMPACT --> REPORT["Change, integration,<br/>and verification plan"]
ServiceGraph integrates with Codebase Memory as its planned default repository indexer and CodeGraph as optional in-repository enrichment. Both are independent projects and are detected as external tools; ServiceGraph does not install, bundle, or modify them.
Project status
| Capability | Status |
|---|---|
| Strict TypeScript identity and evidence model | Available |
servicegraph init, doctor, and status |
Available |
| Codebase Memory and CodeGraph installation probes | Available |
| MCP tool schemas and honest not-initialized/not-built errors | Available |
| Impact types, request validation, Git snapshot/diff capture | Available |
| SQLite graph store, repository inventory sync, public fixture | Available |
| Existing Codebase Memory Route/HTTP fact import | Available |
| Static frontend → gateway → Spring service federation | In development |
| Git diff → cross-repository impact report | Planned |
| Requirement → confirmed change anchors | Planned |
| OpenAPI, configuration evaluation, and Nacos identity | Planned |
| Evidence-backed Mermaid sequence output through MCP | Available |
| Local Daemon and bilingual Web Sequence Workbench MVP | Available |
| OpenTelemetry observed/possible diff | Planned |
Try the foundation
Requirements: Node.js 22+ and pnpm 11.
git clone https://github.com/LM20230311/servicegraph.git
cd servicegraph
corepack enable
pnpm install --frozen-lockfile
pnpm build
pnpm servicegraph doctor
pnpm servicegraph init /path/to/a/multi-repository-workspace
pnpm servicegraph sync /path/to/a/multi-repository-workspace
pnpm servicegraph status /path/to/a/multi-repository-workspace
pnpm servicegraph sequence /path/to/a/multi-repository-workspace \
--entrypoint submitOrder --target "POST /orders"
pnpm servicegraph serve /path/to/a/multi-repository-workspace
sync always records a versioned workspace snapshot and Repository nodes in
.servicegraph/graph.db. When Codebase Memory is installed and every configured
repository already has an index, it also imports Route, HTTP_CALLS,
CROSS_HTTP_CALLS, and HANDLES facts through the public CLI and advances the
graph to federated. It never invokes index_repository automatically.
Missing indexes and incomplete/truncated upstream results keep the graph at
repository_inventory and are reported as diagnostics.
Try the reproducible five-repository fixture:
node fixtures/mall-workspace/materialize.mjs /tmp/servicegraph-mall
node fixtures/mall-workspace/seed-recorded-graph.mjs /tmp/servicegraph-mall
pnpm servicegraph serve /tmp/servicegraph-mall
Open http://127.0.0.1:7464. The seed command imports a deterministic recorded
graph contract for demonstration and tests; it does not claim to analyze the
fixture source or replace a real Codebase Memory sync. The Web UI defaults to
Simplified Chinese, supports English from the header switcher, and remembers the
selection in the current browser.
Run the stdio MCP server:
pnpm mcp
The server registers servicegraph_explore, servicegraph_sequence, and
servicegraph_impact. When a complete federation snapshot exists,
servicegraph_sequence and the servicegraph sequence CLI perform a bounded
local SQLite traversal, collapse repository-internal steps, and return a
normalized SequenceModel and/or deterministic Mermaid.
Query/entrypoint/target lookup is available now; persisted chain IDs,
declared-only filtering, boundary view, and Change Lens are not. Explore and
impact propagation still return CAPABILITY_NOT_IMPLEMENTED. Every unavailable
or unreachable operation returns a structured error instead of inventing a
flow.
Broader target output example
The current renderer can produce the evidence-backed HTTP portion of this flow. The database call, return messages, and actor event below remain an illustrative target until their corresponding graph facts are imported:
sequenceDiagram
actor User
participant Web as mall-web
participant Gateway as api-gateway
participant Order as order-service
participant Inventory as inventory-service
participant DB as inventory-db
User->>Web: Submit order
Web->>Gateway: POST /api/orders
Gateway->>Order: POST /orders
Order->>Inventory: POST /reservations
Inventory->>DB: INSERT reservation
DB-->>Inventory: reservationId
Inventory-->>Order: reserved
Order-->>Web: orderId
Every future arrow must carry provenance, confidence, environment, revision, and a source anchor. Static possibilities and runtime observations will never be presented as the same kind of fact.
Roadmap
- Complete the evidence-backed static vertical slice for Vue/React, Spring Cloud Gateway, controllers, OpenFeign, and JPA/MyBatis.
- Extend the local Sequence Workbench MVP with boundary grouping, persisted sequences, source navigation, and export.
- Add Git diff impact overlays across repositories, APIs, contracts, data, and tests.
- Add two-stage requirement anchoring, Nacos/Kubernetes identity, and OpenTelemetry possible/observed comparison.
- Generate development slices and later add permission-aware team workflows.
See the development plan for the overall roadmap and the impact analysis plan for the public model, interfaces, propagation rules, milestones, and acceptance criteria.
Contributing and security
Read CONTRIBUTING.md before proposing large API changes. Report vulnerabilities according to SECURITY.md, not in a public issue.
Independence and license
ServiceGraph is not an official extension of Codebase Memory or CodeGraph, and neither upstream project endorses or is responsible for it. See Integrations and NOTICE.
ServiceGraph is licensed under Apache-2.0.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.