{"name":"io.github.HomenShum/nodebench","slug":"homenshum-nodebench","title":null,"description":"260 MCP tools across 49 domains. AI Flywheel, quality gates, research, web scraping.","url":"https://mcp.market/server/homenshum-nodebench","rating":null,"grade":"C","score":66,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":36,"stars":14,"forks":2,"downloads_week":99,"last_push_at":"2026-09-13T01:19:16.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/HomenShum/nodebench-ai","website":null,"version":"2.31.2","remotes":[],"packages":[{"registryType":"npm","identifier":"nodebench-mcp","version":"2.31.2","transport":{"type":"stdio"}}],"tools":[{"name":"Scheduling","description":"Cron-based or event-driven triggering","write_action":false,"price_micros":0,"input_schema":null},{"name":"addDocumentToFolder","description":"Add a document to a folder.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_forecast_evidence","description":"Add evidence to a forecast's ledger. Each entry includes source URL, excerpt, and directional signal (supporting/disconfirming/neutral). Deduplicates by source URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_figma_flows","description":"Full Figma flow analysis pipeline: extract frames from Figma file (depth=3 tree traversal), cluster into flow groups via priority cascade (section > prototype > name-prefix > spatial), and generate overlay visualization. Returns FlowAnalysisResult with flow groups, clustering method, and visualization path. Requires FIGMA_FLOW_SERVER_URL and FIGMA_ACCESS_TOKEN.","write_action":false,"price_micros":0,"input_schema":null},{"name":"applySpreadsheetOperations","description":"Apply batch cell operations to a spreadsheet. Operations: setCell ({op:\"setCell\", row, col, value, type?}), clearCell ({op:\"clearCell\", row, col}).","write_action":false,"price_micros":0,"input_schema":null},{"name":"archiveDocument","description":"Archive (soft-delete) a document and all its children recursively.","write_action":false,"price_micros":0,"input_schema":null},{"name":"archive_content","description":"Save generated content to the archive for deduplication and theme tracking. Prevents the engine from regenerating similar content. Supports digest, post, report, and brief content types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"assess_risk","description":"Assess risk tier for a given action. Returns tier (low/medium/high), reversibility, external impact, and recommendation (auto_approve/log_and_proceed/require_confirmation). Use before executing any non-trivial action.","write_action":false,"price_micros":0,"input_schema":null},{"name":"call_loaded_tool","description":"Call a dynamically loaded tool by name. Use this after load_toolset when your client does not automatically refresh the tool list. Pass the tool name and its arguments. Example: call_loaded_tool({ tool: \"analyze_screenshot\", args: { imagePath: \"screenshot.png\" } }). This is a fallback — if the loaded tool appears in your tool list directly, call it directly instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"capture_surface_stats","description":"Capture Android SurfaceFlinger stats and logcat for jank analysis (Layer 0 only). Returns janky frame counts, missed vsync, slow UI thread metrics, and filtered logcat entries from Choreographer, SurfaceFlinger, WindowManager, ActivityManager, InputDispatcher. Requires FLICKER_SERVER_URL and adb-connected device.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_design_compliance","description":"Check a single .tsx/.ts file for design governance compliance. Runs all banned pattern checks (color, typography, focus, button) plus structural checks for view files (nb-page-shell, empty state, loading state). Returns violations array with line numbers, severity, fix suggestions, and a pass/fail summary. Use after editing UI files to verify compliance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_email_setup","description":"Diagnostic wizard for email tool configuration. Checks env vars (EMAIL_USER, EMAIL_PASS, etc.), optionally tests SMTP/IMAP connections, and returns step-by-step setup instructions for missing pieces. Supports Gmail, Outlook, Yahoo, and custom SMTP/IMAP. Run this FIRST before using send_email or read_emails.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cluster_figma_flows","description":"Cluster Figma frames into flow groups using multi-signal priority cascade: 1) section-based grouping (highest priority), 2) prototype connection Union-Find, 3) name-prefix matching (e.g. 'Login / Screen 1'), 4) spatial proximity (Y-binning + X-gap splitting). Uses first signal that produces >= 2 groups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_eval_runs","description":"Compare two eval runs to decide whether a change should ship. Returns side-by-side scores and a deploy/revert recommendation. Rule: no change ships without an eval improvement.","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_autonomy_benchmark","description":"Finalize an autonomy benchmark run. Computes final score, duration, tool usage stats, and comparison against reference (e.g. Anthropic's C-compiler results). Call when the agent is done or stuck.","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_eval_run","description":"Finalize an eval run and compute aggregate scores. Returns pass rate, average score, failure patterns, and improvement suggestions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"compute_ssim_analysis","description":"Compute block-based SSIM analysis on a set of frame images. Uses 8x8 blocks with parallel ProcessPoolExecutor. Returns SSIM scores, adaptive threshold (max(0.70, median - 2*std)), flicker classification (rapid_oscillation / sustained_change / single_glitch), and severity (HIGH/MEDIUM/LOW).","write_action":false,"price_micros":0,"input_schema":null},{"name":"connect_channels","description":"Connect to multiple information channels for aggressive information gathering. Channels: slack, telegram, discord, email, web, github, docs. Synthesizes findings across channels with source citations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"createDocument","description":"Create a new rich-text document with a title and optional initial content blocks.","write_action":true,"price_micros":0,"input_schema":null},{"name":"createDocumentWithContent","description":"Create a document with pre-built ProseMirror JSON content string.","write_action":true,"price_micros":0,"input_schema":null},{"name":"createFolder","description":"Create a new folder for organizing documents.","write_action":true,"price_micros":0,"input_schema":null},{"name":"createSpreadsheet","description":"Create a new spreadsheet with a name.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_forecast","description":"Create a new forecast with a question, resolution date, and criteria. Optionally set initial probability, base rate, and evidence. Returns forecast ID for subsequent updates.","write_action":true,"price_micros":0,"input_schema":null},{"name":"critter_check","description":"The accountability partner that wants to know everything — answer 'Why are you doing this? Who is it for?' before starting work.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto_price_historical","description":"Get historical daily price data for a cryptocurrency. Optionally filter by date range.","write_action":false,"price_micros":0,"input_schema":null},{"name":"crypto_price_quote","description":"Get the latest cryptocurrency price quote. Accepts symbols like BTC, ETH, or BTC-USD.","write_action":false,"price_micros":0,"input_schema":null},{"name":"decide_re_update","description":"Decide whether to update existing instructions or create new files. Implements 're-update before create' pattern. Returns recommendation: update_existing, create_new, or merge. Always call before creating documentation or instruction files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"diff_outputs","description":"Compare two text or JSON outputs and produce a structured diff with similarity score. Use for model comparison, oracle validation, before/after analysis, or regression detection. Returns added/removed/changed elements with a human-readable summary.","write_action":false,"price_micros":0,"input_schema":null},{"name":"discover_infrastructure","description":"Discover existing agent infrastructure in the codebase. Scans for agent loops, telemetry, evaluation, verification, multi-channel integrations, self-learning systems, and governance patterns. Returns what exists, what's missing, and a bootstrap plan.","write_action":false,"price_micros":0,"input_schema":null},{"name":"draft_email_reply","description":"Structure an email thread for reply drafting. Parses the thread, extracts context (from, subject, date), and builds a reply prompt with your instructions and desired tone. Returns a structured draft ready to review and send via send_email, or to refine via call_llm.","write_action":true,"price_micros":0,"input_schema":null},{"name":"duplicateDocument","description":"Duplicate a document. Clones content, icon, type. Resets visibility and favorite.","write_action":false,"price_micros":0,"input_schema":null},{"name":"economy_gdp","description":"Get the latest GDP data for a country from the World Bank. Defaults to the US.","write_action":false,"price_micros":0,"input_schema":null},{"name":"economy_inflation","description":"Get the latest consumer price inflation rate (CPI) for a country from the World Bank. Defaults to the US.","write_action":false,"price_micros":0,"input_schema":null},{"name":"equity_fundamental_overview","description":"Get a fundamental overview for an equity ticker including price, sector, industry, P/E ratios, market cap, and other key metrics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"equity_price_historical","description":"Get historical daily OHLCV price data for a given equity ticker. Optionally filter by start/end date (YYYY-MM-DD).","write_action":false,"price_micros":0,"input_schema":null},{"name":"equity_price_quote","description":"Get the latest equity/stock price quote for a given ticker symbol. Tries Stooq first, then Yahoo Finance as fallback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"exportDocumentToMarkdown","description":"Export a document to Markdown format. Returns { title, markdown }.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_figma_frames","description":"Extract all frames from a Figma file using depth=3 tree traversal (DOCUMENT -> CANVAS -> SECTION -> FRAME). CRITICAL: uses depth=3 not depth=2 — depth=2 only gets SECTION nodes, missing the FRAME nodes inside them. Returns structured FigmaFrame objects with bounding boxes, section names, and transition targets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"extract_video_frames","description":"Record screen and extract key frames from an Android device (Layers 1+2). Uses adb screenrecord then ffmpeg scene-filtered JPEG extraction. CRITICAL: uses -pix_fmt yuvj420p for ffmpeg 8.x compatibility. Falls back to regular fps extraction if scene filter produces 0 frames.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_flicker_report","description":"Generate visual flicker report from existing analysis data. Produces SSIM timeline chart (1200x400 PNG, PIL-based, no matplotlib) and side-by-side comparison images for flagged flicker events.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_implementation_plan","description":"Generate a structured implementation plan for missing code signatures. Takes the gap analysis from verify_concept_support and produces a step-by-step plan with per-signature requirements and injection strategies. Optionally takes the output of scan_capabilities as context to avoid conflicts with existing patterns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_report","description":"Compile structured findings, eval results, and quality gate data into a formatted markdown report. Useful for summarizing verification cycles, creating audit trails, or generating stakeholder-ready documents.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_self_instructions","description":"Generate self-instructions for the agent in various formats: skills_md (SKILL.md), rules_md (RULES.md), guidelines (internal), claude_md (CLAUDE.md). Includes authoritative source citations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"getDocument","description":"Get a document by ID, including title, content, metadata, and file info.","write_action":false,"price_micros":0,"input_schema":null},{"name":"getFolderWithDocuments","description":"Get a folder and all documents inside it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"getSpreadsheetRange","description":"Get cells within a range from a spreadsheet (row/col coordinates).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ab_test_report","description":"Generate an A/B test comparison report for static vs dynamic toolset loading. Shows session counts, tool counts, load events, error rates, and per-toolset load frequency. Use after running sessions in both modes to evaluate the impact of dynamic loading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_boilerplate_status","description":"Check what NodeBench infrastructure is already set up in a project vs what's missing. Scans for: AGENTS.md, .mcp.json, .parallel-agents/, quality gates, package.json scripts, etc. Returns a gap report with recommendations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_design_spec","description":"Return the full design governance specification as structured JSON. Includes: approved semantic colors, typography classes and uppercase policy, component layout primitives, spacing scale, button classes, focus ring pattern, motion rules, border radius rules, and all banned patterns with fix suggestions. Use this before writing or modifying UI code to ensure compliance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_design_violations","description":"Scan the entire src/ directory for design governance violations. Groups results by file, sorted by severity. Supports filtering by severity (high/medium/low/all) and category (color/typography/layout/states/focus/button/all). Returns summary stats, compliance score (0-100), and top violations up to the limit. Use for project-wide design audits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_engine_context_health","description":"Returns accumulated knowledge health: learnings count + freshness, conformance trend direction (improving/stable/regressing), recent run scores, content archive size, and workflow coverage. Use to understand how much context the engine has built up over time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_figma_design_context","description":"Get design context for a specific component or screen from the codebase governance spec. Returns the relevant design tokens, typography rules, spacing rules, and component patterns that apply. Use this to understand what a component SHOULD look like according to the design system.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_flywheel_status","description":"Get the current state of both loops (Verification inner loop and Eval outer loop) and how they connect. Shows active verification cycles, recent eval trends, and cross-loop connections.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_forecast_evidence","description":"Query evidence ledger for a forecast. Optionally filter by signal direction (supporting/disconfirming/neutral).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_workflow_history","description":"Returns past runs for a specific workflow with scores, grades, step counts, and durations. Use to track conformance improvements over time and identify regression patterns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"listDocuments","description":"List all user documents sorted by last modified (most recent first, up to 200).","write_action":false,"price_micros":0,"input_schema":null},{"name":"listFolders","description":"List all user folders.","write_action":false,"price_micros":0,"input_schema":null},{"name":"listSpreadsheets","description":"List user spreadsheets sorted by last updated.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_available_toolsets","description":"List all available toolsets showing which are currently loaded and which can be dynamically added. Includes tool counts and descriptions for each toolset.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_eval_runs","description":"List recent eval runs with their aggregate scores. Use this to track quality over time and detect drift.","write_action":false,"price_micros":0,"input_schema":null},{"name":"load_toolset","description":"Dynamically load a toolset into the current session. After loading, the tools become immediately available for use. Based on the \"Search+Load\" architecture from Dynamic ReAct (arxiv 2509.20386) — the winning pattern for scalable MCP tool selection. Use discover_tools first to find which toolset you need, then call this to activate it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_benchmark_milestone","description":"Record completion of a benchmark milestone. Tracks which milestones the agent achieved, time taken, tools used, and whether verification passed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"news_company","description":"Get recent news articles for a specific company/ticker symbol from Yahoo Finance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"news_world","description":"Get world/market news headlines. Currently returns a placeholder — requires an external news API for full functionality.","write_action":false,"price_micros":0,"input_schema":null},{"name":"promote_to_eval","description":"Take findings from a completed verification cycle and promote them into eval test cases. This is how the inner loop feeds the outer loop: Phase 4 test results become eval cases, Phase 5 checklists become scoring rubrics, Phase 6 edge cases become adversarial eval cases.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_emails","description":"Read emails from an IMAP mailbox over TLS. Requires EMAIL_USER and EMAIL_PASS env vars. Defaults to Gmail IMAP (imap.gmail.com:993). For Gmail, enable IMAP in Settings and use an App Password. Returns emails with headers (from, to, subject, date) and plain text body. Use IMAP SEARCH syntax to filter.","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_eval_result","description":"Record the actual result for a specific eval case. Include what happened, the verdict (pass/fail/partial), and optionally telemetry data and judge notes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"removeDocumentFromFolder","description":"Remove a document from a folder.","write_action":true,"price_micros":0,"input_schema":null},{"name":"render_flow_visualization","description":"Render flow visualization with colored bounding boxes for each flow group. Supports overlay on a rendered page image or synthetic dark canvas fallback. Handles wide Figma pages (>3:1 aspect ratio) and uses cross-platform fonts (Windows/macOS/Linux with PIL default fallback).","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_job_market","description":"Research job market requirements for a given role or skill set. Provides guidance on in-demand skills, common requirements, and career recommendations. Useful for project ideation, learning priorities, and understanding market needs. Note: Returns curated guidance based on knowledge — for real-time job listings, use web_search with job board queries.","write_action":false,"price_micros":0,"input_schema":null},{"name":"restoreDocument","description":"Restore an archived document and its children.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_autonomous_loop","description":"Execute autonomous verification loop with stop conditions. Implements Ralph Wiggum pattern with checkpoints, iteration limits, and timeout. Use for multi-step autonomous tasks that need guardrails.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_flicker_detection","description":"Run full 4-layer Android UI flicker detection pipeline: SurfaceFlinger stats + logcat (L0), screenrecord (L1), frame extraction + SSIM analysis with adaptive threshold (L2), optional semantic verification (L3). Returns FlickerReport with events, SSIM scores, timeline chart, and comparison images. Requires FLICKER_SERVER_URL and adb-connected device.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_mandatory_flywheel","description":"Enforce the mandatory 6-step AI Flywheel verification after any non-trivial change. All 6 steps must pass before work is considered done. Skipping is only allowed for trivial changes (typo, comment, config) with explicit justification. Real-world example: a variety-check dead-code bug was only caught by running this process after smoke tests passed.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_self_maintenance","description":"Run autonomous self-maintenance cycle. Checks TypeScript compilation, documentation sync, tool counts, test coverage, and more. Can auto-fix low-risk issues. Scope: quick (1hr check), standard (6hr), thorough (24hr analysis).","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_tests_cli","description":"Execute a shell test command with timeout, capture stdout/stderr, and return structured results. Useful for running test suites, linters, or build commands as part of verification workflows.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sandbox_batch","description":"Execute multiple commands, index all outputs, and run multiple search queries — all in ONE call. This is the highest-efficiency tool: one sandbox_batch replaces N sandbox_execute calls + M sandbox_search calls. Use for research phases, multi-file analysis, or any task requiring multiple data sources.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sandbox_execute","description":"Run a shell command, automatically index the output into the sandbox, and return only a summary. The raw stdout/stderr stays in SQLite — only line counts and a preview enter context. Use instead of raw shell execution for commands that produce large output (build logs, test results, file listings, git logs).","write_action":true,"price_micros":0,"input_schema":null},{"name":"sandbox_ingest","description":"Index arbitrary text into the context sandbox (FTS5). Raw content stays in SQLite — only a compact reference enters context. Use for large outputs, API responses, file contents, or any data you want searchable without flooding the context window.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sandbox_search","description":"BM25-ranked full-text search across all sandboxed content. Pass multiple queries as an array to batch all questions in one call. Use after sandbox_ingest or sandbox_execute to retrieve relevant snippets without pulling raw data into context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sandbox_stats","description":"Show context savings for the current session — per-tool breakdown, total bytes indexed vs returned, savings ratio, and estimated token savings. Use to quantify how much context window space the sandbox has preserved.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scaffold_directory","description":"Scaffold directory structure following OpenClaw patterns. Creates organized subdirectories and placeholder files for: agent_loop, telemetry, evaluation, verification, multi_channel, self_learning, governance.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scaffold_nodebench_project","description":"Create a complete project template pre-configured for nodebench-mcp. Generates: package.json, AGENTS.md, .mcp.json, .parallel-agents/, .github/workflows/, tsconfig.json, .gitignore, README.md, and src/ directory. Everything an agent needs to start working immediately with the full AI Flywheel methodology. Use dryRun=true (default) to preview what will be created.","write_action":true,"price_micros":0,"input_schema":null},{"name":"scan_capabilities","description":"Analyze a source file for structural code patterns. Returns a capability report showing what the code can structurally DO — state management (hooks, refs, reducers), layout (overlay, sidebar, grid, responsive), interactions (keyboard, drag-drop, clipboard, voice, touch), rendering (markdown, code highlighting, math, streaming), and backend patterns (REST routes, middleware, DB queries, auth guards","write_action":false,"price_micros":0,"input_schema":null},{"name":"searchDocuments","description":"Search documents by title and content (full-text search).","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_content_archive","description":"Search past content by theme, title, or keywords using FTS5 full-text search. Use before generating new content to check what's already been covered and avoid repetition.","write_action":false,"price_micros":0,"input_schema":null},{"name":"self_implement","description":"Self-implement missing agent infrastructure. Generates implementation plan and code templates for: agent_loop, telemetry, evaluation, verification, multi_channel, self_learning, governance. Uses dry-run by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_email","description":"Send an email via SMTP over TLS. Requires EMAIL_USER and EMAIL_PASS env vars. Defaults to Gmail SMTP (smtp.gmail.com:465). For Gmail, use an App Password (Google Account → Security → 2-Step Verification → App passwords). Override host/port with EMAIL_SMTP_HOST and EMAIL_SMTP_PORT. Supports plain text and HTML multipart.","write_action":true,"price_micros":0,"input_schema":null},{"name":"setup_local_env","description":"Discover and diagnose the local development environment. Checks for available API keys, installed SDKs, Node.js version, package manager, and git status. Returns suggestions for setting up missing components. Use this to help agents bootstrap their tooling or diagnose issues. Fully local — no external calls.","write_action":false,"price_micros":0,"input_schema":null},{"name":"smart_select_tools","description":"LLM-powered tool selection: sends your task description + a compact tool catalog to a fast model (Gemini 3 Flash, GPT-5-mini, or Claude Haiku 4.5) to pick the best 5-10 tools. Much more accurate than keyword search for ambiguous queries like \"call an AI model\" or \"analyze my data\". Requires GEMINI_API_KEY, OPENAI_API_KEY, or ANTHROPIC_API_KEY. Falls back to heuristic discover_tools if no API key i","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_autonomy_benchmark","description":"Start an autonomous capability benchmark. Defines a complex build challenge and tracks agent progress through milestones. Inspired by Anthropic's C-compiler test. Available challenges: c_compiler, rest_api, fullstack_app, cli_tool, data_pipeline. Call with challenge=\"list\" to see all options.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_eval_run","description":"Start a new eval run. Define the test batch upfront with test cases (input, intent, expected behavior), then record results as each case is executed. Rule: no change ships without an eval improvement.","write_action":true,"price_micros":0,"input_schema":null},{"name":"sync_figma_tokens","description":"Pull Figma design token variables from a Figma file and compare against the codebase's CSS custom properties (src/index.css). Reports drift: tokens in code but not Figma, tokens in Figma but not code, and value mismatches. Requires FIGMA_ACCESS_TOKEN env var.","write_action":false,"price_micros":0,"input_schema":null},{"name":"trigger_investigation","description":"When an eval run shows regression, trigger a new verification cycle to investigate. This is how the outer loop feeds the inner loop: regressions trigger 6-phase investigations.","write_action":false,"price_micros":0,"input_schema":null},{"name":"triple_verify","description":"Run triple verification on agent implementation. V1: Internal codebase analysis. V2: External authoritative source validation (Anthropic, OpenAI, LangChain, etc.). V3: Synthesis with recommendations and source citations. Optionally generates self-instructions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"unload_toolset","description":"Remove a dynamically loaded toolset from the current session to free up context. Cannot unload toolsets from the initial preset.","write_action":true,"price_micros":0,"input_schema":null},{"name":"updateDocument","description":"Update document fields: title, content, icon, visibility, favorite status.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_agents_md","description":"Read, append, or update sections in the AGENTS.md file. This file contains instructions for AI agents working on the project. Use 'read' to see current contents and sections, 'append' to add new content at the end, or 'update_section' to replace a specific section's content. Creates AGENTS.md from template if it doesn't exist. IMPORTANT: Every section MUST include `**→ Quick Refs:**` for agent chu","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_forecast_probability","description":"Update a forecast's probability with reasoning. Records the change in update history for audit trail and forecast diffs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_concept_support","description":"Check if a source file contains all required code signatures for a concept. Provide a concept name and a list of regex patterns that MUST exist for the concept to be considered implemented. Returns match score (0-100%), status (Fully/Partially/Not Implemented), evidence found, and gap analysis. Results are persisted to SQLite for tracking progress over time.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":66,"grade":"C","scanned_at":"2026-09-28T06:07:54.634Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-28T06:07:54.625Z","components":{"code":{"score":8,"max":25,"notes":["157 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 15 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/tools/selfEvalTools.js: …e. Must have: tests (log_test_result) + eval (promote_to_eval) + quality gate (run_qua…"},{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/tools/uiUxDiveAdvancedTools.js: … === \"win32\") { execSync(`start \"\" \"${fullUrl}\"`, { stdio: \"ignore\" }); …"}],"inputs":{"packages":[{"registryType":"npm","identifier":"nodebench-mcp","version":"2.31.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-03-06T04:47:58.263Z","repositoryUrl":"git+https://github.com/HomenShum/nodebench-ai.git","weeklyDownloads":99}],"repo":{"found":true,"owner":"HomenShum","repo":"nodebench-ai","archived":false,"pushedAt":"2026-09-13T01:19:16Z","stars":14,"forks":2,"openIssues":12,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/77596827?v=4","ownerCreatedAt":"2021-01-18T01:54:59Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/77596827?v=4&s=128","source":"github"},"presence":{"stars":14,"forks":2,"downloadsWeek":99,"license":"MIT","lastPushAt":"2026-09-13T01:19:16.000Z","score":36}}}},"grade_history":[],"reviews":[]}