kb
Provides MCP tools for GitHub Copilot CLI to store and retrieve project context, decisions, knowledge, and session logs across multiple sessions.
Stores notes (ADR, knowledge, gaps, session logs, etc.) directly into an Obsidian vault, allowing AI agents to persist and retrieve information using Obsidian's file system.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kbrecord a gap: needed clearer API spec before coding"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kb
複数プロジェクト × 複数AIの共通コンテキスト基盤。ローカルMCPサーバーとして動作する。
kb は単なるノート置き場ではなく、AI がセッションをまたいで成長するための共有学習基盤を目指している。
Claude、Copilot、Codex のような複数の AI が、gap、knowledge、adr を通じて「ユーザーが AI に求めること」と「そのプロジェクトで積み上がった判断や知見」を学び、次のやり取りで自然に活かせる状態を作る。
目標は 2 つある。
単体 AI が、過去の失敗や判断を踏まえて継続的に賢くなること
AI チーム全体が、同じユーザー・同じプロジェクト文脈を共有しながら揃って成長していくこと
技術スタック
Python + uv
MCP SDK(公式Python版)
Obsidian CLI 1.12+
git
Installation
Prerequisites
1. Install
uv tool install kb-mcp2. Setup
kb-mcp setup対話形式で以下を設定:
Obsidian Vault のパス(新規作成 or 既存 Vault に統合)
タイムゾーン
設定は ~/.config/kb/config.yml に保存される。
3. MCP サーバー登録
使用する AI ツールに合わせて登録する。複数ツールから同じ kb-mcp を共有できる。
Claude Code
claude mcp add kb --scope user -- kb-mcp serveCodex CLI
~/.codex/config.toml(CODEX_HOME 設定時はそちら)に追加:
[mcp_servers.kb]
command = "kb-mcp"
args = ["serve"]GitHub Copilot CLI
~/.copilot/mcp-config.json(COPILOT_HOME 設定時はそちら)を作成(または追記):
{
"mcpServers": {
"kb": {
"command": "kb-mcp",
"args": ["serve"]
}
}
}4. Hooks インストール(オプション)
kb-mcp install hooks --all # 全ツールの hook snippet / wrapper を用意
kb-mcp install hooks --claude --execute # 可能なものは設定ファイルまで反映5. 動作確認
kb-mcp doctorデータ配置
ノートはこのリポジトリには含まれない。kb-mcp setup で設定した Obsidian Vault に保存される。
<vault_path>/<kb_root>/
projects/<project-name>/
adr/ # 意思決定ログ
gap/ # AI指摘 → 本当はどうしてほしかったか
session-log/ # セッションログ
knowledge/ # 開発中に得た知識
draft/ # やりたいこと・アイデアメモ
inbox/ # プロジェクトに紐づかないアイデア
general/
knowledge/ # プロジェクト横断の共通知見
requirements/ # ユーザーがAIに求めることの集約MCP Tools
tool | 役割 |
| プロジェクト初期化 |
| 意思決定ログ保存 |
| 反省記録保存 |
| 知識保存 |
| セッションログ保存 |
| アイデア・やりたいことメモ |
| 検索 |
| ノート読み込み |
| ルール整合性チェック |
| リンク候補の発見・提案 |
| general/への昇格提案 |
保存系 / 検索系の入力互換:
kb_adr/kb_gap/kb_knowledge/kb_draftのslugは省略可能。未指定時はsummaryから補完されるtags/related/kb_search.tagsは配列を優先するが、クライアント互換のためカンマ区切り文字列や JSON 風文字列も受け付けるschema 更新後もクライアントが古い定義を保持している場合は、MCP サーバーの再起動または再接続が必要になることがある
CLI コマンド
コマンド | 役割 |
| 初期設定(Vault パス、タイムゾーン) |
| MCP サーバー起動 |
| 現在の |
| 設定値取得 |
| lifecycle hook の wrapper / snippet 生成 |
| raw hook payload を durable event として取り込み、fast-path 有効時は proposal bundle も返す |
| dispatch JSON を人間向け recommendation 文面へ変換する |
| due な sink を 1 回 drain する |
| dead-letter 化した sink を ready に戻す |
| 古い runtime artifact を削除する |
| learning packet / asset / application の runtime hygiene を補修する |
| launcher 管理下で AI セッションを起動する |
| config, event DB, scheduler, hooks, judge/review runtime を診断する |
| checkpoint window を judge して review 候補と suggestion bundle を生成する |
| review 候補を accept する |
| review 候補を reject する |
| review 候補を別ラベルへ relabel する |
| accepted / relabeled candidate を note materialize する |
| learning asset の visibility と主要属性を確認する |
| active learning asset を撤回する |
| learning asset を後継 asset で supersede する |
| stale learning asset を期限切れにする |
| active learning asset から runtime policy snapshot を生成する |
| active project-local asset を wider scope へ昇格する |
| failed / repair_pending materialization を再投入する |
バージョン確認:
kb-mcp --version
kb-mcp versionHooks / Events
hook は直接ノートを書き込むのではなく、kb-mcp hook dispatch で event pipeline に入る。
流れ:
client hook / launcher / middleware が raw event を送る
dispatchが normalize + redact + SQLite 永続化を行うworker が checkpoint / candidate / promotion / finalizer 系 sink を処理する
旧 hooks/on-session-end.sh は互換 shim として残しており、内部では dispatch を呼ぶ。
memory promotion の考え方:
全 hook はまず checkpoint として保存する
gap/knowledge/adrが anchor になった時だけ richsession-logを昇格するfinal_hint付き checkpoint は thinsession-logの区切り候補に使うanchor なしの checkpoint が 5 件ずつ 3 window 続いた場合も、thin
session-log候補を出せるようにしている
judge / review の流れ:
kb-mcp judge review-candidatesで checkpoint window を再読して候補を作るkb-mcp doctorで pending backlog / judge failure を確認するkb-mcp judge accept/reject/relabelで human verdict を review ledger に保存するkb-mcp judge materialize/retry-failed-materializationsで accepted candidate を note へ反映する
proposal surfacing:
review-candidatesは threshold 到達時にsuggestion_bundlesを返し、同じ window のgap/knowledge/adr/session_thinをひとまとめにして扱えるhook dispatch --judge-fastpathはfinal_hint/session_end/ thinsession-log境界でproposal_bundlesを返し、会話の区切りタイミングに合わせて提案を surfacing できるgenerated hook wrapper と legacy
hooks/on-session-end.shはhook summarize-dispatchを通して recommendation 文面へ変換し、そのまま client 側へ surfacing する
runtime hygiene:
kb-mcp doctorは expired packet / orphan application / stale local asset を表示するkb-mcp worker repair-learning-runtimeは doctor で見つかった learning runtime の補修を行う詳細は docs/learning-runtime-hygiene.md を参照
learning contract:
governed runtime learning contract の要点と command map は docs/governed-runtime-learning-contract.md を参照
client ごとの配布制約は docs/learning-client-capabilities.md を参照
fast-path judge:
KB_JUDGE_FASTPATH_COMMANDを設定した hook wrapper だけがhook dispatch --judge-fastpathを有効にするfast-path backend は contract version
1と timeout1.5sを使うbackend 未設定 / timeout / breaker open 時は hook 完了を優先し、fallback judge は後段 review を塞がない prompt version で記録する
fast-path で proposal timing に達した window は
proposal_bundlesを返し、gap/knowledgeとsession-log候補を同じ区切りで提案できる通常経路は
hook -> dispatch -> workerのままで、fast-path judge は optional な inline 分岐としてだけ動く
cross-client 前提:
Claude / Copilot / Codex の hook はすべて checkpoint 入力として扱う
vendor 固有 tool hook がなくても、server middleware event と checkpoint text から judge 入力を組み立てる
release 前の最小確認:
uv run python -m unittest tests.test_judge_cli tests.test_judge_review_cli tests.test_materialize_cli tests.test_fastpath_judge tests.test_install_and_doctor tests.test_event_pipeline tests.test_judge_inputs tests.test_cli_version -v
python -m compileall src tests
uv build
kb-mcp doctorファイル命名
adr / gap / knowledge / draft:
{slug}--{ULID}.mdsession-log:
{yyyymmdd-hhmm}--{ULID}.md
frontmatter
---
id: ULID
summary: 要約
ai_tool: claude | copilot | codex
ai_client: claude-code | copilot-cli | codex-cli # optional
repo: github.com/owner/repo # optional
tags: [] # optional
related: [] # optional
status: accepted # ADR用 optional
created: YYYY-MM-DDTHH:MM+09:00
updated: YYYY-MM-DDTHH:MM+09:00
---ライセンス
MIT
変更履歴
CHANGELOG.md を参照。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/okash1n/kb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server