Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
Stateful memory for AI agents. Temporal awareness, error loop detection, and preventive constraints.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
DATABASE_URLどのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
動かす前に、空欄の値を入力してください。
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
DATABASE_URL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント aranajhonny で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.0)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにMCPBも必要です。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Vlk² gives AI agents a sense of time: what's happening now (PRESENT), what's already been tried (PAST), and what should guide future decisions (FUTURE). It runs as a single binary over MCP, backed by SQLite, and manages these temporal transitions autonomously.
The killer demo: when an agent repeats the same Rust/TS/Python/Go error 3 times, Vlk² auto-archives the loop and injects a preventive constraint so the agent stops retrying the same broken approach. But the architecture is general — the temporal state machine can track any kind of past→present→future transition across any agent framework.
error[E0277]), TypeScript/JS (TS2345, TypeError), Python (ValueError, KeyError), Go (panic: nil pointer), HTTP (503 Service Unavailable), test frameworks (expected: X, got: Y), with a timestamp-stripping fallback. When the same fingerprint appears ≥3 times, Vlk² auto-archives the loop to PAST and injects a FUTURE constraint.General memory systems (agentmemory, Hindsight, Mem0, Supermemory) store facts, preferences, and context. Vlk² does one thing they don't: detect that the same Rust compile error repeated 3 times across different files and inject a constraint so the agent stops retrying the same broken approach. It's not a replacement — it's a specialized fault-detection layer that runs alongside them.
| Capability | Vlk² | agentmemory | Hindsight | Supermemory |
|---|---|---|---|---|
| Fact/persona memory | — | ✅ 53 tools | ✅ hooks | ✅ keywords |
| Cross-language error fingerprinting | ✅ 7 strategies | — | — | — |
| Autonomous loop breaking | ✅ ≥3 repeats auto-archive | — | — | — |
| Reconsolidation on retrieval | ✅ | — | — | — |
| Token-bounded context | ✅ 8K default | — | — | — |
cd vlk-core
cargo build --release DATABASE_URL="sqlite:vlk.db?mode=rwc" ./target/release/vlk-core
Any MCP client connects via stdin/stdout — JSON-RPC 2.0, one line per message.
| Tool | Purpose |
|---|---|
vlk_record_state | Push a log/error as a PRESENT slot for loop detection |
vlk_fetch_context | Clean context with reconsolidation + loop interception |
vlk_time_travel | Archive PRESENT → PAST and inject a FUTURE constraint |
vlk_get_history | Full timeline audit |
vlk_search_memory | Keyword search across logs and constraints |
vlk_summarize_session | State counts + token estimates |
vlk_revoke_future | Remove incorrectly learned constraints |
vlk_get_facts | Retrieved distilled patterns |
vlk_consolidation_status | Show consolidation agent state with token bar |
vlk_pin_memory | Protect a pattern from forgetting |
vlk_unpin_memory | Restore normal forgetting eligibility |
error[E...], TS TS..., Python TypeError:, Go panic:, HTTP 503, test assertion, or first-80-chars fallback[SYSTEM ANCHOR] preventive constraintmemory_contents (immutable, team-agnostic)
└── FK ──► agent_timeline (PRESENT / PAST / FUTURE / PURGED) ├── memory_metadata (temporal vectors, importance, connectivity) └── semantic_facts (distilled patterns from errors) └── fact_contradictions (resolution tracking)
Consolidation Agent (background tokio, 30s cycle) SCAN → EVALUATE importance → BUDGET_CHECK → ARCHIVE low-value → FORGET stale
What's tested: the core loop detection path is verified: 3 identical Rust errors → auto-archive to PAST + FUTURE constraint injection. All 13 MCP tools respond correctly.
Not yet tested: pin/unpin with non-existent timeline_ids, token budget enforcement under load, conflict resolution.
Loop detection smoke test — sends the same Rust error[E0277] 3 times and verifies auto-archive + constraint injection:
import subprocess, json, tempfile, os, sys
db = tempfile.mktemp(suffix='.db') proc = subprocess.Popen(['./target/release/vlk-core'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, env={'DATABASE_URL': f'sqlite:{db}?mode=rwc'})
def rpc(msg): proc.stdin.write((json.dumps(msg) + '\n').encode()) proc.stdin.flush() return json.loads(proc.stdout.readline())
rpc({'jsonrpc':'2.0','id':1,'method':'initialize','params':{ 'protocolVersion':'2024-11-05','capabilities':{}, 'clientInfo':{'name':'test','version':'1.0'}}})
error = 'error[E0277]: cannot add str to str' for i in range(3): r = rpc({'jsonrpc':'2.0','id':i+2,'method':'tools/call','params':{ 'name':'vlk_record_state', 'arguments':{'raw_log': error, 'file_context': f'lib.rs:{i*10}'}}}) assert 'PRESENT state recorded' in r'result'0 print(f' Record {i+1}: OK')
r = rpc({'jsonrpc':'2.0','id':5,'method':'tools/call','params':{ 'name':'vlk_fetch_context','arguments':{}}}) txt = r'result'0 assert 'E0277' in txt, 'error missing after fetch' assert any(kw in txt for kw in ['SYSTEM ANCHOR', 'PREVENTIVE', 'CONSTRAINT']), \ 'no constraint injected' print(f' Fetch: loop archived + constraint injected')
proc.terminate(); proc.wait() for f in (db, db + '-wal', db + '-shm'): try: os.remove(f) except FileNotFoundError: pass print('PASS: loop detection works')
Add to Hermes, OpenCode, Claude Code, Codex, or any MCP host:
# ~/.hermes/config.yaml or equivalent
mcp_servers: vlk2: command: "vlk2" env: DATABASE_URL: "sqlite:~/.hermes/vlk/vlk.db?mode=rwc" timeout: 30
Compatible with any MCP client. Works alongside agentmemory, Hindsight, Supermemory, or Hermes built-in memory.
Actively developed. The core loop detection and corrective memory cycle is implemented and E2E-tested. Vlk² is a specialized complement to general memory systems — not a replacement.