Open-source MCP context persistence layer for AI sessions. Append-only handoffs, pgvector semantic search, OAuth2 auth. Model-agnostic.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http counts 29 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
browse_entities
-
compare_extractions
-
create_note
-
create_task
-
delete_note
-
entity_relations
-
extract_entities
-
get_artifact
-
get_handoff
-
get_latest_handoff
-
get_note
-
get_task
-
list_artifacts
-
list_extraction_runs
-
list_handoffs
-
list_notes
-
list_tasks
-
patch_handoff
-
reindex
-
run_extraction
-
search_artifacts
-
search_context
-
search_notes
-
search_tasks
-
store_artifact
-
store_handoff
-
update_artifact
-
update_note
-
update_task
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit b5f1c3f · analyzer v33 · 1w ago
skills & prompt files 1
- agent-rules onideus-context-library-b5f1c3f/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 80
filesystem 21
- fs (weak) onideus-context-library-b5f1c3f/scripts/compact-history.ts :19
import { readdir, readFile } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/scripts/extract-entities.ts :27
import { readdir, readFile, writeFile, access } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :3
import { rm, mkdir, writeFile } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/pending-embeddings.test.ts :2
import { rm, mkdir, writeFile } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/search-aliases.test.ts :2
import { mkdtempSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :3
import { rm, mkdir, readdir, readFile } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :3
import { rm, mkdir } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/db/changes.ts :2
import { readdir } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/db/migrate.ts :1
import { readdir, readFile } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/db/seed-entities.ts :13
import { readFile } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/server.ts :24
import { readFileSync } from "node:fs"; - fs onideus-context-library-b5f1c3f/src/storage/json-store.ts :1
import { mkdir, readFile, writeFile, rename, readdir, unlink } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/sync/routes.ts :10
import { readFile } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :3
import { readdir, stat } from "node:fs/promises"; - fs onideus-context-library-b5f1c3f/src/tools/search-aliases.ts :16
import { readFileSync } from "node:fs";
shell / exec 10
- shell (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :2
import { spawnSync } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :2
import { spawn, type ChildProcess } from "node:child_process"; - shell (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :2
import { spawn, type ChildProcess } from "node:child_process";
network 12
- net (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :28
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :35
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :25
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :29
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :4
import { createServer } from "node:net"; - net (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :25
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :39
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :42
const res = await fetch(`${url}/health`); - net (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :38
const res = await fetch(`${url}/health`); - net onideus-context-library-b5f1c3f/src/embeddings/client.ts :31
const response = await fetch(`${config.embeddingUrl}/v1/embeddings`, { - net onideus-context-library-b5f1c3f/src/entities/providers/api.ts :67
const response = await fetch(`${this.baseUrl}/v1/messages`, { - net onideus-context-library-b5f1c3f/src/entities/providers/ollama.ts :44
const response = await fetch(`${this.baseUrl}/api/tags`, {
secrets 10
- secrets (weak) onideus-context-library-b5f1c3f/scripts/extract-entities.ts :217
const apiKey = process.env.ANTHROPIC_API_KEY; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :18
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :25
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :22
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :19
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/pending-embeddings.test.ts :18
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :29
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :32
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :28
const PG_PASSWORD = process.env.PGPASSWORD ?? "test"; - secrets onideus-context-library-b5f1c3f/src/config.ts :32
entityApiKey: process.env.ENTITY_API_KEY ?? null,
database 4
- db (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :5
import pg from "pg"; - db onideus-context-library-b5f1c3f/src/db/changes.ts :1
import type { PoolClient } from "pg"; - db onideus-context-library-b5f1c3f/src/db/client.ts :1
import pg from "pg"; - db onideus-context-library-b5f1c3f/src/sync/routes.ts :2
import type { PoolClient } from "pg";
tool registrations 29
- store_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :244
- get_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :375
- list_artifacts onideus-context-library-b5f1c3f/src/tools/artifacts.ts :398
- search_artifacts onideus-context-library-b5f1c3f/src/tools/artifacts.ts :470
- update_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :543
- extract_entities onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :171
- run_extraction onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :274
- compare_extractions onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :406
- list_extraction_runs onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :541
- browse_entities onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :576
- entity_relations onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :638
- list_handoffs onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :70
- get_handoff onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :166
- store_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :501
- get_latest_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :669
- patch_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :771
- create_note onideus-context-library-b5f1c3f/src/tools/notes.ts :119
- get_note onideus-context-library-b5f1c3f/src/tools/notes.ts :189
- list_notes onideus-context-library-b5f1c3f/src/tools/notes.ts :212
- search_notes onideus-context-library-b5f1c3f/src/tools/notes.ts :276
- update_note onideus-context-library-b5f1c3f/src/tools/notes.ts :344
- delete_note onideus-context-library-b5f1c3f/src/tools/notes.ts :456
- search_context onideus-context-library-b5f1c3f/src/tools/search.ts :184
- reindex onideus-context-library-b5f1c3f/src/tools/search.ts :636
- create_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :143
- get_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :201
- list_tasks onideus-context-library-b5f1c3f/src/tools/tasks.ts :224
- update_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :342
- search_tasks onideus-context-library-b5f1c3f/src/tools/tasks.ts :504
declared dependencies 13
- @modelcontextprotocol/sdk@^1.27.1
- @hono/mcp@^0.2.4
- @hono/node-server@^1.19.11
- dotenv@^16.4.7
- hono@^4.12.25
- pg@^8.20.0
- zod@^3.25.0
- @anthropic-ai/sdk@^0.90.0
- @types/node@^22.13.4
- @types/pg@^8.20.0
- tsx@^4.19.3
- typescript@^5.7.3
- vitest@^4.1.0