Contextweaver
개요
제작자가 쓴 설명(영어 원문)
Semantic code retrieval engine with hybrid search, context expansion, and 40+ language support.
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 검색 및 AI 기억
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 2/2 통과 · 내 컴퓨터에서 실행돼요
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
컴퓨터용 Claude 앱 설정 파일 열기
SettingsDeveloperEdit Config
이 설정을 붙여 넣고 저장
{ "mcpServers": { "contextweaver": { "command": "npx", "args": [ "-y", "@chiway/contextweaver" ] } } }Claude를 끄고 다시 열기
해 보기
Contextweaver을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Contextweaver을 쓰고 있다고 하거나 답에 Contextweaver 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Contextweaver에 연결할 수 없어요
Contextweaver는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
대신 이렇게 할 수 있어요
A · Contextweaver에 연결되는 앱 쓰기
- 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
- 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
- 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
- 먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
B · 검색 및 AI 기억에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
- AIHOT✓ ChatGPT
- Sui Knowledge Base (kapa.ai)✓ ChatGPT
- Exa✓ ChatGPT
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
터미널 열기
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
이 명령을 붙여 넣고 Enter
claude mcp add contextweaver -- npx -y @chiway/contextweaverClaude Code에서 /mcp 입력
Contextweaver이 목록에 있고 연결됨으로 보이면 돼요
해 보기
Contextweaver을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Contextweaver을 쓰고 있다고 하거나 답에 Contextweaver 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
Cursor에서 AI 채팅을 Agent 모드로 열기
해 보기
Contextweaver을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Contextweaver을 쓰고 있다고 하거나 답에 Contextweaver 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
VS Code에서 AI 채팅을 Agent 모드로 열기
해 보기
Contextweaver을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Contextweaver을 쓰고 있다고 하거나 답에 Contextweaver 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
개발자용: 터미널 명령과 JSON 설정
컴퓨터에 설치
Claude Code
claude mcp add contextweaver -- npx -y @chiway/contextweaverClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"contextweaver": {
"command": "npx",
"args": [
"-y",
"@chiway/contextweaver"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"contextweaver": {
"command": "npx",
"args": [
"-y",
"@chiway/contextweaver"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"contextweaver": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@chiway/contextweaver"
]
}
}
}이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
한눈에 보기
어떤 앱에서 쓸 수 있나요
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 11일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 wchiway 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- ✓ 통과
계속 관리되고 있음
코드 마지막 변경: 5개월 전
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
토론
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
사용자 리뷰
아직 리뷰가 없어요
검색 및 AI 기억 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 5921개 중 81%보다 스타가 많아요
- 이 카테고리의 다른 서버 5921개 중 16%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 5921개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Contextweaver, 안전한가요?
해당하는 기본 점검 2개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 5개월 전 변경됐고, 최신 버전(1.5.4)은 5개월 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: Ruflo, Context7, Metabase
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
ContextWeaver
🧵 A codebase context engine woven for AI agents
Semantic Code Retrieval for AI Agents — Hybrid Search • Graph Expansion • Token-Aware Packing
English · 简体中文
ContextWeaver is a semantic retrieval engine purpose-built for AI coding assistants. It combines hybrid search (vector + lexical), intelligent context expansion, and token-aware packing to deliver precise, relevant, and context-complete code snippets to LLMs.
✨ Core Features
🔍 Hybrid Retrieval Engine
- Vector Retrieval: deep semantic understanding via similarity
- Lexical Retrieval (FTS): exact matching for function names, class names, and other technical terms
- RRF Fusion (Reciprocal Rank Fusion): intelligently merges multiple recall channels
🧠 AST Semantic Chunking
- Tree-sitter parsing: supports TypeScript, JavaScript, Python, Go, Java, Rust, C, C++, C#, and more
- Dual-Text strategy:
displayCodefor presentation,vectorTextfor embedding - Gap-Aware merging: handles code gaps intelligently while preserving semantic integrity
- Breadcrumb injection: vector text carries hierarchical paths to boost recall
- UTF-16 character-domain normalization: offsets are unified via
SourceAdapter.toCharOffsetbefore writing metadata, preventing multi-byte character slicing errors (v1.4.0+)
📊 Three-Stage Context Expansion
- E1 Neighbor expansion: adjacent chunks within the same file, preserving block completeness
- E2 Breadcrumb completion: sibling methods under the same class/function for structural understanding
- E3 Import resolution: cross-file dependency tracking (configurable toggle)
🎯 Smart TopK Cutoff
- Anchor & Floor: dynamic threshold plus an absolute floor as dual safeguards
- Delta Guard: prevents misjudgment in Top1-outlier scenarios
- Safe Harbor: the first N results only check the floor, guaranteeing baseline recall
🔌 Native MCP Support
- MCP Server mode: launch a Model Context Protocol server with one command
- Multi-tool granularity (v1.5.0+): beyond core semantic retrieval, adds dedicated tools for structure browsing, symbol references, symbol definitions, and statistics
- Intent/term separation: an LLM-friendly API design
- Auto-indexing: the first query triggers indexing automatically; incremental updates are transparent
⚡ Query Cache & File Watching (v1.5.0+)
- Query cache (QueryCache): in-process per-project LRU cache (50 entries by default); a hit skips the entire vector recall / rerank / expansion pipeline
- Automatic cache invalidation: the cache key is composed of
normalized query + projectId + index version + search-config fingerprint, so it invalidates automatically after an index update or config change — stale results are never returned - Watch mode:
contextweaver watchwatches the filesystem and triggers incremental indexing automatically, with debouncing (500ms by default) and scan de-duplication (no concurrent scans)
📈 Statistics & Observability (v1.5.0+)
- Three metric groups: indexing process, search quality/behavior, health/consistency
- Dual exits:
contextweaver statsCLI (with--json) plus the MCPstatstool - Consistency diagnostics: automatically detects abnormal migration state,
pending_marksbacklog, missing vector rows, and more — with suggested fixes
🛡️ Crash-Safe Data Architecture (v1.4.0+)
- Single source of truth for content: LanceDB stores only vectors and locating metadata; content is read back from
files.content, reducing index size by 30–50% - Cross-store transactional compensation: three-stage write LanceDB → FTS+outbox → SQLite mark, with automatic rollback or replay on any failure
- Migration state machine:
pending/done/abortedpersisted, auto-rebuilt on crash recovery - Cross-process mutual exclusion: an advisory lock prevents the MCP server and CLI from triggering LanceDB migration concurrently
- chunk_id de-duplication: pre-delete before write to avoid duplicate rows on retry
📦 Quick Start
Requirements
- Node.js >= 20
- pnpm (recommended) or npm
Installation
# Global install
npm install -g @chiway/contextweaver
Or with pnpm
pnpm add -g @chiway/contextweaver
Initialize Configuration
# Create the config file (~/.contextweaver/.env)
contextweaver init
Or the short alias
cw init
Edit ~/.contextweaver/.env and fill in your API keys:
# Embedding API config (required)
EMBEDDINGS_API_KEY=your-api-key-here EMBEDDINGS_BASE_URL=https://api.siliconflow.cn/v1/embeddings EMBEDDINGS_MODEL=BAAI/bge-m3 EMBEDDINGS_MAX_CONCURRENCY=10 EMBEDDINGS_DIMENSIONS=1024
Reranker config (required)
RERANK_API_KEY=your-api-key-here RERANK_BASE_URL=https://api.siliconflow.cn/v1/rerank RERANK_MODEL=BAAI/bge-reranker-v2-m3 RERANK_TOP_N=20
Search parameters (optional, override built-in defaults)
CW_SEARCH_WVEC=0.6 CW_SEARCH_WLEX=0.4 CW_SEARCH_RERANK_TOP_N=10 CW_SEARCH_MAX_TOTAL_CHARS=48000 CW_SEARCH_VECTOR_TOP_K=80 CW_SEARCH_SMART_MAX_K=8 CW_SEARCH_IMPORT_FILES_PER_SEED=3
Ignore patterns (optional, comma-separated)
IGNORE_PATTERNS=.venv,node_modules
Index a Codebase
# Run from the codebase root
contextweaver index
Specify a path
contextweaver index /path/to/your/project
Force a full re-index
contextweaver index --force
Watch Mode (v1.5.0+)
# Watch for file changes and auto-index incrementally (Ctrl+C to stop)
contextweaver watch
Specify a path and debounce window (ms)
contextweaver watch /path/to/project --debounce 800
watch runs one full incremental scan on startup, then listens to filesystem events; changes trigger a de-duplicated scan within the debounce window, and paths excluded by ignore rules never trigger a scan.
Local Search
# Semantic search
cw search --information-request "How is the user authentication flow implemented?"
With exact terms
cw search --information-request "Database connection logic" --technical-terms "DatabasePool,Connection"
Structure Browsing & Symbol Lookup (v1.5.0+)
The following commands are CLI mirrors of MCP tools, with zero Embedding API cost:
# List indexed files (supports glob / language / count filters)
contextweaver list-files --glob "src/**/*.ts" --language typescript --max-results 100
Look up a symbol definition
contextweaver definition SearchService --hint-path src/search
Look up symbol references
contextweaver references handleStats --exclude-definition
Statistics (v1.5.0+)
# Human-readable stats report
contextweaver stats
JSON output (for scripting)
contextweaver stats --json
Specify a project path
contextweaver stats --path /path/to/project
Start the MCP Server
# Launch the MCP server (for use by Claude and other AI assistants)
contextweaver mcp
Index Management (v1.4.0+)
# Show LanceDB migration state
contextweaver migrate
Clear the aborted state: wipe LanceDB and trigger a full rebuild
Triggered when: the Indexer refuses to write after sampling validation fails;
run this, then index again.
contextweaver migrate --reset
Specify a project path
contextweaver migrate --path /path/to/project
🔧 MCP Integration
Claude Desktop Configuration
Add the following to your Claude Desktop config file:
{
"mcpServers": { "contextweaver": { "command": "contextweaver", "args": ["mcp"] } } }
MCP Tools Overview (v1.5.0+)
ContextWeaver exposes 5 MCP tools, following a layered design of "semantic retrieval first, structure browsing second":
| Tool | Purpose | Embedding cost |
|---|---|---|
codebase-retrieval | Primary tool: hybrid semantic + exact-match retrieval | Yes |
list-files | List indexed file structure (path/language/size) | No |
find-references | Find heuristic text references to a symbol | No |
get-symbol-definition | Find likely definition blocks for a symbol | No |
stats | Index/search/health statistics | No |
codebase-retrieval Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
repo_path | string | ✅ | Absolute path to the repository root |
information_request | string | ✅ | The semantic intent in natural language |
technical_terms | string[] | ❌ | Exact technical terms (class/function names, etc.) |
mode | string | ❌ | Retrieval profile: quick, balanced, or deep |
include_globs | string[] | ❌ | File glob allowlist applied after retrieval |
exclude_globs | string[] | ❌ | File glob denylist applied after retrieval |
language | string[] | ❌ | Language allowlist applied after retrieval |
max_total_chars | number | ❌ | Per-call output budget in characters |
max_files | number | ❌ | Maximum number of files returned after packing |
max_segments_per_file | number | ❌ | Maximum non-contiguous segments per file |
return_debug | boolean | ❌ | Include debug metadata in structured output |
low_confidence_behavior | string | ❌ | Low-confidence handling: return_top1, return_empty, or return_with_warning |
output_format | string | ❌ | Response format: markdown, json, or both |
list-files Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
repo_path | string | ✅ | Absolute path to the repository root |
glob | string | ❌ | Glob pattern to filter paths |
language | string | ❌ | Language filter (matched against files.language) |
max_results | number | ❌ | Max files to return (default 200) |
find-references Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
repo_path | string | ✅ | Absolute path to the repository root |
symbol | string | ✅ | Exact symbol name |
exclude_definition | boolean | ❌ | Exclude chunks whose breadcrumb tail matches the symbol name |
max_results | number | ❌ | Max references to return (default 50) |
get-symbol-definition Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
repo_path | string | ✅ | Absolute path to the repository root |
symbol | string | ✅ | Exact symbol name to resolve |
| hint_path | string | ❌ | Preferred