Skip to main content
Glama

Kage가 메모리와 에이전트를 관리합니다

의도를 말하세요. Kage의 오케스트레이터가 저장소 자체 메모리에서 코딩 에이전트에게 브리핑하고, 격리된 git 워크트리에서 실행합니다. 단일 실행이든 다중 웨이브 목표든 말이죠. 그리고 에이전트의 보고를 신뢰하는 대신 체크를 직접 다시 실행합니다:

┌ VERIFIED 3/3 — checks run by Kage, not the agent · build-a-stale-memory-triage-surface-do-n-260818-ec2c
│ "the stale-memory triage surface is built and wired into the review flow"
│ ✓ tests       ran       npm test --prefix mcp → exit 0   evidence/tests.log
│ ✓ diff-size   inspected at most 800 changed lines   evidence/diff-size.log
│ ✓ citations   inspected every formally cited path exists (directly, or as a unique suffix) in the worktree   evidence/citations.log
│ · touched     4 file(s), 212 line(s)
└────────────────────────────────────────────────────────────────

이 저장소 자체 실행 기록의 실제 영수증입니다. 각 행은 Kage가 실행한 명령어이거나 검사한 사실입니다. 에이전트가 스스로에 대해 주장한 내용이 절대 아닙니다. kage merge는 주장이 확인된 후에만 코드를 병합하고, 에이전트가 학습한 내용을 비준하므로 다음 브리핑(여러분이나 팀원의)은 더 똑똑하게 시작됩니다.

그 메모리는 코드베이스 뒤에 숨은 결정들, 까다로운 배포를 위한 런북, 골치 아픈 버그의 근본 원인입니다. 에이전트가 작업하는 동안 캡처되어 실제 코드와 대조 검증되므로, 재사용되는 것은 항상 진실을 유지합니다. 저장소에 일반 Markdown 파일로 보관되며, Google Open Knowledge Format (OKF)을 준수하여 잠금이 없고, git을 통해 팀 전체와 공유됩니다. 계정도, 데이터베이스도, API 키도 필요 없습니다.

npx -y @kage-core/kage-graph-mcp install

호환 도구 Claude Code · Codex · Cursor · Windsurf · Gemini CLI · Cline · Goose · Roo Code · Kilo Code · OpenCode · Aider · Claude Desktop · Copilot · OpenClaw · Hermes · 모든 MCP 클라이언트

🌐 English · 简体中文 · 日本語 · 한국어 · Español · Português (Brasil) · Français · Deutsch · हिन्दी


설치

저장소 안에서 명령어 하나, 그다음 에이전트를 재시작하세요. 이게 전부입니다.

npx -y @kage-core/kage-graph-mcp install

.agent_memory/를 생성하고, 코드 그래프를 구축하고, 에이전트가 Kage를 사용하도록 안내하는 AGENTS.md / CLAUDE.md 정책을 작성하고, 에이전트를 자동 감지하여 연결하고, .gitignore와 패킷 병합 드라이버를 구성합니다. Node.js 18+가 필요합니다. 계정도 API 키도 필요 없습니다.

또는 에이전트에게 설정을 요청하세요. 이 내용을 Claude Code, Cursor 또는 모든 코딩 에이전트에 붙여넣으세요:

이 저장소에 Kage(코딩 에이전트용 검증 메모리, https://github.com/kage-core/Kage)를 설정해 줘: npx -y @kage-core/kage-graph-mcp install을 실행한 다음, 나를 재시작하라고 알려줘.

# Claude Code / Codex plugin
/plugin marketplace add kage-core/Kage      # then: /plugin install kage@kage

# wire a single agent (run `kage setup list` for all supported)
kage setup claude-code --project . --write

# memory store only, no agent wiring
kage init --project .

# confirm the harness is live
kage setup verify-agent --agent claude-code --project .

Related MCP server: Agent Memory Bridge

작업 위임 (오케스트레이터)

kage room --project .                      # talk to Kage; it briefs and hires agents for you
kage dispatch "<intent>" --agent claude    # one delegated run, briefed from repo memory
kage runs --project .                      # what every run is doing right now
kage review --project .                    # read a finished run's claim and diff
kage merge <run-id> --project .            # land the code and ratify what it learned

모든 실행은 자체 git 워크트리에서 이루어집니다. 위 영수증의 판정을 결정하는 검사(테스트, diff 크기, 인용)는 Kage가 직접 실행하는 명령어이지, 에이전트의 자체 보고가 아닙니다.

  • 앱. kage app --project <dir>은 로컬 데몬을 시작(또는 재사용)하고 동일한 방, 실행 보드, 메모리 보기를 UI로 엽니다. 체크아웃에서 npm start --prefix shell을 실행하면 네이티브 창으로 실행됩니다. 자체 HTML이 없는 가벼운 Electron 셸로, 데몬의 자체 페이지를 로드할 뿐입니다. npm run dmg --prefix shell은 macOS .dmg(arm64 전용, Windows/Linux 패키징은 아직 미구현)를 빌드합니다.

  • 휴대폰에서. 데몬은 머신의 LAN 주소에도 바인딩할 수 있으며, 모든 요청(읽기 포함)에 필요한 페어링 비밀로 보호됩니다. 현재는 .agent_memory/config.json에서 "lan": true를 수동으로 설정해야 합니다. 아직 --lan 플래그나 앱 토글이 없습니다.

  • 터미널 없이 프로젝트 추가. kage projects add <dir> --agent claude는 앱의 "+" 버튼과 동일한 방식으로 다른 저장소를 등록한 다음, kage app --project <dir>으로 엽니다.

kage app --project <dir>
kage projects add <dir> --agent claude

데스크톱 앱

CLI가 실행하는 것과 동일한 데몬 위의 가벼운 네이티브 셸(macOS, arm64 전용)입니다. 독 아이콘, 전역 단축키, 네이티브 알림을 제공합니다. 최신 .dmgGitHub releases에서 다운로드하세요(Kage-<version>.dmg 자산을 찾으세요).

서명되지 않은 빌드는 첫 실행 시 macOS의 "미확인 개발자" 경고가 표시됩니다. Finder에서 앱을 마우스 오른쪽 버튼으로 클릭하고 열기를 한 번 선택하세요. 설치 후에는 실행 시와 4시간마다 업데이트를 확인하고 재시작 시 설치합니다. 임시(서명되지 않은) 빌드는 자체 설치가 불가능하므로 대신 알림을 표시하고 릴리스 페이지로 연결합니다.

CLI가 더 편한가요? 앱이 필요 없는 모든 곳에서 한 줄 설치는 동일하게 작동합니다:

npx -y @kage-core/kage-graph-mcp install

Kage란 무엇인가

Kage는 메모리 계층 위에 구축된 코딩 에이전트용 오케스트레이터입니다. 에이전트가 작업하는 동안 학습한 내용(결정, 버그 수정, 규칙, 코드 구성 방식)을 저장소의 .agent_memory/에 커밋된 Open Knowledge Format (OKF) 개념 파일로 캡처합니다. 다음 세션(여러분 또는 팀원의)은 다시 읽거나 다시 묻는 대신 이미 알고 시작합니다.

다른 메모리 도구와 다른 세 가지 점이 있습니다:

  • 협업적입니다. 한 사람(또는 그들의 에이전트)이 알아낸 지식이 팀 전체의 것이 됩니다. 메모리는 git을 통해 공유되므로, 팀원의 다음 세션은 빈 상태가 아닌 방금 배운 내용으로 시작합니다.

  • 표준적이고 git 네이티브입니다. 메모리는 OKF 번들(저장소의 일반 Markdown, 코드와 동일한 PR에서 검토, 모든 OKF 도구에서 읽기 가능)로, 특정 머신이나 공급업체 클라우드에 국한되지 않습니다. 지식은 여러분의 것입니다.

  • 검증됩니다. 모든 메모리는 관련 코드를 인용하며, Kage는 쓰기 시점, 회상 시점, diff가 코드를 변경할 때마다 실제 파일과 인용을 대조합니다. 더 이상 코드와 일치하지 않는 메모리는 보류되어 에이전트가 오래된 주장에 따라 행동하지 않습니다.

Kage가 먼저였고, Google이 표준화했습니다.

Kage는 처음부터 에이전트 메모리를 저장소의 일반 파일로 유지했습니다. 클라우드도, 데이터베이스도, 잠금도 없이 말이죠. 모두가 메모리 클라우드를 구축하는 동안 말입니다. 2026년 6월, Google Cloud가 Open Knowledge Format을 출시했습니다: git의 Markdown 지식, 벤더 중립적, 계정 불필요. Kage가 이미 실행하던 바로 그 명제입니다. 그래서 Kage는 OKF를 표준으로 채택하고, OKF가 의도적으로 남겨둔 계층으로 성능을 강화합니다:

  • 검증 — OKF는 적어 둔 내용을 저장합니다. Kage는 모든 개념을 실제 코드와 대조하고 쓰기 시점에 환각된 인용을 거부합니다.

  • 신선도 — OKF에는 오래됨의 개념이 없습니다. Kage는 코드가 변경되는 즉시 드리프트를 감지하고 더 이상 사실이 아닌 메모리를 보류합니다.

  • 코드 근거 — 결정적 코드 그래프가 각 개념을 설명하는 정확한 심볼에 고정합니다. OKF가 도구에 맡긴 계층입니다.

신뢰 메타데이터는 OKF 호환 x-kage-* 필드에 실리므로, Kage 번들은 100% 준수하며 Google 자체 시각화 도구를 포함한 모든 OKF 소비자에서 열립니다. OKF는 저장소를 표준화하고, Kage는 Google이 남긴 검증 및 신선도 계층입니다.

작동 방식

설치 후에는 자동으로 작동합니다. 수동으로 실행할 것이 없습니다:

  1. 행동 전 회상. 작업 시작 시(그리고 에이전트가 파일을 여는 순간) Kage는 관련된 검증된 메모리를 표시합니다. 오래되었거나 삭제된 메모리는 제외됩니다.

  2. 작업 중 캡처. 지속적인 학습은 패킷이 됩니다. 존재하지 않는 파일을 인용하는 메모리는 즉시 거부되어 환각이 저장소에 들어오지 않습니다.

  3. 코드가 움직여도 정직하게. diff가 메모리가 인용하는 코드를 변경하면 커밋/PR 시점에 해당 메모리에 플래그가 지정되고(kage pr check) 재검증되거나 교체될 때까지 회상에서 보류되어 지식이 조용히 썩지 않습니다.

로컬 대시보드(kage viewer)에서 직접 확인하세요: 패킷, 메모리↔코드 그래프, 신뢰 게이트, 라이브 이벤트가 에이전트가 작업하는 동안 스트리밍됩니다. <private>…</private>로 감싼 내용은 절대 저장되지 않습니다.

왜 Kage인가

대부분의 메모리 도구(claude-mem, agentmemory, mem0, Zep)는 머신별 또는 소유하지 않은 클라우드에 메모리를 저장하고 코드와 대조하여 다시 확인하지 않습니다. Kage는 저장소에 보관하고 검증하므로 팀의 것으로 유지되고 코드가 변경되어도 진실을 유지합니다.

Kage

claude-mem

mem0 / Zep

자동 캡처 + 세션 시작 시 회상

SDK 경유

쓰기 시점에 거부되는 환각 인용

회상 시 보류되는 오래된 메모리 (인용 파일 삭제/변경, TTL, 신고)

변경이 메모리를 깨뜨릴 때 PR 전에 경고하는 diff 시점 오래됨 감지

코드와 동일한 PR에서 git으로 검토되는 메모리 (일반 파일, DB 없음)

SQLite + cloud

hosted API

에이전트가 자동 로드하는 팀 SKILL.md 파일로 메모리 체계화

✓ (kage skills)

머신 간 동기화

✓ 나만의 git 원격 저장소

그들의 클라우드

그들의 클라우드

계정 / API 키 필요

없음

cloud 선택 사항

기능

  • 진실 보고서. kage scan은 약 60초 안에 모든 저장소를 읽고 가장 위험도가 높은 지식 격차를 표면화합니다: 문서화되지 않은 핫 파일, 테스트되지 않은 핫 경로, 복잡성 핫스팟, 해결되지 않은 코드 부채, 버스 팩터 1 파일, 그리고 존재하는 경우 중복 구현, 죽은 익스포트, 문서의 거짓말까지 포함합니다. 모든 발견 사항은 file:line으로 인용됩니다. 설정 제로, 생성되는 것 없음, 아무것도 설치하기 전에 실행됩니다.

  • 절감 영수증. kage gains는 저장소별 가치 원장(에이전트가 다시 지출하지 않아도 된 토큰 + 달러)을 유지하며, 모든 숫자는 기록된 이벤트로 추적 가능합니다; 에이전트는 각 회수 후 이를 중계합니다.

  • 팀 스킬. kage skills는 지속적이고 검증된 절차를 에이전트가 자동 로드하는 .claude/skills/<name>/SKILL.md 파일로 전환하며, 커밋되고 공유되며 클라우드가 필요 없습니다.

  • 개인 메모리 및 동기화. kage learn --personal~/.kage/memory에 기기 간 메모를 보관하며, 명확히 분리된 낮은 신뢰 섹션으로 회수되고 자체 git 원격 저장소를 통해 동기화됩니다.

  • 자가 치유 세션 루프. 캡처되지 않은 세션은 검토할 보류 초안으로 자동 증류됩니다; kage resume은 각 세션을 "이전에…" 요약과 함께 엽니다; kage repair는 손상된 패킷과 인덱스를 한 번의 명령으로 수정합니다.

벤치마크

  • 실제 코드 탐색 작업에서 동일한 정확도로 grep보다 18% 빠름 (N=3 스위트, 동일 에이전트/모델; kage benchmark --project . --compare로 재현).

  • LongMemEval-S 검색: 98.72% R@10 / 99.79% R@20 / 0.909 MRR — BM25가 근소하게 앞서는 R@5를 제외한 모든 깊이에서 일반 BM25보다 앞섬 (96.60% vs 96.17%; 전체 표는 benchmarks/LONGMEMEVAL.md 참조). 검색 경로 자체는 의존성이 없습니다: BM25 + 희소 어휘 점수, 임베딩 없음, 네트워크 없음.

  • 변경 시 메모리 정확성: 0% 스테일 제공(코드가 삭제되거나 변경된 메모리는 보류됨) vs 모든 것을 캡처하는 저장소의 100%.

  • 신뢰 벤치마크: 100/100, 환각 거부, 스테일 제외, 실시간 근거 확인 포함 (kage benchmark --trust --project .).

방법론, 명령어 및 주의사항: docs/BENCHMARKS.md.

일상 명령어

kage recall "how do I run tests" --project .
kage verify --project .        # check citations against current code
kage pr check --project .      # stale-catch + graph freshness gate
kage gains --project .         # what Kage saved you
kage viewer --project .        # local dashboard
kage okf migrate --project .   # render memory as a Google OKF bundle

전체 CLI 및 MCP 참조: docs. 코딩 에이전트에 작업 위임(디스패치 → 검증된 주장 → 병합): docs/DELEGATION.md.

저장소

모든 것은 .agent_memory/에 저장됩니다: packets/는 영구 저장소 메모리(git 추적 OKF Markdown)입니다; graph/, code_graph/, structural/, indexes/kage refresh로 재구축 가능합니다; reports/는 가치 원장과 상태 보고서를 보관합니다. 캡처는 쓰기 전에 비밀과 개인정보를 검사합니다.

표준 형식 — 오픈 지식 형식(OKF). Kage의 메모리는 OKF 번들입니다: YAML 프론트매터가 있는 일반 Markdown 개념 파일로, 모든 OKF 소비자(Google의 시각화 도구 포함)가 읽을 수 있습니다. kage okf migrate를 실행하여 저장소를 .agent_memory/okf/ 아래 OKF 번들로 렌더링하세요. Kage는 OKF가 남긴 수명 주기(근거 확인, 검증, 신선도)를 OKF 규격의 x-kage-* 필드에 담아 추가하며, 타사 OKF 번들을 import할 수 있습니다. 왕복은 무손실입니다. OKF_STANDARD.md를 참조하세요.

개발

cd mcp
npm install
npm test
npm run build

기여 및 커뮤니티

Kage는 공개적으로 구축되고 있으며 여러분의 도움을 환영합니다. 런타임 의존성 4개(검색 코어는 0개), 계정 불필요, 클라우드 불필요 — 뛰어들기 좋은 친근한 코드베이스입니다.

참여함으로써 행동 강령에 동의하는 것입니다.

라이선스

GPL-3.0-only. LICENSE 참조. GPL 전환 이전 릴리스는 MIT입니다.

Available Tools

11 tools
kage_contextA
Read-only

Primary kage entry point. Validates memory health, recalls relevant packets, and queries both the code graph and knowledge graph — all in one call. Call this at the start of every task; it answers caller/usage questions from the code graph too, so you rarely need a separate graph tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax memory packets to return (default 5)
queryYesThe task or question — used for both memory recall and code graph search
targetsNoOptional files the agent may edit or explain; used for risk context
session_idNoOptional active agent session id for memory reconciliation
project_dirYesAbsolute path to the project root
changed_filesNoOptional changed files for pre-edit or PR risk context

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description correctly implies non-destructive behavior. It adds context about combined functionality and code graph answers, which is useful beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy, front-loaded with core purpose, then usage guidance. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, no output schema, many siblings), the description adequately covers purpose and usage. Lacks detail on return format but acceptable without output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra semantic context for individual parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is the primary entry point that validates memory health, recalls packets, and queries code/knowledge graphs. It distinguishes itself from sibling tools by aggregating multiple functions into one call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to call at the start of every task and notes it reduces the need for a separate graph tool, providing clear when-to-use and implicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_decisionsA
Read-only

Summarize the repo's 'why' memory at a glance: the decisions, gotchas, runbooks, conventions, and code explanations Kage has captured, plus which high-traffic code paths still have no decision memory. Use it to brief yourself on a repo before changing it, or to audit where institutional knowledge is thin or going stale. Read-only: returns grouped entries with titles, types, cited file paths, and call-outs for weak, stale, or undocumented hot paths. Does not modify any memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_dirYesAbsolute path to the repository root to summarize.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reinforces the annotation's readOnlyHint by stating 'Read-only' and 'Does not modify any memory.' It also details the return format (grouped entries with titles, types, etc.) and mentions call-outs for weak or undocumented hot paths, providing rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose, usage guidance, and behavioral notes. It could be slightly more concise but remains focused and front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description provides sufficient context: it explains what the tool returns, its use cases, and that it is read-only. This is complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'project_dir' is fully described in the schema as 'Absolute path to the repository root.' The description does not add any additional semantics beyond what the schema provides, so it meets baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool as summarizing the repo's 'why' memory, listing specific content types (decisions, gotchas, conventions) and distinguishing its purpose from sibling tools like kage_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: 'to brief yourself on a repo before changing it' and 'to audit where knowledge is thin.' It implies not to use it for modification but does not list alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_dependency_pathA
Read-only

Find how two files are connected in Kage's source-derived code graph. Reports direct dependency direction, reverse impact direction, or undirected graph connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget file path or unique suffix
fromYesSource file path or unique suffix
project_dirYesAbsolute path to the repository root.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description's 'reports' is consistent. However, the description does not disclose what happens if no path exists or other edge cases, which would enhance transparency beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-front-loaded sentence that communicates the core functionality with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main use case but lacks details on return format, error handling, or edge cases. Given no output schema, more completeness would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear parameter descriptions. The tool description adds no additional parameter meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: finding how two files are connected in a code graph, specifying three types of directions. This is distinct from sibling tools which focus on context, decisions, docs, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for understanding file dependencies but does not explicitly state when to use this tool over others or provide exclusions. Usage is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_feedbackA

Record how useful a recalled repo-local memory packet was, which tunes Kage's trust and future recall. 'helpful' reinforces the packet, 'wrong' flags it as disputed, and 'stale' marks it for re-verification and withholds it from recall until refreshed. Use it right after a recalled packet helped you, misled you, or no longer matched the code. Mutates the packet's quality signals on disk.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYeshelpful = it was accurate and useful; wrong = it was incorrect (flag as disputed); stale = it no longer matches the code (mark for re-verification).
packet_idYesId of the memory packet you are rating.
project_dirYesAbsolute path to the repository root.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool 'Mutates the packet's quality signals on disk,' which is consistent with the readOnlyHint:false annotation. It also explains the effects of each kind (helpful, wrong, stale), providing full transparency beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose, then usage guidance, and ends with behavioral disclosure. Every sentence provides essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 simple parameters, no output schema, and clear annotations, the description covers purpose, usage, behavior, and parameter semantics completely. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the meaning of each enum value (helpful, wrong, stale) and their consequences, which is not fully captured in the schema descriptions. However, the schema already describes the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Record how useful a recalled repo-local memory packet was' and identifies the resource as memory packets. It distinguishes from sibling tools like kage_learn (which adds knowledge) or kage_refresh (which updates) by focusing on feedback/rating.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use it right after a recalled packet helped you, misled you, or no longer matched the code,' providing clear when-to-use guidance. It does not explicitly mention when not to use or compare to alternatives, but the context and sibling tools make the distinction clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_learnA

Capture a durable, reusable learning from the current session as a verified repo-local memory packet (committed under .agent_memory/, shared with the team via git). Use it the moment you discover something a future session should know: a decision and its rationale, a bug's root cause and fix, a convention, or a setup step. Prefer it over diff-based proposals when you already know what was learned. The write is rejected if every cited path is missing from the repo (set allow_missing_paths for a file you are about to create), and secrets/PII are scanned out before writing. Returns the new packet id plus any contradiction warnings against existing memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional keywords to aid future recall.
typeNoMemory type: decision, bug_fix, runbook, convention, gotcha, workflow, code_explanation. Inferred if omitted.
pathsNoRepo files this memory is about; used to verify the citation now and to recall the memory when those files are touched later.
stackNoOptional technologies/frameworks the learning relates to.
titleNoShort headline for the packet. Derived from the learning if omitted.
evidenceNoHow the learning was confirmed (e.g. test output, a reproduced behavior).
learningYesThe insight to store, in full sentences: what was learned and why it matters to a future session.
graph_nodesNoOptional code-graph symbol or file ids this memory is grounded to.
project_dirYesAbsolute path to the repository root.
verified_byNoWhat verified it (e.g. a command run, a passing test, a reviewer).
discovery_tokensNoApproximate token cost of producing this knowledge (exploration + reasoning). Stored on the packet so recall receipts can report replay value; a conservative per-type default is estimated when omitted.
allow_low_qualityNoAdmit this capture even though its computed quality score is below the admission floor (60). The write is otherwise rejected — this is the explicit override.
allow_missing_pathsNoAllow the write even if cited paths do not exist yet (e.g. a file you are about to create).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral details beyond the readOnlyHint=false annotation: the write commits under .agent_memory/, rejects writes when cited paths are missing, scans for secrets/PII before writing, and returns the new packet id plus contradiction warnings. This gives an agent a clear picture of side effects, validation, and output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: it front-loads the core action, then gives usage timing, a preference rule, behavioral caveats, and the return value. Every sentence earns its place with no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter tool with no output schema, the description provides a complete mental model: what the tool does, when to use it, its side effects, its validation rules, and what it returns. The rich schema descriptions fill in the remaining parameter-level details, so an agent has enough to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful operational meaning for paths and allow_missing_paths by explaining the rejection condition and when to set the flag. It does not add semantics for every parameter, but the schema already covers the remaining ones.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action and resource: capturing a durable, reusable learning as a repo-local memory packet committed under .agent_memory/. It is precise about the object and purpose, though it does not explicitly differentiate among the sibling tools like kage_supersede or kage_skills; it only contrasts with diff-based proposals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit use-case guidance: use it the moment you discover something a future session should know, with concrete examples such as decisions, bug root causes, conventions, and setup steps. It also says to prefer it over diff-based proposals when you already know what was learned, but it does not describe when-not-to-use it relative to named sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_pr_checkA
Read-only

Check whether repo memory, code graph, memory graph, and stale-memory state are ready for merge. Leads with a human summary of team memories invalidated by the current change — relay it to the developer. On a repo with many stale packets, validation findings, or reconciliation items, those lists are each capped to the 10 most actionable entries by default (stale packets ranked by urgency), with true totals and truncation notes; pass limit or verbose for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax entries per capped list to return (default 10 each).
verboseNoReturn every entry in every list, uncapped.
project_dirYesAbsolute path to the repository root.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the readOnlyHint annotation by disclosing important behaviors: results are capped to 10 actionable entries by default, stale packets are ranked by urgency, true totals and truncation notes are included, and the output leads with a human summary that should be relayed. It also explains how limit and verbose alter behavior. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized, front-loading the core purpose in the first sentence and then adding behavioral details in subsequent sentences. Every sentence contributes essential information about what the tool returns and how to control output size. Nothing feels redundant or wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description does a strong job of explaining the return shape: a human summary first, then capped lists with totals and truncation notes. It does not explicitly describe the overall readiness verdict format, but the purpose statement conveys that a merge-ready assessment is returned. This is sufficient for an agent to invoke the tool and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage, so the baseline is 3. The description adds meaningful value by explaining the default cap of 10, the urgency ranking for stale packets, that verbose returns everything uncapped, and that limit adjusts the cap. This goes beyond the schema's simple descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: it checks whether repo memory, code graph, memory graph, and stale-memory state are ready for merge. This distinguishes it from siblings like kage_context, kage_risk, or kage_refresh, which have different purposes. The title reinforces the same intent without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies use during PR/merge preparation, as it evaluates merge readiness for the current change. It explains what happens on repos with many stale packets and how to get more results, but it does not explicitly name excluded alternatives or state when a sibling tool should be chosen instead. This is clear context with no exclusions, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_refreshA
Idempotent

Rebuild repo indexes, code graph, memory graph, metrics, and stale-memory metadata. Agents should run this after meaningful file/content changes before PR checks; push-only or same-tree commits do not need another refresh. On non-default git branches metadata-only packet rewrites are skipped (quiet refresh) to avoid merge conflicts; pass force to persist them anyway. On a repo with many stale packets or validation warnings, stale_packets and validation.warnings are capped to the 10 most actionable entries by default (ranked by urgency), with the true total and a truncation note; pass limit or verbose for more.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoPersist packet metadata rewrites even on a non-default branch
limitNoMax stale_packets / validation.warnings entries to return (default 10 each).
verboseNoReturn every stale packet and validation warning, uncapped.
project_dirYesAbsolute path to the repository root.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the idempotentHint and readOnlyHint annotations, the description discloses substantial behavior: the quiet-refresh mechanism for non-default branches, the capping of stale_packets/validation.warnings to 10 entries with truncation notes, and the effect of limit/verbose. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-organized: it opens with the core action, then covers usage timing, branch-specific behavior, and output truncation in a logical flow. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description covers the main operational concerns: when to run, how branch affects behavior, output capping, and override options. It implies the return includes stale_packets and validation.warnings, which is sufficient for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds nuance to force (persists rewrites on non-default branches), limit (caps entries), and verbose (uncaps), which go beyond the schema's basic field descriptions. It does not elaborate on project_dir, but that is self-evident.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb-resource combination: 'Rebuild repo indexes, code graph, memory graph, metrics, and stale-memory metadata.' It clearly states what the tool does and distinguishes it from siblings like kage_pr_check by positioning it as a pre-PR maintenance step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit timing rules are given: 'run this after meaningful file/content changes before PR checks; push-only or same-tree commits do not need another refresh.' It also explains when to override the quiet refresh (pass force) on non-default branches, leaving no ambiguity about invocation conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_riskA
Read-only

Assess modification risk for files using Kage's code graph plus local git history: dependents, impact surface, churn, ownership, co-change partners, and test gaps. Use before editing hotspot or shared files.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsNoFile paths to assess
project_dirYesAbsolute path to the repository root.
changed_filesNoOptional PR/branch changed files. If targets is omitted, these are assessed.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, signaling a safe read operation. The description adds value by detailing the method ('Kage's code graph plus local git history') and the specific risk factors assessed, without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences. The first sentence front-loads the core purpose, and the second provides usage advice. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the analysis dimensions (dependents, impact surface, etc.), giving a good idea of the output content. However, without an output schema, it does not specify the exact return format (e.g., score, report), leaving a minor gap for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already clearly documented. The tool description does not add additional meaning beyond what the schema provides for each parameter, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Assess modification risk') and resource ('files'), and lists concrete analysis dimensions (dependents, impact surface, churn, etc.). It distinguishes itself from sibling tools like kage_context or kage_decisions by focusing on risk, not context or decisions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use before editing hotspot or shared files.' This provides clear context, but it does not mention alternatives or when not to use it, which would be expected for a top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_skillsA
Idempotent

Codify durable, verified repo memory (runbooks, workflows, actionable decisions) into git-native SKILL.md files under .claude/skills/ that every teammate's agent auto-loads. Only grounded, non-stale packets become skills. Pass dry_run to preview without writing. dir overrides the output directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoOverride the output directory (default .claude/skills/).
dry_runNoPreview which skills would be written without creating any files.
project_dirYesAbsolute path to the repository root.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals it writes files (non-read-only) and filters packets, matching idempotentHint. But it does not describe overwrite behavior or what happens on conflict, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at four sentences, front-loading the core purpose in the first sentence. Every sentence adds essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the main action and parameters, it lacks details on return value or error handling. Given no output schema and the tool's write nature, additional clarity on outcomes would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no new semantic information beyond what is in the schema, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: creating SKILL.md files from repo memory. It specifies the target location (.claude/skills/) and the selection criteria (only grounded, non-stale packets). This distinguishes it from siblings like kage_context or kage_decisions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage guidance by mentioning dry_run for previewing and dir for output override. However, it lacks explicit 'when not to use' or comparison with sibling tools, which would enhance differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

kage_supersedeA
Idempotent

Replace one repo-local memory packet with a newer one that corrects or obsoletes it. Marks the old packet superseded, links it to the replacement, and writes bidirectional lineage edges so the history stays traceable. Use this instead of deleting when new knowledge updates an old fact, or to resolve a contradiction surfaced by kage_conflicts. Mutates both packets on disk: the superseded packet is withheld from recall but kept for lineage. Returns ids, paths, and titles for confirmation, not the full packet bodies.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional human note recorded on the lineage edge explaining why it was superseded.
packet_idYesId of the existing packet to retire (the one being replaced).
project_dirYesAbsolute path to the repository root.
replacement_packet_idYesId of the newer packet that wins and stays active.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses significant side effects: it marks the old packet superseded, writes bidirectional lineage edges, keeps the old packet but withholds it from recall, and mutates both packets on disk. It also clarifies that it returns only ids, paths, and titles rather than full packet bodies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, with each sentence forwarding a distinct fact: purpose, behavior, when to use, and output expectations. No filler or redundant restating of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with no output schema, the description covers effect, lineage behavior, return value shape, and usage conditions. An agent has enough information to invoke it correctly and understand the consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all four parameters with meaningful descriptions, so the description benefits from full coverage. The description reinforces the roles of old and replacement packet, but does not add substantial detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and object—'Replace one repo-local memory packet with a newer one'—and clarifies what that means by describing the suspension and lineage updates. It distinguishes itself from deletion and from other kage tools by specifying its unique job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use this instead of deleting when new knowledge updates an old fact, or to resolve a contradiction surfaced by kage_conflicts.' This gives concrete selection criteria and points to an alternative behavior to avoid.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct concern: context gathering, decision summaries, dependency paths, documentation search, memory feedback, learning, PR checks, index refresh, risk assessment, skills creation, and memory superseding. There is no overlap in purpose; an agent can clearly select the right tool for each task.

Naming Consistency3/5

All tools share the 'kage_' prefix, but the second part mixes nouns (context, decisions, feedback, risk, skills) and verbs (learn, refresh, supersede) as well as compound names (dependency_path, docs_search, pr_check). This mixed convention is still readable but lacks a consistent verb_noun pattern.

Tool Count5/5

With 11 tools, the set is well-scoped. Each tool earns its place by covering a distinct aspect of the domain (memory management, code graph analysis, documentation, project checks). The count is within the ideal 3-15 range and feels neither bloated nor sparse.

Completeness4/5

The tool surface covers the core lifecycle: learn (create), context/decisions/docs_search (retrieve), feedback/supersede (update), and supersede (effective delete via obsoletion). Minor gaps include the lack of an explicit tool to list all memory packets or to delete them outright, but these are workable via existing tools.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Federated, privacy-first shared memory for AI coding assistants that lets you capture, review, and share team knowledge via git without a central server.
    6
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kage-core/Kage'

If you have feedback or need assistance with the MCP directory API, please join our Discord server