Skip to main content
Glama
306,485 tools. Last updated 2026-07-27 00:37

"How to run a Python script in a sandboxed environment" matching MCP tools:

  • Aggregate dossier check: Run all 10 Domain Dossier checks — dns, mx, spf, dmarc, dkim, tls, redirects, headers, cors, web-surface — in parallel and return all results in a single response. Use when you need a comprehensive domain health snapshot in one call; counts as ONE paywall call regardless of how many checks run. For a single focused check, prefer the individual dossier_* tools to minimise latency. Fires all 10 checks concurrently via Cloudflare DoH or direct HTTPS, 5 s per-check timeout. Returns a JSON object keyed by check id (dns, mx, etc.), each value a CheckResult discriminated union ({status:"ok",...} or {status:"error", reason}).
    Connector
  • Run a deterministic, precompiled recipe on Bowmark's backend and get the result directly — no browser needed on your side. Call this ONLY when an `ask` envelope came back with an `executable` block; the `script_id` comes from there. `inputs` maps each param in the envelope's `executable.param_schema` to a value (e.g. `{ "zip": "94107" }`). Provide every required param. Response is one of: - `{ status: "ok", outputs: {...} }` — `outputs` is the live, freshly-fetched data. Use it directly. One caveat: an output the envelope's `executable.outputs` marked `kind: "region"` is a bounded TEXT REGION known to CONTAIN the answer (used for obfuscated pages with no clean field), NOT the literal value — read the final answer out of that text yourself; a plain (no `kind`) output is the literal value. - `{ status: "fell_back", reason }` — the script didn't run clean. DROP BACK to the envelope's `ui_procedure` and execute it yourself. A compiled script is an optimization, never the only path. Do NOT call this without a `script_id` from an `executable` block — there is no script to run otherwise.
    Connector
  • Read or search ClearPolicy documentation pages via a sandboxed virtual filesystem (rg, cat, head, tree, ls, etc.). Prefer search-docs for conceptual questions; use this when you need exact page content, keyword/regex matches, or docs structure. Paths are documentation pages (e.g. /guides/reminders.mdx), not the customer organization.
    Connector
  • Attach a file to a memory. Three modes: (1) REUSE an existing asset by passing just asset_id + memory_id; (2) REGISTER a new file uploaded via get_signed_upload_url by passing storage_path + mime_type + asset_class; (3) UPLOAD a new file inline by passing file_base64 + mime_type + asset_class. ONLY use mode 3 from network-restricted clients that cannot PUT directly to storage (e.g. sandboxed code-execution). Every other client MUST use get_signed_upload_url instead — passing file_base64 from a normal client dumps the whole file into the model's context. Inline uploads are capped at 5 MB; for larger files on a network-restricted client, POST the raw bytes to /api/upload (multipart/form-data, 'file' field) to get a storage_path, then call attach_asset in mode 2 with that path. The link row is always created in the same call. A new asset inherits its parent memory's space. Pass exactly one of asset_id, storage_path, or file_base64. NOTE: if you are in a network-restricted environment that blocks *.supabase.co entirely, use get_upload_link to generate a browser URL and have the user upload directly.
    Connector
  • USE WHEN reading the full content of a Pine Script v6 documentation file. Returns the file content; when limit is set, a header shows the char range and offset to continue reading. AFTER calling this tool, use offset=<end> to continue if the header indicates more content is available. For large files (ta.md, strategy.md, collections.md, drawing.md, general.md), prefer list_sections() + get_section() instead. Data sourced from bundled Pine Script v6 documentation.
    Connector

Matching MCP Servers

  • F
    license
    -
    quality
    B
    maintenance
    Enables any MCP-compatible AI assistant to search, filter, and retrieve information from a local document collection using a hybrid search pipeline with vector, BM25, reranking, and LLM enrichment.
    Last updated
    4
  • A
    license
    -
    quality
    F
    maintenance
    Enables secure execution of Python code in a sandboxed WebAssembly environment using Pyodide and Deno. Automatically handles package management and captures complete execution results including stdout, stderr, and return values.
    Last updated
    191
    MIT

Matching MCP Connectors

  • Manage your Canvas coursework with quick access to courses, assignments, and grades. Track upcomin…

  • 连板网A股复盘数据: 连板天梯/题材/情绪周期/龙虎榜游资/个股涨停史 (A-share daily review, free read-only)

  • Browse individual decoded ads from Heista's corpus of real winning Meta/TikTok creative. Takes optional filters: vertical, creative_format, marketing_angle, hook_type, algo_intent, brand (partial name match), and limit (1-10, default 5). Each result returns beat timeline, classification, psychology, runtime performance signals (active days on Meta when available), and a decode id you can pass into generate_adscript with source_type="decode" to write a fresh script on that exact structure. Free, read-only, idempotent — no credits consumed. Use this when the user wants a specific ad as a script template (not an averaged formula), asks "show me winning ads in [vertical]", "what are [brand]'s top ads", or wants to see examples before committing to a generation. Source discovery surface — the response is the spine; for the full bundle with transcripts and director's read, call get_decode by id afterwards. Do NOT use to decode a NEW ad from a URL — use decode_ad (paid). Do NOT use for category-level patterns abstracted across multiple ads — use adformula_intelligence. Do NOT use to write the script itself — use generate_adscript or write directly from the bundle.
    Connector
  • Find which documentation SETS exist whose NAME matches a substring (e.g. "python" → Python 3.x, "react" → React). Returns doc SETS, NOT their content — this does NOT look up a function/method/API name. To search inside a doc for an entry like "Array.map" or "fetch", use search_index (slug + query).
    Connector
  • Get the connected user's profile, plan, onboarding state, team memberships, and note quota in a single call. Call this once at the start of a conversation so you can greet the user by first name, run the onboarding script only when needed, route notes to the right team space, and avoid suggesting Pro features to free users. Returns onboarding.completed (boolean) and onboarding.missing_steps (array of 'connect_mcp' | 'first_note'), which together tell you what, if any, setup is left. May include a `nudge` (key, message, url) — one frequency-capped suggestion; see the NUDGES section of the server instructions for how to handle it. Exposes the user's email address and plan — same data the user sees in account settings, but never billing or token metadata. No parameters required.
    Connector
  • Get a presigned upload form for any file — video, audio, or document (markdown, HTML, DOCX, etc.). It expires in 15 minutes. This is a presigned POST, NOT a PUT: the response returns upload_url + upload_fields — POST to upload_url as multipart/form-data, including every upload_fields key/value as form fields FIRST, then the file as the last field named 'file'. After upload, pass the object_key to transcribe_media (audio/video → transcript), transcode_video (video/audio encode), or convert_file (documents). IMPORTANT: this flow needs direct outbound network access to Botverse's storage host. In sandboxed agent environments (claude.ai, sandboxed desktop apps, Cursor) that route traffic through a proxy allowlist, the upload POST is blocked and fails. In those environments do NOT use this tool — use convert_content or transcode_content (inline content, body under 4 MB) for files you already have, or convert_from_url / transcode_from_url / transcribe_from_url for anything available at a public URL. Neither needs an upload step.
    Connector
  • Turn a flagged anti-pattern into the safe, equivalent rewrite — no connection needed. Paste a SQL query and get ready-to-run rewrites anchored to deterministic rules: `= NULL` → `IS NULL`, `NOT IN (subquery)` → `NOT EXISTS` (NULL-safe), deep OFFSET → keyset pagination, `ORDER BY RAND()` → a keyed random sample — each with its semantics caveat spelled out. Every literal rewrite is then re-analyzed in-process and reported as 'clean' or 'still flags X', so the safe rewrite is self-checked — no need to feed it back through sixta_analyze_query. Use when the user asks 'how do I fix / rewrite this query' or after sixta_analyze_query flags a smell. Input is analyzed in memory and never stored.
    Connector
  • Search the RoxyAPI knowledge base and get back ranked documentation snippets, each with a source URL. It covers API endpoints with their request and response fields, SDK usage for TypeScript, Python, PHP, C#, and the WordPress plugin, authentication and API keys, UI components, and step by step integration guides. Call this first whenever you need to integrate RoxyAPI into an app: to find which endpoint or SDK method to use, what parameters a call takes, how to authenticate, or how to wire a feature end to end. Pass the user question verbatim as `query`. If the first results miss, rephrase once and retry.
    Connector
  • Run a full Growth Audit — three linked strategic reports for a product. Unlike analyze_competitor (a single 15-signal intelligence snapshot), a Growth Audit produces an Executive Summary + a Diagnosis Report + a 30-day Action Plan, grounded in real channel/tactic playbooks. Best for 'how do I grow THIS product' rather than 'what is this competitor doing'. Takes ~4-6 minutes. Requires authentication and deducts 10 credits. Poll with get_growth_audit(job_id) until status='completed'. Args: url: Product website URL to audit product_name: Optional product name override (defaults to domain) lang: Report language, 'en' (default) or 'zh'
    Connector
  • Render an asset's reference image in the channel's art style — the visual anchor that keeps a character/environment looking identical across every shot. EVERY character, environment, and object asset needs one before generate_voiceover (the server enforces this; fire the jobs for all assets, then one await_jobs). Async — the job writes the image onto the asset row: await_jobs(project_id), then list_assets and view_image the file_path to check likeness.
    Connector
  • Aggregate dossier check: Run all 10 Domain Dossier checks — dns, mx, spf, dmarc, dkim, tls, redirects, headers, cors, web-surface — in parallel and return all results in a single response. Use when you need a comprehensive domain health snapshot in one call; counts as ONE paywall call regardless of how many checks run. For a single focused check, prefer the individual dossier_* tools to minimise latency. Fires all 10 checks concurrently via Cloudflare DoH or direct HTTPS, 5 s per-check timeout. Returns a JSON object keyed by check id (dns, mx, etc.), each value a CheckResult discriminated union ({status:"ok",...} or {status:"error", reason}).
    Connector
  • Transliterate ONE Interslavic word between Latin and Cyrillic. This is bidirectional: it auto-detects the input's script and returns the attested spelling in the OTHER script — Latin input yields Cyrillic, Cyrillic input yields Latin (or pass `target` to force it). Unlike the lossy deromanize tools, this is an EXACT dataset lookup (both spellings are stored per entry): it never guesses — a word not in the dataset returns empty candidates.
    Connector
  • Execute a JavaScript program that orchestrates this server's tools, and return only its result. Prefer this over many individual tool calls when a task needs several steps, looping, filtering, or combining data: intermediate results stay in the sandbox, so only what you return reaches the model. Inside the script: - listTools() -> [{name, summary}] discover available tools - getToolDoc(name) -> {name, description, parameters, required} inspect one tool's inputs - tools.<name>(args) -> parsed result call a tool (graphProjectId is injected automatically; do NOT pass it) - console.log(...) captured and returned alongside the result - return <value> JSON-serialized and returned Environment: sandboxed JavaScript, no network or filesystem, with limits on time, memory, statements and number of tool calls. Currently only read-only tools are callable from code.
    Connector
  • Compose a NARRATED, MULTI-SHOT video from a script — NOT a single ~5s clip. Use this when you need a coherent minute-ish demo / explainer with voiceover: it synthesizes the narration, storyboards it into beats, generates a continuity-chained shot per beat, and renders with transitions + Ken-Burns + captions via Remotion. (For a single short clip, use `lamina_generate_video`.) WORKFLOW: (1) `lamina_compose_video({ script })` → dispatch, get `runId`. (2) `lamina_compose_video({ runId, wait: true })` → block until done; or poll `{ runId }`. Composition takes minutes. INPUTS: • `script` (required to start): the narration to speak (a hook + one insight + a CTA; ≤~90s). The transcript/chapters derive from this, so the video stays coherent with its text. • `title` / `generationBrief` (optional): title + a one-paragraph visual brief for the shots. • `direction` (optional): free-text creative direction ("open on the product, fast cuts, end on the logo") — steer the render WITHOUT naming models. • `sections` (optional): structured per-span hints `[{ text?, hint, mustShow? }]` for a prescriptive storyboard. • `format` / `inputs` (optional): pick a format (else auto-routed); `inputs` supplies a format's required assets (e.g. `{ presenterImage }`). • `aspectRatio` (optional): `16:9` | `9:16` | `1:1` | `4:5` | `4:3` (default 16:9). • `voiceId` (optional): ElevenLabs voice id. Omit and the narration director picks a voice whose tone fits the script. • `expressive` (optional): true → adds v3 audio tags for stronger, more human inflection. (Prosody/pacing is always applied.) • `idempotencyKey` (optional): dedupe retries — the same key returns the same run (no double charge). • `runId` (+ optional `wait`): pass a prior runId to poll instead of starting a new run. TIP: call `lamina_compose_plan({ script })` first to preview the format + cost + storyboard for free before committing. RESPONSE: dispatch → `{ runId, status: "running" }`. Poll → `{ status, progress: { stage, current?, total? } }`. Terminal → `{ status: "completed", result: { videoUrl, durationSeconds, shotCount } }` or `{ status: "failed", error }`. Invalid input → an error with a machine-readable `reason` (e.g. `MISSING_REQUIRED_INPUT`, `SCRIPT_TOO_LONG`).
    Connector
  • Get the Senzing JSON analyzer script to validate mapped data files client-side. REQUIRED: `workspace_dir` (writable directory, e.g. ~/sz-workspace) — the call WILL FAIL without it. The analyzer validates records against the Entity Specification, examines feature distribution, attribute coverage, and data quality. Returns a Python script (no dependencies) with instructions. No source data is sent to the server. Typical workspace_dir values: Linux `/tmp` or `~/sz-workspace`; macOS `~/sz-workspace`; sandboxed envs: explicit path under home (do NOT assume /tmp exists).
    Connector
  • Offload a video transcode to Botverse — encoding runs server-side so you can continue with other tasks. Returns a job_id immediately. Source must be ≤ 10 minutes and ≤ 5 GB. Poll get_job_status every 5 seconds until 'complete', then get_download_url. Wallet debited on completion. Requires get_upload_url first — if you are in a sandboxed environment where that upload POST is blocked, use transcode_from_url (public URL) or transcode_content (inline) instead; no upload needed. RELIABILITY & FALLBACK: Botverse returns structured errors with a message. A bare 'HTTP 500' or 'tool call failed' with no message body is the MCP connector / sandbox layer between your client and Botverse — NOT a Botverse outage (the service is up if get_wallet_balance succeeds). If MCP calls keep failing, do NOT write your own ffmpeg / transcription / document-conversion code as a workaround — that wastes tokens and reinvents what Botverse does. Instead, tell the user to run the equivalent Botverse CLI from their own (non-sandboxed) machine, e.g. `npx botverse transcribe <file> --to docx` (also `transcode` and `convert`), then retry the MCP call.
    Connector