Skip to main content
Glama

Instagram MCP Investigator

by inoue2002
debug-run.js3.93 kB
import dotenv from "dotenv"; import process from "process"; import { scrapeProfile } from "./scraper.js"; import { generateReport } from "./report.js"; dotenv.config(); function parseArgs(rawArgs) { const args = { includeRaw: false }; for (let i = 2; i < rawArgs.length; i += 1) { const current = rawArgs[i]; switch (current) { case "--username": case "-u": args.username = rawArgs[++i]; break; case "--max-posts": case "-m": args.maxPosts = Number(rawArgs[++i]); break; case "--headless": args.headless = rawArgs[++i] !== "false"; break; case "--no-headless": args.headless = false; break; case "--storage-state": case "-s": args.storageStatePath = rawArgs[++i]; break; case "--include-raw": args.includeRaw = true; break; case "--model": args.model = rawArgs[++i]; break; case "--wait-until": args.waitUntil = rawArgs[++i]; break; case "--quiet": args.quiet = true; break; case "--verbose": args.verbose = true; break; case "--help": case "-h": args.help = true; i = rawArgs.length; // exit loop break; default: if (!args.username) { args.username = current; } else { console.warn(`Unrecognised argument: ${current}`); } break; } } return args; } function printHelp() { console.log(`Usage: node src/debug-run.js [options] <username> Options: -u, --username <handle> Instagramハンドル (@なしでも可) -m, --max-posts <number> 取得する投稿数 (最大50) --headless <true|false> Playwrightのヘッドレス設定を上書き --no-headless 常にヘッドレス無しで実行 -s, --storage-state <path> storageState.json のパス --include-raw レスポンスに生JSONを表示 --model <name> OpenAIモデルを指定 --wait-until <event> Playwright page.goto の waitUntil (既定: domcontentloaded) --verbose 進捗ログを詳細表示 --quiet ログ出力を抑制 -h, --help このヘルプを表示 例: node src/debug-run.js tanaka_insta node src/debug-run.js --username tanaka_insta --max-posts 6 --no-headless --verbose `); } async function main() { const args = parseArgs(process.argv); if (args.help) { printHelp(); return; } const username = args.username; if (!username) { printHelp(); throw new Error("ユーザー名を指定してください"); } const logPrefix = args.verbose ? "[debug]" : ""; const logger = args.quiet ? undefined : (message) => { if (args.verbose) { console.log(`${logPrefix} ${message}`); } else { // 非verboseでも簡易ログは表示 console.log(message); } }; const scrapeOptions = { maxPosts: Number.isFinite(args.maxPosts) ? args.maxPosts : undefined, headless: args.headless, storageStatePath: args.storageStatePath, waitUntil: args.waitUntil, logger, }; if (!args.quiet) { console.log(`➡️ ${username} のプロフィールを取得します...`); } const profileData = await scrapeProfile(username, scrapeOptions); if (!args.quiet) { console.log("✅ スクレイピング完了"); } const report = await generateReport(profileData, { model: args.model, logger }); console.log("\n--- 要約 ---\n"); console.log(report.summary); if (args.includeRaw) { console.log("\n--- 生JSON ---\n"); console.log(JSON.stringify(profileData, null, 2)); } } main().catch((error) => { console.error("デバッグ実行中にエラーが発生しました:", error.message); process.exitCode = 1; });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/inoue2002/instagram-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server