code-context-graph MCP server
2026년 8월 21일 커밋Tree-sitter 기반의 지식 그래프를 사용하여 AI 코딩 에이전트가 비즈니스 의도에 따라 코드베이스를 검색하고 호출 그래프를 조사할 수 있도록 지원합니다.
다른 이름 tae2089/code-context-graph
- 스타
- 18
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 8월 21일
- 라이선스
- MIT
code-context-graph MCP란?
code-context-graph은(는) MCP server입니다. Tree-sitter 기반의 지식 그래프를 사용하여 AI 코딩 에이전트가 비즈니스 의도에 따라 코드베이스를 검색하고 호출 그래프를 조사할 수 있도록 지원합니다.
프로젝트 README에서 생성된 요약
code-context-graph MCP server 정보
code-context-graph는 AI 코딩 에이전트에게 심층적인 코드베이스 인텔리전스를 제공합니다. Tree-sitter를 통해 소스 코드를 파싱하여 상세한 지식 그래프를 구축하며, 이를 통해 LLM이 전체 저장소를 읽지 않고도 비즈니스 의도와 구조적 관계를 이해할 수 있도록 돕습니다. 이 도구는 Claude 또는 Codex와 같은 클라이언트를 사용하는 개발자와 코딩 에이전트를 위해 설계되었으며, 높은 정밀도를 유지하면서 컨텍스트 창의 크기를 제한할 수 있는 방법을 제공합니다.
사용자는 stdio를 통해 서버를 로컬에서 실행하거나 streamable HTTP 연결을 사용하여 원격으로 호스팅할 수 있습니다. Go, Python, TypeScript, Rust를 포함한 12가지 프로그래밍 언어를 지원합니다. 시스템은 데이터 저장에 SQLite 또는 PostgreSQL을 사용하며, 영향 분석, 흐름 추적, 문서 검색 등의 작업을 위한 18개의 특정 MCP 도구를 제공합니다. 또한 개발자는 Obsidian 스타일의 그래프 뷰어와 트리 탐색 기능이 있는 브라우저 기반 Wiki UI를 통해 데이터와 상호작용할 수 있습니다.
활용 사례
- 1실행 흐름 추적AI 에이전트가 코드베이스 전체에서 특정 함수 호출의 경로를 따라가며 로직을 이해할 수 있습니다.
- 2비즈니스 의도 기반 검색개발자는 커스텀 어노테이션을 사용하여 특정 도메인 규칙이나 비즈니스 로직과 관련된 코드를 찾을 수 있습니다.
- 3코드 영향 분석에이전트가 시스템의 한 부분에서 발생한 변경 사항이 다른 컴포넌트에 어떤 영향을 미칠지 판단할 수 있습니다.
- 4코드베이스 업데이트 자동화GitHub 또는 Gitea 이벤트가 트리거되면 시스템이 새로운 코드 버전을 자동으로 클론하고 빌드할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
구성
CGO_ENABLED
| 이름 | 설명 | 유형 |
|---|---|---|
| CGO_ENABLED | — |
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능tae2089/code-context-graph is public and reachablegithub.com/tae2089/code-context-graph ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-08-21github.com/tae2089/code-context-graph ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기code-context-graph
Local code analysis tool that parses codebases via Tree-sitter into a knowledge graph. Supports 12 languages, 18 MCP tools, and custom annotation search.
CCG is built primarily for GPT, Claude, Codex, and other LLM-based coding agents. It acts as local or self-hosted context infrastructure: agents can search code by intent, inspect call graphs, trace impact, retrieve docs, and keep responses bounded instead of reading entire repositories into context.
This is a developer-operated tool, not a general SaaS admin product. The expected users are coding agents and developers who can run CLI commands, configure MCP, read logs, and use the generated graph/docs to guide code changes.
Inspired by code-review-graph — a Python-based code analysis tool. This project reimplements and extends the concept in Go with multi-DB support, custom annotation system, and MCP integration for AI-powered code understanding.
Features
- 12 languages: Go, Python, TypeScript, Java, Ruby, JavaScript, C, C++, Rust, Kotlin, PHP, Lua/Luau
- 18 MCP tools: parse, search, graph queries, impact analysis, flow tracing, change detection, documentation discovery, and more
- Evidence-driven code exploration: DB-backed retrieval returns small file-level candidates with matched fields, evidence nodes, and optional docs before agents drill into exact graph nodes
- Browser Wiki UI:
ccg-servercan serve generated docs, tree search, DB-backed retrieval, Context Tray copying, and an Obsidian-style graph viewer - Custom annotations:
@intent,@domainRule,@sideEffect,@mutates,@index— search code by business context (details) - Webhook sync: GitHub / Gitea push events → auto clone + build with per-repo branch filtering and
.ccg.yamlbuild-scope (include_paths/exclude) auto-loading (details) - Multi-DB: SQLite (local), PostgreSQL
- Full-text search: FTS5 (SQLite), tsvector+GIN (PostgreSQL)
Installation
npm / bun (recommended)
npm install -g code-context-graph
# or
bun install -g code-context-graph
The npm package installs both ccg and ccg-server.
go install
go install github.com/tae2089/code-context-graph/cmd/ccg@latest
go install github.com/tae2089/code-context-graph/cmd/ccg-server@latest
Build from source
CGO_ENABLED=1 go build -tags "fts5" -o ccg ./cmd/ccg/
CGO_ENABLED=1 go build -tags "fts5" -o ccg-server ./cmd/ccg-server/
# Or use Makefile (injects version from git tag automatically)
make build
# Local stripped release-style build
make release
Quick Start
# Parse your project. For the default local SQLite database (ccg.db), runtime
# commands create and migrate the database automatically on first use only when
# the schema is missing.
ccg build .
# Build complete: 70 files, 749 nodes, 7387 edges
# Search (includes annotations)
ccg search "authentication"
# Search by business context
ccg search "payment" # finds functions with @intent/@domainRule about payments
# Build generated docs and the browser Wiki compatibility index
ccg docs --out docs
# Serve the browser Wiki UI from built assets; builds the graph for DB-backed APIs
make wiki-run
# Graph statistics
ccg status
# Version info
ccg version
# Namespace isolation (MSA)
ccg build ./backend --namespace backend
ccg search --namespace backend "auth"
ccg docs writes generated Markdown plus .ccg/wiki-index.json as a browser
Wiki compatibility snapshot. The Wiki prefers the graph database for tree
navigation and search, then uses wiki-index.json only when DB-backed
navigation is unavailable. The Wiki's own search box uses DB-backed graph and
annotation evidence; it does not depend on a separately generated retrieval index.
For LLM agents, use search as the first stop for both identifier lookups
("WebhookHandler") and broad natural-language questions such as "how does
webhook sync work?". One query searches both the identifier index and the
reasons authors recorded (@intent, @domainRule), and answers with a small
set of files, each carrying the node_id of every declaration that answered.
Walk from those IDs with get_node, query_graph, trace_flow, and the
impact tools. The same answers are identical on SQLite and PostgreSQL — a
backend parity test in the repository asserts it.
If you use PostgreSQL, a custom SQLite DSN, an existing schema, or a controlled
upgrade workflow, run ccg migrate explicitly before runtime commands. This
also applies when upgrading CCG against an existing default ccg.db created by
an older version. See the CLI Reference for the full
migration contract.
Browser Wiki
ccg-server can serve a React-based Wiki UI at /wiki when --wiki-dir points
at a built web/wiki/dist directory. Docker images include that built UI at
/usr/share/ccg/wiki; standalone binaries keep the assets separate so binary
size stays small.
The Wiki is meant for developers and agents inspecting a generated codebase:
- Tree navigation over folders, packages, files, and annotated symbols
- Keyword search with matched evidence and small file-level result sets
- Rich symbol detail cards from CCG annotations even when a symbol has no generated Markdown file
- Context Tray for collecting files and doc-less symbols into one Markdown bundle that can be copied into another LLM tool
- Graph tab backed by
/wiki/api/graph, showing namespace nodes and edges with filters for structure, calls, imports, types, and symbols
Local development shortcut:
make wiki-run
Use make wiki-run-indexed when you also want generated Markdown and the
wiki-index.json compatibility snapshot before starting the server.
For self-hosted deployments, run ccg-server --wiki-dir <dist-dir> and protect
/wiki/api/* with the same bearer token policy used for /mcp. See
Docker and Runtime Layout
for deployment details.
Demo
Actual output from CCG parsing its own codebase.
1. Parse the Codebase
$ ccg build .
Build complete: 145 files, 1654 nodes, 10489 edges
2. Graph Statistics
$ ccg status
Nodes: 1654
Edges: 3767
Files: 192
Node kinds:
class: 253
file: 145
function: 1111
package: 47
type: 98
Edge kinds:
calls: 1822
contains: 1597
imports_from: 278
implements: 66
inherits: 4
Fallback call analysis:
calls: 1823
fallback_calls: 0
fallback_ratio: 0.00%
3. Code Search
$ ccg search "impact analysis"
internal/app/analyze/impact/impact.go file internal/app/analyze/impact/impact.go:1
mcp.impactRadiusResponse class internal/adapters/inbound/mcp/handler_analysis.go:36
internal/adapters/inbound/mcp/handler_analysis.go file internal/adapters/inbound/mcp/handler_analysis.go:1
mcp.ImpactAnalyzer type internal/adapters/inbound/mcp/deps.go:40
mcp.impactRadiusMetadata class internal/adapters/inbound/mcp/handler_analysis.go:27
mcp.handlers.getImpactRadius function internal/adapters/inbound/mcp/handler_analysis.go:109
$ ccg search "repository sync"
reposync.Service.Sync function internal/app/reposync/service.go:27
remote.buildRepoSyncHTTP function internal/runtime/remote/http.go:88
reposync.syncPayload class internal/app/reposync/queue.go:94
reposync.SyncHandlerFunc type internal/app/reposync/queue.go:21
reposync.SyncQueue class internal/app/reposync/queue.go:118
webhook.SyncFunc type internal/adapters/inbound/webhook/handler.go:22
4. Agent Integration via MCP
After configuring .mcp.json, you can ask an MCP-capable coding agent directly:
"Explain the webhook sync flow in this project"
The agent calls CCG MCP tools and answers directly from the graph:
trace_flow(qualified_name: "webhook.WebhookHandler.ServeHTTP")
→ WebhookHandler.ServeHTTP
→ SyncQueue.Add
→ safeHandle (retry loop: max 3 attempts, exponential backoff 1s→30s)
→ clone (git clone, 15min timeout)
→ build (ccg build, same context)
"Where is the authentication-related code?"
search(query: "authentication")
→ internal/adapters/inbound/webhook/handler.go (HMAC signature validation)
→ cmd/ccg-server/main.go (CCG_WEBHOOK_SECRET / --webhook-secret)
MCP Server
Add .mcp.json to your project:
{
"mcpServers": {
"ccg": {
"command": "ccg",
"args": ["serve", "--db-driver", "sqlite", "--db-dsn", "ccg.db"]
}
}
}
For remote HTTP mode:
Run the self-hosted server with ccg-server and connect to /mcp. The same
server can also expose /wiki when --wiki-dir is configured:
{
"mcpServers": {
"ccg": {
"type": "streamable-http",
"url": "http://your-server:8080/mcp"
}
}
}
MCP-capable clients such as Codex or Claude Code can connect and get access to 18 MCP tools. See MCP Tools Reference for the full list.
Architecture
Source Code → Tree-sitter Parser → Nodes + Edges + Annotations
↓
SQLite / PostgreSQL (GORM)
↓
FTS Search
↓
ccg serve ccg-server
stdio MCP Streamable HTTP + Wiki UI
↓ ↓ ↓ ↑
Coding Agents Remote Clients Browser GitHub / Gitea Webhook
Wiki push → clone → build → DB
See Architecture Details for component breakdown and DB schema.
Documentation
| Guide | Description |
|---|---|
| Korean Guide | 한국어 문서 인덱스 (Korean Documentation Index) |
| CLI Reference | All commands, flags, and config file (.ccg.yaml) |
| Lint | Detailed ccg lint category reference, interpretation guide, and CI usage |
| MCP Tools | 18 MCP tools, agent skills, AI-Driven Annotation |
| Annotations | Annotation system — tags, examples, search |
| Webhook | Webhook sync, branch filtering, HMAC, graceful shutdown |
| Docker | Docker build, MCP server, Wiki UI, PostgreSQL deployment |
| Operations | Deployment profiles, database choice, readiness, webhook operations |
| Runtime Layout | ccg, ccg-server, Wiki serving, and shared ccg-core ownership boundaries |
| Development | Dev guide, integration test, project structure |
| Namespace Migration | Default namespace change and migration guide |
| Architecture | Data flow, components, DB schema |
| CLAUDE.md Guide | Template for projects using CCG |
License
MIT
code-context-graph MCP 질문
비즈니스 컨텍스트를 사용하여 코드를 검색할 수 있나요?
@intent 및 @domainRule과 같은 커스텀 어노테이션을 사용하여 식별자뿐만 아니라 비즈니스 로직을 기반으로 코드를 검색할 수 있습니다.
이 도구를 원격 서버에서 사용할 수 있나요?
네, ccg-server를 실행하여 streamable HTTP MCP 엔드포인트와 React 기반의 Wiki UI를 노출할 수 있습니다.