A Drupal-shaped content store — title, body, datetime, taxonomy — that models write to over MCP. One Cloudflare Worker, one D1, one click. OAuth for claude.ai.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport — counts 19 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
call_log
-
call_stats
-
node_create
-
node_delete
-
node_embed
-
node_get
-
node_list
-
node_search
-
node_tag
-
node_types
-
node_untag
-
node_update
-
status
-
term_create
-
term_list
-
term_weight
-
vocabulary_create
-
vocabulary_delete
-
vocabulary_list
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit ff5b5cd · analyzer v33 · 1d ago
danger signals1
- dynamic code execution new Function() Soul-Brews-Studio-digger-node-ff5b5cd/test/app.test.ts :915
expect(() => new Function(source)).not.toThrow();
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 22
filesystem 3
- fs Soul-Brews-Studio-digger-node-ff5b5cd/src/server.ts :28
import { readdirSync, readFileSync } from "node:fs"; - fs (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/app.test.ts :12
import { readdirSync, readFileSync } from "node:fs"; - fs (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/auth.test.ts :17
import { readdirSync, readFileSync } from "node:fs";
shell / exec 1
- shell Soul-Brews-Studio-digger-node-ff5b5cd/src/store/sqlite.ts :85
Database: new (path: string) => SqliteLike & { exec(sql: string): void };
network 4
- net Soul-Brews-Studio-digger-node-ff5b5cd/src/index.ts :55
async fetch(request: Request, env: Env): Promise<Response> { - net Soul-Brews-Studio-digger-node-ff5b5cd/src/server.ts :91
fetch(request, server) { - net (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/app.test.ts :38
const response = await app.fetch( - net (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/auth.test.ts :53
const response = await app.fetch(
secrets 1
- secrets Soul-Brews-Studio-digger-node-ff5b5cd/src/server.ts :71
apiToken: process.env.API_TOKEN,
tool registrations 19
- node_create Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :53
- node_get Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :75
- node_update Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :80
- node_delete Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :96
- node_list Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :101
- node_types Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :132
- vocabulary_delete Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :138
- node_search Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :151
- node_embed Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :165
- node_tag Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :174
- node_untag Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :187
- vocabulary_create Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :196
show 7 more
- vocabulary_list Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :211
- term_create Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :216
- term_weight Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :237
- term_list Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :246
- call_log Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :251
- call_stats Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :264
- status Soul-Brews-Studio-digger-node-ff5b5cd/src/mcp.ts :269
declared dependencies 5
- elysia@^1.4.29
- @cloudflare/workers-types@^4.20250109.0
- @types/bun@^1.4.0
- typescript@^5.9.0
- wrangler@^4.128.0
perm:untrusted 2
- untrusted (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/app.test.ts :67
const body = (await (await app.fetch(new Request("http://localhost/health"))).json()) as any; - untrusted (weak) Soul-Brews-Studio-digger-node-ff5b5cd/test/auth.test.ts :104
const health = (await (await app.fetch(new Request("http://localhost/health"))).json()) as any;