Secure AI Memory with Dynamic Project Detection, Automatic Session Briefing, Personal+Team Session Summary Prompts, Triple Search, Knowledge Graphs, GitHub Integration (Issues, PRs, Actions, Kanban, Milestones), Team Collaboration, Hush, Adaptive Analytics, Markdown I/O, Audit+Token Logging, OAuth 2.1 & HTTP/SSE/stdio. 70+ Tools in 1 Code Mode.
Drift inferred · capture-to-capture
- HIGH code analysis flagged hidden prompt content in neverinfamous/memory-journal-mcp
- HIGH code analysis flagged hidden prompt content ×2 in neverinfamous/memory-journal-mcp
- HIGH code analysis flagged committed secret, dynamic code execution ×5 in neverinfamous/memory-journal-mcp
transport stdio · streamable-http · http · sse
verified
reported
listed in the official MCP registry counts 4 tools · 0 res
· 0 prompts
permission surface via README inference
tools
-
essential
~7
-
full
73
-
readonly
17
-
starter
~11
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit f58eb15 · analyzer v33 · 3w ago
skills & prompt files 41
- hidden: skill: skill-exfil neverinfamous-memory-journal-mcp-f58eb15/skills/workers-best-practices/SKILL.md :89
secret→sink: | Hardcoded secrets in source or config | Credential leak via version control |
- agent-rules neverinfamous-memory-journal-mcp-f58eb15/.github/copilot-instructions.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/adversarial-performance/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/adversarial-planner/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/adversarial-security/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/adversarial-skill-audit/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/adversarial-workflow-audit/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/agents-sdk/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/agents-sdk/references/mcp/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/auth-identity/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/autonomous-dev/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/aws/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/azure/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/biome/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/bun/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/cloudflare/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/docker/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/docs-marketer/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/drizzle-orm/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/durable-objects/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/gcp/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/github-actions/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/github-commander/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/github-copilot-cli/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/github-repo-setup/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/gitlab/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/golang/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/graphql/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/hono/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/journal-optimizer/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/llm-app-engineering/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/monorepo/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/multi-agent-orchestration/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/mysql/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/next-best-practices/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/next-cache-components/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/next-upgrade/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/nodejs/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/opentelemetry/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/playwright-standard/SKILL.md
- skill neverinfamous-memory-journal-mcp-f58eb15/skills/postgres/SKILL.md
danger signals1
- committed secret GitHub token neverinfamous-memory-journal-mcp-f58eb15/tests/utils/security-utils.test.ts :89
ghp_se…(40 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 372
filesystem 71
- fs (weak) neverinfamous-memory-journal-mcp-f58eb15/scripts/generate-server-instructions.ts :14
import { readFileSync, readdirSync, writeFileSync } from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/scripts/run-checks.ts :2
import { writeFileSync, mkdirSync } from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/scripts/update-badges.ts :1
import fs from 'fs' - fs neverinfamous-memory-journal-mcp-f58eb15/skills/bin/sync.js :3
import fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/skills/gitlab/scripts/gitlab-client.ts :4
import * as fs from 'fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/audit/audit-logger.ts :20
import { appendFile, mkdir, open, rename, stat } from 'node:fs/promises' - fs neverinfamous-memory-journal-mcp-f58eb15/src/cli.ts :4
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/backup.ts :1
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/index.ts :25
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/native-connection.ts :3
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/handlers/resources/core/briefing/context-section.ts :8
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/handlers/resources/core/briefing/system-section.ts :13
import * as fs from 'node:fs'
show 28 more
- fs neverinfamous-memory-journal-mcp-f58eb15/src/handlers/resources/core/utilities.ts :18
import * as fs from 'node:fs' - fs neverinfamous-memory-journal-mcp-f58eb15/src/markdown/exporter.ts :8
import { mkdir, open } from 'node:fs/promises' - fs neverinfamous-memory-journal-mcp-f58eb15/src/markdown/importer.ts :9
import { opendir, open } from 'node:fs/promises' - fs neverinfamous-memory-journal-mcp-f58eb15/src/utils/security-utils.ts :118
import fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/audit/audit-interceptor.test.ts :10
import { readFile, rm, mkdtemp } from 'node:fs/promises' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/audit/audit-logger.test.ts :15
import { readFile, rm, mkdtemp, stat, writeFile } from 'node:fs/promises' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/build-externals.test.ts :12
import { readFileSync } from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/codemode/codemode-tool-handlers.test.ts :64
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/codemode/security.test.ts :47
const result = security.validateCode('const fs = require("fs")') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/codemode/worker-sandbox.test.ts :3
import * as fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/digest.test.ts :18
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/native-connection.test.ts :10
import fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/sqlite-adapter-backup.test.ts :3
import * as fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/sqlite-adapter.bench.ts :3
import * as fs from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/sqlite-adapter.test.ts :18
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/helpers.ts :19
import { createWriteStream } from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-codemode.spec.ts :65
code: `const fs = require('fs'); return fs.readFileSync('/etc/passwd');`, - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-io.spec.ts :11
import { rm } from 'node:fs/promises' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-team-happy.spec.ts :14
import { mkdirSync } from 'node:fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/catch-block-coverage.test.ts :70
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/codemode-tools.test.ts :5
import * as fs from 'fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/error-path-coverage.test.ts :66
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/github-body-truncation.test.ts :123
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/github-resource-handlers.test.ts :138
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/github-tool-handlers.test.ts :203
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/handler-error-branches.test.ts :85
const fs = require('node:fs') - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/help-resource.test.ts :9
import * as fs from 'fs' - fs (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/handlers/kanban-payload-optimization.test.ts :127
const fs = require('node:fs')
31 more not shown — this panel samples each group; the count above is the real total.
shell / exec 19
- shell (weak) neverinfamous-memory-journal-mcp-f58eb15/scripts/run-checks.ts :1
import { execSync } from 'node:child_process' - shell neverinfamous-memory-journal-mcp-f58eb15/src/database/core/interfaces.ts :27
exec(sql: string, params?: unknown[]): QueryResult[] - shell neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/native-connection.ts :5
import { execFile } from 'node:child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-50k-boundary.mjs :1
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-filter-instructions.mjs :21
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-instruction-levels.mjs :11
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-progress.mjs :23
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-prompts.mjs :1
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-team-db-fallback.mjs :10
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-team-zod.mjs :9
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-tool-annotations.mjs :27
import { spawn } from 'child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/codemode/codemode-tool-handlers.test.ts :187
{ code: 'child_process.exec("whoami")' },
show 7 more
- shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/codemode/security.test.ts :94
const result = security.validateCode('const cp = child_process.exec("ls")') - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/database-branches.test.ts :84
'Multi-statement queries via exec() are strictly forbidden. Use properly parameterized adapter methods instead.' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/helpers.ts :18
import { ChildProcess, spawn } from 'node:child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/oauth-scopes.spec.ts :13
import { spawn, type ChildProcess } from 'node:child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-team-happy.spec.ts :16
import { spawn, type ChildProcess } from 'node:child_process' - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/rate-limiting.spec.ts :27
const { spawn } = await import('node:child_process') - shell (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/resources-briefing-env.spec.ts :13
import { spawn, type ChildProcess } from 'node:child_process'
network 18
- net neverinfamous-memory-journal-mcp-f58eb15/src/auth/authorization-server-discovery.ts :14
import * as https from 'node:https' - net neverinfamous-memory-journal-mcp-f58eb15/src/auth/token-validator.ts :320
const response = await fetch(this.jwksUri, { - net neverinfamous-memory-journal-mcp-f58eb15/src/transports/http/server/legacy-sse.ts :4
import type { IncomingMessage, ServerResponse } from 'node:http' - net neverinfamous-memory-journal-mcp-f58eb15/src/transports/http/server/stateful.ts :6
import type { IncomingMessage, ServerResponse } from 'node:http' - net neverinfamous-memory-journal-mcp-f58eb15/src/transports/http/server/stateless.ts :4
import type { IncomingMessage, ServerResponse } from 'node:http' - net (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-http.mjs :3
const sidRes = await fetch(url + '/session', { method: 'POST' }) - net (weak) neverinfamous-memory-journal-mcp-f58eb15/test-server/scripts/test-scheduler.mjs :38
const res = await fetch(BASE, { - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/auth.spec.ts :25
const response = await fetch(`${AUTH_BASE}/health`) - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/helpers.ts :219
const res = await fetch(`http://localhost:${port}/health`) - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/oauth-discovery.spec.ts :13
import { Server } from 'node:http' - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/oauth-scopes.spec.ts :17
import type { Server } from 'node:http' - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-team-happy.spec.ts :67
const res = await fetch(`${TEAM_BASE}/health`)
show 6 more
- net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/rate-limiting.spec.ts :53
const res = await fetch(`http://localhost:${RATE_PORT + 1}/health`) - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/resources-briefing-env.spec.ts :61
const res = await fetch(`${BRIEFING_BASE}/health`) - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/security.spec.ts :55
const response = await request.fetch('/mcp', { - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/session-advanced.spec.ts :32
const response = await fetch('http://localhost:3100/mcp', { - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/stateless.spec.ts :24
const response = await fetch(`${STATELESS_BASE}/mcp`, { - net (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/streaming.spec.ts :29
const response = await fetch(`${STREAM_BASE}/mcp`)
secrets 9
- secrets (weak) neverinfamous-memory-journal-mcp-f58eb15/skills/gitlab/scripts/gitlab-client.ts :23
const token = process.env.GITLAB_API_TOKEN - secrets neverinfamous-memory-journal-mcp-f58eb15/src/github/github-integration/client.ts :29
const resolvedToken = token ?? process.env['GITHUB_TOKEN'] - secrets neverinfamous-memory-journal-mcp-f58eb15/src/handlers/tools/codemode.ts :317
process.env['GITHUB_TOKEN'] - secrets neverinfamous-memory-journal-mcp-f58eb15/src/server/mcp-server.ts :325
authEnabled: Boolean(options.authToken ?? process.env['MCP_AUTH_TOKEN']), - secrets neverinfamous-memory-journal-mcp-f58eb15/src/utils/github-helpers.ts :33
process.env['GITHUB_TOKEN'] - secrets (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/e2e/payloads-github-degradation.spec.ts :25
const oldToken = process.env.GITHUB_TOKEN - secrets (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/github/client-issues-errors.test.ts :44
delete process.env['GITHUB_TOKEN'] - secrets (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/github/github-integration.test.ts :82
delete process.env['GITHUB_TOKEN'] - secrets (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/github/github-managers-branches.test.ts :48
delete process.env['GITHUB_TOKEN']
database 12
- db neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/entries/digest.ts :8
import type { Database } from 'better-sqlite3' - db neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/entries/shared.ts :2
import type { Database } from 'better-sqlite3' - db neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/native-connection.ts :1
import DatabaseAdapter from 'better-sqlite3' - db neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/relationships.ts :1
import type { Database } from 'better-sqlite3' - db neverinfamous-memory-journal-mcp-f58eb15/src/database/sqlite-adapter/tags.ts :1
import type { Database } from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/crud-workflow-branches.test.ts :10
import Database from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/database-branches.test.ts :10
import Database from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/digest.test.ts :9
import type { Database } from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/entries-auth-branches.test.ts :12
import Database from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/native-connection.test.ts :9
import type { Database } from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/shared-helpers.test.ts :9
import Database from 'better-sqlite3' - db (weak) neverinfamous-memory-journal-mcp-f58eb15/tests/database/tags.test.ts :2
import Database from 'better-sqlite3'
install hooks 1
- prepublishOnly neverinfamous-memory-journal-mcp-f58eb15/package.json :33
npm run check && npm run test && npm run build
declared dependencies 25
- @modelcontextprotocol/sdk@^1.27.1
- @huggingface/transformers@^4.0.1
- @octokit/graphql@^9.0.3
- @octokit/rest@^22.0.1
- better-sqlite3@^12.8.0
- commander@^15.0.0
- express@^5.2.1
- jose@^6.2.1
- simple-git@^3.35.2
- sqlite-vec@^0.1.7-alpha.2
- zod@^4.3.6
- @eslint/js@^10.0.1
show 13 more
- @playwright/test@^1.59.1
- @types/better-sqlite3@^7.6.13
- @types/express@^5.0.6
- @types/node@^25.6.0
- @vitest/coverage-v8@^4.1.3
- esbuild@^0.28.0
- eslint@^10.2.0
- globals@^17.4.0
- tsup@^8.5.1
- tsx@4.22.4
- typescript@^6.0.2
- typescript-eslint@^8.58.1
- vitest@^4.1.3