Tool-integrity pinning for MCP. Pin what your agent approved; block it when it changes.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 22
filesystem 12
- fs GautamTalksDev-mcp-pin-ae94da6/action/index.js :18
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/bin/attest.js :11
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/crawler/crawl.js :12
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/crawler/log.js :9
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/crawler/probe.js :205
const fs2 = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/crawler/report.js :14
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/crawler/seed.js :13
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/demo/rugpull-server.js :11
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/site/build.js :10
const fs = require('fs'); - fs GautamTalksDev-mcp-pin-ae94da6/src/store.js :2
const fs = require('fs'); - fs (weak) GautamTalksDev-mcp-pin-ae94da6/test/run.js :4
const fs = require('fs'); - fs (weak) GautamTalksDev-mcp-pin-ae94da6/test/side-effect-server.js :4
const fs = require('fs');
shell / exec 4
- shell GautamTalksDev-mcp-pin-ae94da6/bin/attest.js :10
const { spawn } = require('child_process'); - shell GautamTalksDev-mcp-pin-ae94da6/crawler/probe.js :11
const { spawn } = require('child_process'); - shell (weak) GautamTalksDev-mcp-pin-ae94da6/test/fake-client.js :2
const { spawn } = require('child_process'); - shell (weak) GautamTalksDev-mcp-pin-ae94da6/test/run.js :7
const { spawn, spawnSync } = require('child_process');
network 3
- net GautamTalksDev-mcp-pin-ae94da6/action/index.js :149
const r = await fetch(api + '?per_page=100', { headers }); - net GautamTalksDev-mcp-pin-ae94da6/crawler/security.js :12
const net = require('net'); - net GautamTalksDev-mcp-pin-ae94da6/crawler/seed.js :53
const r = await fetch('https://api.npmjs.org/downloads/point/last-month/' + batch.join(','));
secrets 5
- secrets GautamTalksDev-mcp-pin-ae94da6/action/index.js :126
const token = process.env.GITHUB_TOKEN; - secrets GautamTalksDev-mcp-pin-ae94da6/crawler/crawl.js :75
let servers = await discover({ limit: 250, github: !!process.env.GITHUB_TOKEN }); - secrets GautamTalksDev-mcp-pin-ae94da6/crawler/discover.js :93
if (process.env.GITHUB_TOKEN) headers.authorization = `Bearer ${process.env.GITHUB_TOKEN}`; - secrets GautamTalksDev-mcp-pin-ae94da6/crawler/log.js :41
if (process.env.LOG_PRIVATE_KEY) { - secrets (weak) GautamTalksDev-mcp-pin-ae94da6/test/run.js :18
if (!process.env.LOG_PRIVATE_KEY) {
obfuscation 1
- base64 decode → exec sink GautamTalksDev-mcp-pin-ae94da6/test/run.js :92
const der = Buffer.from(process.env.LOG_PRIVATE_KEY, 'base64');