Local, typed Model Context Protocol server for Discord bots - 192 tools for AI clients with safety controls and observability.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 1a67ac8 · analyzer v28 · 1d ago
skills & prompt files 2
- agent-rules cappyeo-discord-mcp-1a67ac8/AGENTS.md
- agent-rules cappyeo-discord-mcp-1a67ac8/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 607
filesystem 8
- fs cappyeo-discord-mcp-1a67ac8/packages/mcp-core/src/audit/sink.ts :1
import { createWriteStream, type WriteStream } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/commands/init.ts :31
import { existsSync, writeFileSync } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/checks/audit-sink.ts :16
import * as fs from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/migrate-adapters/discord-ops.ts :151
import { readdirSync, readFileSync, statSync } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/migrate-adapters/hubdustry-go-mcp.ts :23
import type { Dirent } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/migrate-adapters/pasympa.ts :94
import { readdirSync, readFileSync, statSync } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/migrate-adapters/quadslab.ts :154
import { readdirSync, readFileSync, statSync } from 'node:fs'; - fs cappyeo-discord-mcp-1a67ac8/packages/mcp-server/vitest.global-setup.ts :28
import { existsSync } from 'node:fs';
shell / exec 1
- shell cappyeo-discord-mcp-1a67ac8/packages/mcp-server/vitest.global-setup.ts :27
import { execSync } from 'node:child_process';
network 3
- net cappyeo-discord-mcp-1a67ac8/packages/mcp-core/src/tools/messages/read.ts :42
.describe('Messages to fetch (1-100, default 50)'), - net cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/checks/otel-reachable.ts :102
const res = await fetch(url, { - net cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/checks/token-online.ts :62
const res = await fetch(url, {
secrets 1
- secrets cappyeo-discord-mcp-1a67ac8/packages/mcp-server/src/lib/checks/token-format.ts :5
* calls. We read `process.env.DISCORD_TOKEN` directly (NOT the parsed
install hooks 2
- prepack (suspicious) cappyeo-discord-mcp-1a67ac8/packages/mcp-core/package.json :46
node -e "require('node:fs').copyFileSync('../../README.md','README.md');require('node:fs').copyFileSync('../../LICENSE','LICENSE');" - prepack (suspicious) cappyeo-discord-mcp-1a67ac8/packages/mcp-server/package.json :50
node -e "require('node:fs').copyFileSync('../../README.md','README.md');require('node:fs').copyFileSync('../../LICENSE','LICENSE');"
declared dependencies 4
- @biomejs/biome@^2.0.0
- publint@^0.3.22
- turbo@^2.0.0
- typescript@^5.6.0
obfuscation 2
- dynamic require()/import() cappyeo-discord-mcp-1a67ac8/packages/mcp-core/src/audit/redact.test.ts :443
const mod = await import(`file://${join(dir, file).replace(/\\/g, '/')}`); - dynamic require()/import() cappyeo-discord-mcp-1a67ac8/packages/mcp-core/src/tools/registry.invariants.test.ts :57
const mod = await import(`file://${sourcePath.replace(/\\/g, '/')}`);