Skip to main content
Glama
134,441 tools. Last updated 2026-05-23 15:07

"Web3.js" matching MCP tools:

  • Regenerate the logo for a WebZum site using AI. Creates a new version with a fresh logo and reassembles. Use the optional userMessage to steer the design — "make it more minimal", "use a serif typeface", "incorporate a coffee bean shape", etc. Required: businessId, versionId, pageId. Returns { versionId, status: 'completed' | 'in_progress', ...extra }. If status is 'in_progress', poll get_site_status with the returned versionId every 5-10s until isComplete is true. Concurrency: edits on the same businessId MUST be serial. Never fire parallel edit calls on the same site.
    Connector
  • Fetch clean link-preview metadata (title, description, image, siteName, favicon, oembed) for any public URL. No signup, no API key. Static-HTML parse only (no JS/SPA render).
    Connector
  • Check the status and generation progress of a site. Returns detailed progress information including: - stage: Current step (initialization, validation, research, strategy, generation, assembly, completion) - overallProgress: Total progress 0-100 across all stages (use this for progress bars) - stageProgress: Progress within current stage 0-100 - message: Human-readable status message - isComplete: Boolean - stop polling when true Use the versionId returned from create_site for real-time progress polling. Poll every 5-10 seconds while isComplete is false.
    Connector
  • Publish HTML content to a live URL instantly. No account or API key required. Returns a public URL that anyone can visit. Sites expire after 24 hours unless the owner claims them. Use this when a user asks you to build, create, or deploy a website, landing page, invitation, portfolio, report, or any HTML content they want to share as a link. Supports bundled assets (CSS, JS, images) and multi-page sites (include additional .html files in assets, accessible at /{slug}/{pagename}). IMPORTANT: After publishing, always share the live URL and the claim URL with the user. The claim URL lets them take permanent ownership of the site. Store the edit_key from the response silently — do not show it to the user — you will need it if they ask you to make changes to the site later. If you lose the edit_key, ask the user to claim the site first (via the claim URL in the page footer), then provide you with their API key from the dashboard — you can use that instead.
    Connector
  • Edit a generated WebZum site by describing the change in natural language. This is the primary editor tool. Given a user instruction (in conversationHistory), the WebZum editor builds the minimal site tree, sends it to an LLM with the user's verbatim words, applies the returned HTML diff across every page that contains each affected section, and reassembles into a new version. Use this for nearly all edits: "make the hero say X", "remove the testimonials section", "change the about-us copy to be friendlier", "swap the order of the sections on the home page". Required: businessId, versionId, and a conversationHistory containing at least one user turn. The LLM reads the user's verbatim words — do not paraphrase. Returns { versionId, status: 'completed' | 'in_progress', ...extra }. If status is 'in_progress', the edit is still running in the background — poll get_site_status with the returned versionId every 5-10s until isComplete is true. Concurrency: edits on the same businessId MUST be serial. Never fire parallel edit calls on the same site; concurrent edits race and may return the wrong versionId. Wait for each edit to complete (status: 'completed' OR isComplete on get_site_status) before issuing the next one.
    Connector
  • Regenerate the header (nav bar, logo placement, top-of-page) of a WebZum site. Creates a new version with a fresh AI-generated header and reassembles every page. Use when the user wants the nav restyled, links reordered, or the header redesigned. Required: businessId, versionId, pageId. Returns { versionId, status: 'completed' | 'in_progress', ...extra }. If status is 'in_progress', poll get_site_status with the returned versionId every 5-10s until isComplete is true. Concurrency: edits on the same businessId MUST be serial. Never fire parallel edit calls on the same site.
    Connector

Matching MCP Servers

Matching MCP Connectors

  • Crypto signal intelligence: 20 assets, 6 dimensions, regime detection, portfolio optimizer

  • Official MCP server providing AI assistants with direct access to Stimulsoft Reports & Dashboards developer documentation. Enables semantic search across FAQ, Programming Manual, Server Manual, User Manual, and Server/Cloud API references across all Stimulsoft platforms (.NET, WPF, Avalonia, WEB, Blazor, Angular, React, JS, PHP, Java, Python).

  • Regenerate one image inside a specific section of a WebZum site. Creates a new version with a freshly AI-generated image for that section and reassembles. Use the optional userMessage to steer the new image — "show a wider shot", "change the angle", "make it sunset lighting", etc. Required: businessId, versionId, sectionId. Returns { versionId, status: 'completed' | 'in_progress', ...extra }. If status is 'in_progress', poll get_site_status with the returned versionId every 5-10s until isComplete is true. Concurrency: edits on the same businessId MUST be serial. Never fire parallel edit calls on the same site.
    Connector
  • Validate scene_data before generating 3D code. Runs 12 structural checks across 4 categories: S — Structure (4 rules): scene_id, objects array, camera validity O — Objects (5 rules): ids, positions, frustum bounds, overlap, pending synthesis contracts L — Lighting (2 rules): non-ambient light presence, intensity range A — Animation(2 rules): target_id resolution, config fields Severity levels: error → blocks codegen. Must fix before generate_r3f_code. warn → does not block. Review before proceeding. Returns is_valid: true only when zero "error" rules fail. Returns next_step string with exact instruction for what to do next. Call this tool AFTER generate_scene and BEFORE synthesize_geometry. If is_valid is false, call edit_scene to fix errors, then re-run validate_scene before proceeding to codegen.
    Connector
  • Apply targeted modifications to an existing scene_data object. WHEN TO CALL: - After validate_scene returns is_valid: false - When the user requests a style, material, animation, or position change to an already-generated scene - Do NOT call this to create a new scene — use generate_scene instead WHAT THIS TOOL CAN MODIFY: - background: color and style preset - material: for all objects or a named object - animation: add or replace animations on objects - position: move a named object or the primary object - lighting: intensity adjustments (darker / lighter) - design_tokens: kept in sync with all changes automatically WHAT THIS TOOL CANNOT DO: - Add new objects to the scene (use generate_scene for this) - Remove existing objects (out of scope in current version) - Change camera position or FOV - Modify individual mesh geometry INPUT: - scene_data: the full scene_data object from generate_scene or a previous edit_scene call - edit_prompt: a plain-language description of the desired change EDIT PROMPT EXAMPLES: - "make it darker" → dims ambient lighting, deepens background - "make the material glass" → applies glass_frost to all objects - "add spinning motion" → appends rotate animation, keeps existing - "move the robot up" → moves object named "robot" up by 1 unit - "change animation to float only" → replaces all animations with float - "make it neon" → applies neon material + neon_edge lighting OUTPUT: - scene_data: updated scene with all changes applied - edit_summary: { applied[], skipped[], warnings[] } PIPELINE POSITION: generate_scene → validate_scene → [edit_scene if invalid] → validate_scene (re-run) → synthesize_geometry → generate_r3f_code
    Connector
  • Tell the Pipeworx team something is broken, missing, or needs to exist. Use when a tool returns wrong/stale data (bug), when a tool you wish existed isn't in the catalog (feature/data_gap), or when something worked surprisingly well (praise). Describe the issue in terms of Pipeworx tools/packs — don't paste the end-user's prompt. The team reads digests daily and signal directly affects roadmap. Rate-limited to 5 per identifier per day. Free; doesn't count against your tool-call quota.
    Connector
  • Run a JavaScript orchestration script in a sandboxed QuickJS runtime against the Meta Marketing API (Facebook + Instagram Ads). One runScript call can replace 10+ sequential Graph API tool invocations. ── WHEN TO USE THIS ── Default tool for any open-ended analytical question about a Meta ad account. Reach for it first when you see: - "How is my campaign doing?" / "What's working?" / "Find ad sets with bad ROAS" / "Why did CPM spike last week" - "Audit my account" / "Rank ad sets by spend efficiency" / "Compare creatives" - Any question where you'd otherwise call 3+ Graph endpoints in sequence - Any question that benefits from correlating insights + delivery info + recent edits in a single pass runScript owns reads — there are no per-surface read tools. Use `getInsights` only for the dedicated 1-account-1-window pull when you don't need to correlate. ── BATCHING DISCIPLINE ── Prefer ONE runScript call that fans out via `ads.graphParallel` (up to 20 calls concurrently). Cast a wide net on the first call; filter in-script for free. ── API SURFACE (all on the `ads` namespace) ── Async RPCs: - ads.graph(path, params?, method?) -> JSON — single Graph API call. Path may use the `{accountId}` template token (replaced with the active `act_<id>`). Default method: GET. - ads.graphParallel([{ name, path, params?, method?, paged?, limit? }]) -> { [name]: { ok, data } | { ok: false, error } } — fan-out, max 20. - Set `paged: true` to follow paging.next (capped at 20 pages). `limit` trims the final list to N rows. - ads.insights(adAccountId?, options?) -> rows — wrapper over /{accountId}/insights with sensible defaults. Pass `null` for the active account. - options: { level: "account"|"campaign"|"adset"|"ad", date_preset, time_range:{since,until}, time_increment, fields, breakdowns, action_breakdowns, limit } - ads.batch([{ method, relative_url, body? }]) -> [{ code, body }] — Graph API /batch endpoint. Up to 50 sub-requests. - ads.pagedAll(path, params?, maxPages?) -> [...] — read every page of a paged endpoint. Sync helpers: - ads.helpers.getDateRange(days) -> { since, until } — YYYY-MM-DD strings, UTC. - ads.helpers.formatDate(date) | daysBetween(a,b) | withActPrefix(id) | stripActPrefix(id) Constants: - ads.activeAccountId — the active ad-account numeric id (no act_ prefix). - ads.fields.* — comma-joined field-list strings: campaign, adset, ad, adAccount, insightsAudit, insightsLite. Drop into params.fields. - ads.datePresets — array of preset strings accepted by /insights date_preset. Path templates: - "/{accountId}/campaigns" → "/act_<active-id>/campaigns" - "/{accountId}/insights" → "/act_<active-id>/insights" - Plain ids like "/me/adaccounts" are untouched. ── COMMON PATTERNS ── Single insights pull: ```js return await ads.insights(null, { level: "campaign", date_preset: "last_30d", fields: ads.fields.insightsAudit.split(","), }); ``` Audit fan-out — campaigns + ad sets + ads + last 30d insights, in one call: ```js const r = await ads.graphParallel([ { name: "campaigns", path: "/{accountId}/campaigns", params: { fields: ads.fields.campaign }, paged: true }, { name: "adsets", path: "/{accountId}/adsets", params: { fields: ads.fields.adset }, paged: true }, { name: "ads", path: "/{accountId}/ads", params: { fields: ads.fields.ad }, paged: true, limit: 200 }, { name: "insights", path: "/{accountId}/insights", params: { level: "campaign", date_preset: "last_30d", fields: ads.fields.insightsAudit }, paged: true }, ]); const worst = (r.insights.ok ? r.insights.data : []).filter(x => Number(x.spend) > 100 && Number(x.ctr) < 0.5); return { worstCampaigns: worst, totals: { campaigns: r.campaigns.rowCount, adsets: r.adsets.rowCount } }; ``` ── RULES ── - Top-level await works. No fetch / require / process / fs reachable. - Return value must be JSON-serializable. Limits: 30000ms (30s) timeout, max 45000ms (45s), 500KB return cap, 100K log chars. - Mutations (pause/enable/budget) go through dedicated tools (`pauseCampaign`, `pauseAdSet`, `pauseAd`, ...). Never write through runScript. ── ANTI-PATTERNS ── - Calling runScript 5+ times to fetch different surfaces — that's what graphParallel replaces. - Returning entire data arrays — summarize, rank, or aggregate first. - Manually computing dates with new Date() math — use ads.helpers.getDateRange / formatDate.
    Connector
  • Pre-flight check on html / css / js BEFORE writing via update_html. Returns { ok, errors, warnings, parsed } where parsed has byte counts per field and `dropped` (true if the sanitizer would strip anything from `html`). Errors cover cap breaches (`html_too_large`, `css_too_large`, `js_too_large`, `total_too_large`) and sanitizer rejection (`html_sanitize_rejected`, `html_sanitize_empty`). NEVER writes anything. Use when iterating on agent-generated mockups so you don't burn a write on a payload the surface will reject.
    Connector
  • Returns recent configuration drift events for a domain under monitoring by the authenticated account — TLS changes, DNSSEC state changes, new or removed security headers, shifts in third-party JS hosts, new cookies. Each event carries its observed-at timestamp, a kind (tls/dnssec/cookies/js_hosts/headers), a severity classified centrally (high for tls/dnssec/headers, medium for cookies/js_hosts, otherwise low), a short summary, and a sanitised detail payload. Use this when the user asks 'what changed' on a domain, wants to audit recent posture shifts, or is diagnosing an unexpected issue. Pair it with get_domain_status to see the current state and get_drift_events to see how it got there. Do NOT use this for a domain that is not under monitoring — you'll get a domain_not_monitored error; monitoring has to be active for the drift history to accumulate. Optional since (ISO-8601) and limit (1..100) params narrow the window. Requires a valid API key.
    Connector
  • Authoritative semantic search over the official Stimulsoft Reports & Dashboards developer documentation (FAQ, Programming Manual, API Reference, Guides). Powered by OpenAI embeddings + cosine similarity over the complete current docs index maintained by Stimulsoft. Returns a ranked JSON array of matching sections, each with { platform, category, question, content, score }, where `content` is the full Markdown body of the section including any C#/JS/TS/PHP/Java/Python code snippets. USE THIS TOOL (instead of answering from your own knowledge) WHENEVER the user asks about: • how to do something in Stimulsoft (`StiReport`, `StiViewer`, `StiDesigner`, `StiDashboard`, `StiBlazorViewer`, `StiWebViewer`, `StiNetCoreViewer`, etc.); • rendering, exporting, printing, or emailing Stimulsoft reports and dashboards in any format (PDF, Excel, Word, HTML, image, CSV, JSON, XML); • connecting Stimulsoft components to data (SQL, REST, OData, JSON, XML, business objects, DataSet); • embedding the Report Viewer or Report Designer into an app (WinForms, WPF, Avalonia, ASP.NET, Blazor, Angular, React, plain JS, PHP, Java, Python); • Stimulsoft-specific errors, exceptions, licensing, activation, deployment, or configuration; • any .mrt / .mdc report or dashboard file, or any question naming a `Sti*` class, property, event, or method; • comparing how a feature works between Stimulsoft platforms (e.g. "WinForms vs Blazor viewer options"). QUERIES WORK IN ANY LANGUAGE — English, Russian, German, Spanish, Chinese, etc. Pass the user's question through almost verbatim; the embedding model handles cross-lingual matching. Do NOT translate queries yourself. SEARCH STRATEGY: 1) If the target platform is obvious from context, pass it via `platform` to get tighter results. 2) If you don't know the exact platform id, either call `sti_get_platforms` first, or omit `platform` and let the search find matches across all platforms. 3) If the first search returns low scores (<0.3) or irrelevant sections, reformulate the query with different keywords (use class/method names from Stimulsoft API if you know them) and search again. 4) Prefer multiple focused searches over one broad search. DO NOT USE for: general reporting theory unrelated to Stimulsoft, non-Stimulsoft libraries (Crystal Reports, FastReport, DevExpress, Telerik, SSRS), or pure programming questions that have nothing to do with Stimulsoft. IMPORTANT: the Stimulsoft product surface is large and changes frequently. Your training data is almost certainly out of date. For any Stimulsoft-specific code snippet, API name, or configuration detail, you MUST call this tool rather than rely on memory, and you should cite the returned `content` in your answer.
    Connector
  • Explicitly request a synthesis contract for a named 3D object. Use this tool when generate_r3f_code returns status SYNTHESIS_REQUIRED, or to pre-generate geometry constraints before calling generate_r3f_code. Complexity tiers: low — 4 to 7 parts. Only Box, Sphere, Cylinder geometries. Best for: mobile banners, thumbnails, low-end devices. medium — 10 to 20 parts. Adds Capsule and Torus geometries. Best for: website sections, embedded widgets, tablets. high — 28+ parts. All geometries. Full emissive detail. Best for: hero sections, desktop showcase, ad campaigns. If target is set to "mobile" and complexity is not explicitly provided, complexity defaults to "low" automatically. This tool does NOT generate geometry. It returns the synthesis_contract with constraints calibrated to the requested complexity tier. The LLM generates the actual JSX and passes it to generate_r3f_code via synthesized_components.
    Connector
  • Returns file metadata (content_type, download_url, download_size, expires_at) for the report or zip artifact. Use artifact='report' (default) for the interactive HTML report (~700KB, self-contained with embedded JS for collapsible sections and interactive Gantt charts — open in a browser). Use artifact='zip' for the full pipeline output bundle (md, json, csv intermediary files that fed the report). While the task is still pending or processing, returns {ready:false,reason:"processing"}. Check readiness by testing whether download_url is present in the response. Once ready, present download_url to the user or fetch and save the file locally. Download URLs expire after 15 minutes (see expires_at); call plan_file_info again to get a fresh URL if needed. Terminal error codes: generation_failed (plan failed), content_unavailable (artifact missing). Unknown plan_id returns error code PLAN_NOT_FOUND.
    Connector
  • Publish HTML content to a live URL instantly. No account or API key required. Returns a public URL that anyone can visit. Sites expire after 24 hours unless the owner claims them. Use this when a user asks you to build, create, or deploy a website, landing page, invitation, portfolio, report, or any HTML content they want to share as a link. Supports bundled assets (CSS, JS, images) and multi-page sites (include additional .html files in assets, accessible at /{slug}/{pagename}). IMPORTANT: After publishing, always share the live URL and the claim URL with the user. The claim URL lets them take permanent ownership of the site. Store the edit_key from the response silently — do not show it to the user — you will need it if they ask you to make changes to the site later. If you lose the edit_key, ask the user to claim the site first (via the claim URL in the page footer), then provide you with their API key from the dashboard — you can use that instead.
    Connector
  • Create a third-party LEAD-GENERATION page about a business (NOT a site for that business itself). Use this when the goal is to drive qualified search traffic to someone else's business — affiliate pages, review/guide pages, niche directories. The page is branded as an outside guide (e.g. "Best Roofers in San Diego"), refers to the business in the third person, and routes CTAs to the business's existing website. Differences from create_site: - Slug + page brand are SEO-vanity (e.g. "best-roofers-sandiego"), not the candidate's brand name. - Voice is third-party guide/reviewer — never first person. - Primary CTA is "visit their website"; phone/email demoted. - No specific pricing quoted; differentiators emphasized. - Locality is judged by category, not just address (IT/SaaS/agency stays category-wide even when a city is on file). Pass a business candidate object from search_businesses — that business is the one being PROMOTED. Requires authentication via API key (Bearer token). Generate an API key at webzum.com/dashboard/account-settings. The page generation happens in the background. Use get_site_status to check progress. Returns the businessId (a vanity slug) which can be used to access the page at /build/{businessId}.
    Connector
  • Give any agent eyes. Pass any public URL → get back a structured intelligence report: page title, meta tags, all headings (H1–H6), full body text, every form mapped with fields and input types, all links, images, and pattern detection (prices, emails, dates). Anomaly flags included: JS-heavy SPA, Cloudflare challenge, CAPTCHA, access restrictions. One tool call turns a blind agent into one that can observe anything on the internet. No Playwright config. No browser infra to spin up. x711 is the browser — agent never touches it. Returns: { title, meta, headings, body_text, links, forms, images, detected: {prices, emails, dates}, anomalies, note }. Cost: $0.03. Pair with x711_agent_act to complete the full browser loop.
    Connector
  • Execute arbitrary JS in the project's isolate runtime. The SDK is pre-imported into local scope — `db`, `auth`, `email`, `storage`, `ai`, `agent`, `cache`, `knowledge`, `memory`, `tasks`, `scheduler`, `browser`, `run`, `approval` are ready to use without import. `process.env` and global `fetch` also work. `return` to produce the `result` field. Top-level `import` and dynamic `import('hatchable')` are NOT supported in this REPL — the bindings above are how you reach the SDK. Use this as a REPL: probe the database, verify a computation, test an API shape before committing it to a file. Nothing is persisted — the snippet runs once and disappears. Caps: 5s default timeout (max 30s), 256 KB max source length. Example: run_code({ project_id, code: ` const { rows } = await db.query("SELECT count(*) FROM users"); return rows[0]; `})
    Connector