Skip to main content
Glama
685,844 tools. Updated 2026-10-21 15:00

"A tool for debugging Pine Script code" matching MCP tools:

  • **Executes the task on the real websites** and returns the result. Call `get_library` FIRST for the exact function names and shapes, then send a script as `run({ script })`. THE SCRIPT is a plain async JavaScript body, not a wrapping function. `bowmark` is a ready global: `await bowmark.<capability>.<fn>(...)`, or one site via `await bowmark.providers.<provider>.<fn>(...)`. `return` what you want back; `log(...)` for progress. Built-ins plus `URL`/`URLSearchParams` exist; `fetch`, `import`, `setTimeout` and a filesystem do not — `bowmark` is the only I/O. MIND THE CLOCK. Your client times a tool call out at around 55 seconds, and one capability call already spends 30-55 seconds, so default to ONE per script. Need several? Run them together in `Promise.allSettled` (a dropped leg still comes back as `partial`), never one after another, and never `await` inside a `for` loop. Keep the result under ~25,000 characters. CHECK `status` BEFORE `ok` — `ok` | `error` | `partial` | `needs_user` | `running`: • `running`: it is still going. Call `run({ runId })` to wait for the SAME run; never resend the script. • `partial`: `result` is real but narrower than asked; `incomplete` names what did not answer. Tell your user — never call it complete. `incomplete.failures[].fixable: true` means your argument was wrong: fix it and rerun. • `needs_user`: a site needs your user signed in; not a failure. Give them `meta.handoff.url`, name the sites, then call `wait_for_sign_in` with `meta.handoff.ref`. On `done`, send the SAME script unchanged. • `error`: there is no result; `error` says why. Saving files, one exit IP, saved secrets, `warnings`, `emptyHanded`, and the billed `browser_agent`/`delegate` fallbacks: `get_library({ query: "run guide" })`.
    Connector
    Destructive
    No auth
  • Get ONE test case's result inside a run: status code, timing, the response body and headers, every assertion outcome, extracted variables and any script output. This is the read to make when a run failed and you need to know why. The id comes from get_test_run's results[].id, not from get_test_results (run ids). Requires project context.
    ConnectorAPI key
  • Free. Quotes a comic before anything is made: script credits plus panel credits for a page count and panel engine. The quote assumes 4 panels a page, so it runs HIGH for short books (a 12-page book was quoted 462 and cost 301 because the script wrote 27 panels, not 48). The real panel price is known after the script: aetherwave_comic_status reports creditsToFinishDrawing, and aetherwave_comic_draw accepts maxCredits. Character references cost 6 credits each on top.
    ConnectorNo auth
  • Return the optional setup kit for agents that run on the user's own machine (Claude Code, Cursor). The kit contains three hooks (recall at session start, recall on each prompt, sync at session end), the settings.json block, a usage policy, and an idempotent bash script that installs them. With the hooks installed, memory is recalled and stored automatically. Without them, NEXUS only has what the agent stores through its tools. Installing writes files and settings on the user's machine, so use this when the user asks to set NEXUS up, and let them run or approve the script. It does not apply to chat clients (Claude web or desktop, ChatGPT). Side effect: on an OAuth connection, the call issues the hooks credential and embeds it in the script. This works once, because a secret that was already shown is not returned again. On a plain `nxa_` token connection it does not issue a credential, and an account owner must issue one. `steps` says which case applies. Args: formato: "script" (default) for the bash installer plus steps, or "files" for the same files as text, for clients without bash. It is ignored for Cursor. client: "claude-code" (default) or "cursor". Cursor gets a session-start hook and a turn-recap hook. It has no per-prompt recall, because Cursor's beforeSubmitPrompt cannot inject context.
    ConnectorAPI key
  • LLM CODE DEBUGGING — POST {code, error} and get a diagnosis: what is wrong, the root cause, and a concrete fix with corrected code. Paste the failing snippet plus the error message or stack trace; any language, up to 20,000 chars combined. Optional {language} and {context} ('happens only on the second call'). Fast cheap LLM under the hood. Want deterministic no-AI lint instead? POST /api/lint/:language ($0.002). ($0.01 per call, paid via x402)
    ConnectorNo auth
  • Run a read-only script against the connected Foundry world. `code` is the body of an async function: call foundry.<domain>.<method>({ ... }) (see docs), use await, console.log, and return the value you want back (JSON, size-limited). Only read methods are bound; writes are not available here — use execute. Every call counts against the per-script limits shown in the docs index (calls, wall time, CPU time, result size); an oversized call result arrives as { __truncated: true, bytes, limit, preview }.
    ConnectorAPI key

Matching MCP Servers

Matching MCP Connectors

  • MCP server providing Pine Script v6 documentation. Enables AI to: Look up Pine Script functions and validate syntax Access official documentation for indicators, strategies, and visuals Understand Pine Script concepts (execution model, repainting, etc.) Generate correct v6 code with proper function references

  • AI-powered Pine Script v6 strategy generator built for prop-firm futures traders.

  • Connect to the user's open genMC studio tab. The user sees a code like "K7Q-4MX" after choosing "Connect agent" in the studio header. Pairing returns a resumeKey: if your MCP connection drops or restarts (an unknown session, a failed server), call genmc_pair with that resumeKey instead of asking the user for a new code. Resuming from another MCP session (a second client, a script) attaches it in addition: all your sessions reach the same tab. After pairing, the tab's WebMCP tools (skins, builds, whichever studio is open) appear in your tool list; if your client does not refresh it, use genmc_status and genmc_call.
    ConnectorNo auth
  • Add or replace a Code component: JavaScript that makes a project DO something. It runs on ONE event you choose (`event`): RENDER_BEFORE (default) every frame, for movement (held keys: this.keysPressed); KEY_DOWN / KEY_UP once per press / release; MOUSE_CLICK, SWIPE, MUSIC_BEAT, PHYSICS_COLLISION once per click, swipe, beat, collision. A script per event: r3_docs_read("HOWTO_CODE_EVENTS.md"). Kept at once in the live copy every open R3 tab runs, nothing to save (r3_editor_code is the same tool); the answer gives its seq and codeVersion. r3_project_load names the entityRefs code uses; r3_docs_read("CODE_PATTERNS.md") is the API (a guessed one saves, then silently does nothing). The code: a function body that RETURNS its hooks: ```js this.start = function() { // once, at start }; this.update = function(data) { this['mesh_cube_1'].rotation.y += data.delta; }; return {start: this.start, update: this.update}; // REQUIRED — nothing runs without it ``` Reach a component as `this['<entityRef>']`, infrastructure with this.getProject() / getScene() / getCamera() / getRenderer() / getWorld() / getAudioListener() / getEntityInstance(). Anything else returned is an api other scripts call: `this['<entityRef>'].api.<name>(...)`. Code that creates things (scene objects, timers, listeners) frees them in a returned `dispose`: R3 calls it on re-save, Stop and delete. No getComponentByRef, this.state, this.getSibling or R3 global: code using them is REFUSED. EVENTS (by NAME; default RENDER_BEFORE): RENDER_BEFORE, RENDER_AFTER, KEY_DOWN, KEY_UP, MOUSE_DOWN, MOUSE_UP, MOUSE_MOVE, MOUSE_WHEEL, MOUSE_CLICK, TOUCH_START, TOUCH_MOVE, TOUCH_END, TOUCH_CANCEL, SWIPE, MUSIC_BEAT, MUSIC_BAR, PHYSICS_COLLISION. Their `data` (mouse: nested, -1..+1): the how-to's table. Pass entityRef + baseVersion (the codeVersion r3_code_read gave) to REPLACE a script (and its event); name (or neither) to create one. Never merged: a write on an older version is refused with the current code.
    Connector
    Destructive
    No auth
  • Read back what a Code component actually contains — its full JavaScript source and the event it runs on. r3_code_write reports what it wrote; this reports what is there. Use it before replacing a script, so an edit builds on the real source instead of overwriting it blind, and after a write whose reply you did not see, to confirm what landed. Call it with NO entityRefs to get every Code component in the project — that is how you find a script again when you never received the entityRef for it. Each script comes back with its codeVersion: pass it as r3_code_write's baseVersion. The event comes back as a NAME (RENDER_BEFORE, KEY_DOWN, …), which is the same form r3_code_write takes, so you can hand it straight back. r3_component_read reports the same field as a raw number and omits any source over 2000 characters; this is the tool for reading code. A body too large to return is left out WHOLE and reported with its size — never truncated, because a partial script written back would delete the rest of it. An entityRef that does not exist is named and the others are still read.
    ConnectorNo auth
  • Add, change, or remove a user-requested analytics or marketing script in the selected site's root layout. Name the provider, identifiers, and requested behavior. After publication, the script may send visitor data to that provider. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
    Connector
    Destructive
    No auth
  • Add, change, or remove a user-requested analytics or marketing script in the selected site's root layout. Name the provider, identifiers, and requested behavior. After publication, the script may send visitor data to that provider. Starts an asynchronous internal-agent operation; poll get_agent_session. For corrections, call this same tool with its sessionId and unchanged target. Requires a provisioned site. Source edits may execute in its preview. The Replo agent uses its normal tools and connected integrations to implement and verify the requested changes. Use publish_site separately to make changes public.
    Connector
    Destructive
    No auth
  • USE WHEN looking up an exact Pine Script API term or known concept keyword. Returns the best-matching doc paths with matched keywords and a retrieval suggestion (get_doc or list_sections + get_section). AFTER calling this tool, follow the suggestion: call get_doc() for small files or list_sections() + get_section() for large files. For natural language questions use search_docs() instead. Data sourced from bundled TOPIC_MAP and doc file content scan.
    ConnectorNo auth
  • Attach a third-party script to a page, either by URL or as inline code. Use this for analytics, pixels, chat widgets and similar integrations rather than editing the page HTML, so the script survives page edits. Scripts are injected when the page is next saved in the editor or published; the change is not live on an already-published page until then.
    ConnectorOAuth
  • Heuristic estimate (NOT a real per-model BPE tokenizer) of how many tokens a piece of text will become, ported from GO AI's browser-side token counter. Blends a chars/4 and words/0.75 baseline with surcharges for punctuation, digits and non-Latin script; typically within ±10-15% for ordinary English prose and ±15-25% when non-Latin script is detected -- code and heavily punctuated text tend to tokenize denser than this suggests. Also reports whether the text fits a set of context windows (default: 8K/128K/200K/1M/2M tokens, or pass your own) and, if you supply per-million-token prices, an estimated USD cost. Use a provider's own tokenizer for exact billing figures.
    ConnectorNo auth
  • Decode a JSON Web Token's header and payload. It does NOT verify the signature, so never treat the claims as trusted on the strength of this tool. Use to inspect claims such as exp, iss and aud while debugging. Runs locally; the token is not stored or sent anywhere. Returns JSON {header, payload, signature}.
    ConnectorNo auth
  • Decode a JSON Web Token's header and payload. It does NOT verify the signature, so never treat the claims as trusted on the strength of this tool. Use to inspect claims such as exp, iss and aud while debugging. Runs locally; the token is not stored or sent anywhere. Returns JSON {header, payload, signature}.
    ConnectorNo auth
  • The HTML embed code for one collection — the same code the Split app's 'Embed Collection' menu produces — for pasting into a blog, newsletter template or any site that accepts HTML. `layout` is carousel (default: a horizontal slider, loads Split's hosted slider script) or grid (a scrolling image grid, self-contained). The widget fetches the collection's public links at load time, shows up to 50 that have an image, and every tile is the creator's SplitLink, so clicks are attributed exactly as on the SplitPage. Requires a SplitPage (the code addresses the collection by the page's slug); the collection need not be visible on the page. Return the code in a fenced block, unchanged.
    ConnectorOAuth
  • Cancel a reservation using the 6-character confirmation code the GUEST received by email/SMS (the code is the authorisation; ask the guest for it — this tool never issues or reveals codes). Thin wrapper over the venue's own cancellation endpoint, which answers uniformly: `status` is "cancelled" or "noop" (unknown code · already cancelled · seated/completed · less than 30 minutes away — it does not say which). Only report a cancellation to the guest when `cancelled` is true. PUBLIC tool, no auth.
    Connector
    Destructive
    No auth
  • USE WHEN discovering what Pine Script v6 documentation is available. Returns a categorised list of doc file paths with one-line descriptions. AFTER calling this tool, call get_doc(path) for small files or list_sections(path) then get_section(path, header) for large files (ta.md, strategy.md, collections.md, drawing.md, general.md). Data sourced from bundled Pine Script v6 documentation.
    ConnectorNo auth
  • 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.
    ConnectorNo auth
  • Use this when you need to sample a signed-distance field at a point. Sample the signed distance from an in-script sdf.* field at a 3D point. Returns { distance, inside, aabb, kind }. Distance is in mm; negative = inside the surface, 0 = exactly on the surface, positive = outside. Use this to verify SDF composition before calling sdf.materialize (which is the expensive step). The script must bind the SdfField via sdf.bind('<name>', field) and pass that name as fieldName. Hint: pass either { file } or { code }, plus { fieldName, point: [x,y,z] }.
    ConnectorNo auth