github analyzed 00e6792

Hekkova/hekkova-mcp

github

TPermanent memory layer for AI agents. Mint moments to the Polygon blockchain via MCP.

maintainer
Hekkova
licence
first seen
2026-06-03
last seen
2026-06-03
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 9 tools
transport streamable-http · http counts 9 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • export_moments
  • get_account
  • get_balance
  • get_moment
  • list_moments
  • mint_from_url
  • mint_moment
  • update_phase
  • upload_media
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 00e6792 · analyzer v33 · 4w ago

danger signals6

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 78

filesystem 2

  • fs (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/generate-test-html.js :17 import * as fs from 'fs';
  • fs (weak) Hekkova-hekkova-mcp-00e6792/scripts/generate-test-html.ts :18 import * as fs from 'fs';

network 14

  • net (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/backfill-filecoin.js :47 const res = await fetch(url);
  • net (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/test-client.js :21 const res = await fetch(BASE_URL, {
  • net Hekkova-hekkova-mcp-00e6792/dist/src/server.js :2 import { setGlobalDispatcher, Agent } from 'undici';
  • net Hekkova-hekkova-mcp-00e6792/dist/src/services/storage.js :28 response = await fetch(`${PINATA_BASE}/pinning/pinFileToIPFS`, {
  • net Hekkova-hekkova-mcp-00e6792/dist/src/templates/moment-html.js :413 var ctRes=await fetch('${ipfsGateway}/ipfs/'+ENC.ciphertextCid);
  • net Hekkova-hekkova-mcp-00e6792/dist/src/tools/mint-from-url.js :154 * Using fetch(url, { redirect: 'follow' }) would silently follow redirects to
  • net Hekkova-hekkova-mcp-00e6792/dist/src/tools/update-phase.js :97 const resp = await fetch(`${config.pinataGateway}/ipfs/${ciphertextCid}`);
  • net (weak) Hekkova-hekkova-mcp-00e6792/scripts/backfill-filecoin.ts :56 const res = await fetch(url);
  • net (weak) Hekkova-hekkova-mcp-00e6792/scripts/test-client.ts :50 const res = await fetch(BASE_URL, {
  • net Hekkova-hekkova-mcp-00e6792/src/server.ts :2 import { setGlobalDispatcher, Agent } from 'undici';
  • net Hekkova-hekkova-mcp-00e6792/src/services/storage.ts :41 response = await fetch(`${PINATA_BASE}/pinning/pinFileToIPFS`, {
  • net Hekkova-hekkova-mcp-00e6792/src/templates/moment-html.ts :465 var ctRes=await fetch('${ipfsGateway}/ipfs/'+ENC.ciphertextCid);
show 2 more
  • net Hekkova-hekkova-mcp-00e6792/src/tools/mint-from-url.ts :181 * Using fetch(url, { redirect: 'follow' }) would silently follow redirects to
  • net Hekkova-hekkova-mcp-00e6792/src/tools/update-phase.ts :161 const resp = await fetch(`${config.pinataGateway}/ipfs/${ciphertextCid}`);

secrets 6

  • secrets (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/backfill-filecoin.js :20 const LIGHTHOUSE_API_KEY = process.env['LIGHTHOUSE_API_KEY'] ?? '';
  • secrets (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/inspect-schema.js :4 const sb = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_KEY);
  • secrets (weak) Hekkova-hekkova-mcp-00e6792/dist/scripts/test-db.js :5 const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_SERVICE_KEY);
  • secrets (weak) Hekkova-hekkova-mcp-00e6792/scripts/backfill-filecoin.ts :23 const LIGHTHOUSE_API_KEY = process.env['LIGHTHOUSE_API_KEY'] ?? '';
  • secrets (weak) Hekkova-hekkova-mcp-00e6792/scripts/inspect-schema.ts :5 const sb = createClient(process.env.SUPABASE_URL!, process.env.SUPABASE_SERVICE_KEY!);
  • secrets (weak) Hekkova-hekkova-mcp-00e6792/scripts/test-db.ts :9 process.env.SUPABASE_SERVICE_KEY!

database 2

  • db Hekkova-hekkova-mcp-00e6792/dist/src/server.js :93 import { Redis } from 'ioredis';
  • db Hekkova-hekkova-mcp-00e6792/src/server.ts :117 import { Redis } from 'ioredis';

tool registrations 18

  • mint_moment Hekkova-hekkova-mcp-00e6792/dist/src/server.js :200
  • mint_from_url Hekkova-hekkova-mcp-00e6792/dist/src/server.js :237
  • list_moments Hekkova-hekkova-mcp-00e6792/dist/src/server.js :261
  • get_moment Hekkova-hekkova-mcp-00e6792/dist/src/server.js :282
  • update_phase Hekkova-hekkova-mcp-00e6792/dist/src/server.js :298
  • export_moments Hekkova-hekkova-mcp-00e6792/dist/src/server.js :315
  • get_balance Hekkova-hekkova-mcp-00e6792/dist/src/server.js :331
  • upload_media Hekkova-hekkova-mcp-00e6792/dist/src/server.js :345
  • get_account Hekkova-hekkova-mcp-00e6792/dist/src/server.js :372
  • mint_moment Hekkova-hekkova-mcp-00e6792/src/server.ts :240
  • mint_from_url Hekkova-hekkova-mcp-00e6792/src/server.ts :284
  • list_moments Hekkova-hekkova-mcp-00e6792/src/server.ts :315
show 6 more
  • get_moment Hekkova-hekkova-mcp-00e6792/src/server.ts :341
  • update_phase Hekkova-hekkova-mcp-00e6792/src/server.ts :362
  • export_moments Hekkova-hekkova-mcp-00e6792/src/server.ts :384
  • get_balance Hekkova-hekkova-mcp-00e6792/src/server.ts :405
  • upload_media Hekkova-hekkova-mcp-00e6792/src/server.ts :424
  • get_account Hekkova-hekkova-mcp-00e6792/src/server.ts :459

declared dependencies 24

  • @modelcontextprotocol/sdk@^1.12.1
  • @lighthouse-web3/sdk@^0.4.5
  • @supabase/supabase-js@^2.49.4
  • @types/cors@^2.8.17
  • @types/express@^5.0.1
  • @types/node@^22.15.3
  • cors@^2.8.5
  • dotenv@^16.4.7
  • express@^4.21.2
  • file-type@^16.5.4
  • ioredis@^5.10.1
  • multer@^1.4.5-lts.2
show 12 more
  • resend@^6.10.0
  • sharp@^0.34.5
  • stripe@^20.4.1
  • ts-node@^10.9.2
  • typescript@^5.8.3
  • undici@^7.24.5
  • viem@^2.47.6
  • zod@^3.24.2
  • @types/multer@^1.4.12
  • @types/sharp@^0.31.1
  • nodemon@^3.1.9
  • tsx@^4.19.3