github analyzed 27eb919

SparkForge

github

Access a versatile collection of tools for media generation, web scraping, and cryptocurrency research. Convert between data formats, summarize long documents, and extract text from images or PDFs with ease. Streamline your workflow by automating tasks like SEO metadata extraction, code reviews, and content creation.

maintainer
henry-ships
license
first seen
2026-06-02
last seen
2026-06-17
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. MEDIUM gained untrusted · 3 tools changed permissions

tool count over time

33t
33t
capabilities 33 tools
transport http counts 33 tools · 0 res · 0 prompts permission surface via registry introspection

tools

  • btc_signal

    Get a BTC price direction prediction based on 10-indicator technical analysis consensus. Returns up/down/neutral with confidence score. Supports 1m, 5m, 15m, 1h timeframes.

    in ▸ timeframe

  • check_domain

    Check domain availability and DNS info via lookup.

    in ▸ domain

  • code_review

    Review code using Claude AI. Returns bugs, improvements, and best practice suggestions.

    in ▸ code language

  • convert_format

    Convert between formats: csv→json, json→csv, markdown→html, html→text.

    in ▸ to from content

  • crypto_news_summary

    Get latest crypto news headlines from CryptoPanic.

    in ▸ limit filter

  • detect_language

    Detect the language of a text string. Supports 10+ languages.

    in ▸ text

  • extract_structured

    Extract structured JSON data from a URL using Claude AI and a provided JSON schema.

    in ▸ url schema

  • generate_image

    Generate an AI image from a text prompt using Flux models. Returns an image URL. Models: flux-schnell (fast, $0.02), flux-dev (quality, $0.03), flux-pro (best, $0.05).

    in ▸ model width height prompt

  • generate_meme

    Generate a meme image using Imgflip API. Returns a meme image URL.

    in ▸ topText template bottomText

  • generate_qr_code

    Generate a QR code as a base64-encoded PNG image from any text or URL.

    in ▸ data size

  • generate_video

    Generate a short AI video from a text prompt using fal.ai.

    in ▸ prompt duration

  • get_crypto_price

    Get current cryptocurrency price, 24h change, and market cap from CoinGecko.

    in ▸ symbol currency

  • get_url_metadata

    Extract metadata from a URL — title, description, Open Graph tags, favicon, canonical URL.

    in ▸ url

  • html_to_markdown

    Convert HTML content or fetch a URL and convert its HTML to clean Markdown.

    in ▸ url html

  • image_resize

    Fetch an image from a URL, resize it, and return as base64 PNG. Alias for resize_image.

    in ▸ url width height

  • list_services

    List all available SparkForge services with pricing, parameters, and demo URLs.

  • ocr

    Extract text from an image URL using Claude vision AI.

    in ▸ url

  • pdf_to_markdown

    Extract text from a PDF URL and convert to Markdown. Returns the text content with page count.

    in ▸ url

  • resize_image

    Fetch an image from a URL, resize it, and return as base64 PNG.

    in ▸ url width height

  • scrape_webpage

    Scrape a webpage and return clean readable text/markdown. Strips scripts, styles, and HTML tags.

    in ▸ url

  • site_crawl

    Crawl a website starting from a URL, follow internal links, return pages as text.

    in ▸ url maxPages

  • smart_summarize

    AI-powered summarization in 4 modes: bullet_points, executive, technical, eli5.

    in ▸ mode text

  • store_data

    Key-value data storage. Operations: set, get, delete, list. Data persists per namespace.

    in ▸ key value namespace operation

  • summarize_text

    Summarize long text using extractive summarization. Fast, algorithmic — no AI API call needed.

    in ▸ text maxSentences

  • take_screenshot

    Capture a screenshot of any webpage URL. Returns the screenshot as a base64-encoded PNG image.

    in ▸ url width height fullPage

  • text_diff

    Compare two texts and show a unified diff with additions and removals.

    in ▸ a b

  • text_to_speech

    Convert text to speech using ElevenLabs. Returns audio as base64 MP3.

    in ▸ text voiceId

  • token_research

    Research a crypto token — description, links, price, market cap, volume from CoinGecko.

    in ▸ token

  • validate_json

    Validate and prettify JSON. Optionally validate against a JSON Schema.

    in ▸ json schema

  • verify_email

    Validate email format and check MX records for the domain.

    in ▸ email

  • wallet_analysis

    Analyze an Ethereum/Base wallet — ETH balance and recent transactions via Etherscan.

    in ▸ address network

  • web_search

    Search the web using Brave Search API. Returns titles, URLs, and descriptions.

    in ▸ count query

  • write_tweet

    Generate tweet text from a topic or prompt using Claude AI. Returns tweet-ready text under 280 chars.

    in ▸ tone topic

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

network 33

  • net henry-ships-sparkforge-27eb919/scripts/backtest-final.mjs :13 async function fetchJSON(url) { return (await fetch(url)).json(); }
  • net henry-ships-sparkforge-27eb919/scripts/backtest-ml.mjs :28 async function fetchJSON(url) { return (await fetch(url)).json(); }
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v2-1k.mjs :176 const resp = await fetch(url);
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v2.mjs :176 const resp = await fetch(url);
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v3-final.mjs :15 async function fetchJSON(url) { return (await fetch(url)).json(); }
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v3.mjs :13 const r = await fetch(url);
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v3b.mjs :10 async function fetchJSON(url) { return (await fetch(url)).json(); }
  • net henry-ships-sparkforge-27eb919/scripts/backtest-v3c.mjs :9 async function fetchJSON(url) { return (await fetch(url)).json(); }
  • net henry-ships-sparkforge-27eb919/scripts/backtest.mjs :151 const resp = await fetch(url);
  • net henry-ships-sparkforge-27eb919/src/app/api/[transport]/route.ts :75 const resp = await fetch(`https://api.microlink.io/v1/?${params}`);
  • net henry-ships-sparkforge-27eb919/src/app/api/btc-signal/route.ts :14 const r = await fetch(`https://www.okx.com/api/v5${path}`);
  • net henry-ships-sparkforge-27eb919/src/app/api/code-review/route.ts :115 const anthropicResp = await fetch("https://api.anthropic.com/v1/messages", {
  • net henry-ships-sparkforge-27eb919/src/app/api/convert/route.ts :375 const fetchResp = await fetch(input, {
  • net henry-ships-sparkforge-27eb919/src/app/api/cron/trigger/route.ts :98 const resp = await fetch(cron.webhook, {
  • net henry-ships-sparkforge-27eb919/src/app/api/crypto-price/route.ts :105 const response = await fetch(apiUrl, {
  • net henry-ships-sparkforge-27eb919/src/app/api/crypto-summarize/route.ts :66 const r = await fetch(
  • net henry-ships-sparkforge-27eb919/src/app/api/extract/route.ts :167 const fetchResp = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/image-resize/route.ts :106 const response = await fetch(parsedUrl.toString());
  • net henry-ships-sparkforge-27eb919/src/app/api/markdown/route.ts :191 const response = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/meme/route.ts :93 const imgResp = await fetch(baseImageUrl);
  • net henry-ships-sparkforge-27eb919/src/app/api/ocr/route.ts :53 const res = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/pdf-to-markdown/route.ts :75 const response = await fetch(parsedUrl.toString());
  • net henry-ships-sparkforge-27eb919/src/app/api/scrape/route.ts :82 const response = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/screenshot/route.ts :90 const response = await fetch(microlinkUrl.toString());
  • net henry-ships-sparkforge-27eb919/src/app/api/search/route.ts :27 const resp = await fetch(`https://api.search.brave.com/res/v1/web/search?${params}`, {
  • net henry-ships-sparkforge-27eb919/src/app/api/site-crawl/route.ts :111 const res = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/smart-summarize/route.ts :53 const res = await fetch(url, {
  • net henry-ships-sparkforge-27eb919/src/app/api/token-research/route.ts :14 const r = await fetch(`https://api.coingecko.com/api/v3${path}`, {
  • net henry-ships-sparkforge-27eb919/src/app/api/tts/route.ts :78 const ttsResp = await fetch(`${ELEVENLABS_API_URL}/text-to-speech/${voiceId}`, {
  • net henry-ships-sparkforge-27eb919/src/app/api/tweet-writer/route.ts :102 const r = await fetch("https://api.anthropic.com/v1/messages", {
  • net henry-ships-sparkforge-27eb919/src/app/api/url-metadata/route.ts :143 const response = await fetch(parsedUrl.toString(), {
  • net henry-ships-sparkforge-27eb919/src/app/api/wallet-analysis/route.ts :32 const r = await fetch(`${explorer.api}?${qs}`);
  • net henry-ships-sparkforge-27eb919/src/lib/x402.ts :182 const verifyResp = await fetch(`${FACILITATOR_URL}/verify`, {

secrets 13

  • secrets henry-ships-sparkforge-27eb919/src/app/api/[transport]/route.ts :4 const FAL_KEY = process.env.FAL_KEY || "";
  • secrets henry-ships-sparkforge-27eb919/src/app/api/code-review/route.ts :7 const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/cron/trigger/route.ts :29 const CRON_SECRET = process.env.CRON_SECRET || "";
  • secrets henry-ships-sparkforge-27eb919/src/app/api/crypto-summarize/route.ts :7 const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/extract/route.ts :156 const apiKey = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/generate/route.ts :8 fal.config({ credentials: process.env.FAL_KEY });
  • secrets henry-ships-sparkforge-27eb919/src/app/api/meme/route.ts :9 fal.config({ credentials: process.env.FAL_KEY });
  • secrets henry-ships-sparkforge-27eb919/src/app/api/ocr/route.ts :108 const apiKey = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/search/route.ts :3 const BRAVE_API_KEY = process.env.BRAVE_API_KEY || "";
  • secrets henry-ships-sparkforge-27eb919/src/app/api/smart-summarize/route.ts :7 const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/tts/route.ts :7 const ELEVENLABS_API_KEY = process.env.ELEVENLABS_API_KEY || "sk_17b7ae4a165d5ea98767e5ece74dcc0bb3958d9f9693d41e";
  • secrets henry-ships-sparkforge-27eb919/src/app/api/tweet-writer/route.ts :7 const ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
  • secrets henry-ships-sparkforge-27eb919/src/app/api/video/route.ts :8 fal.config({ credentials: process.env.FAL_KEY });

declared dependencies 20

  • @fal-ai/client@^1.9.4
  • @modelcontextprotocol/sdk@^1.25.2
  • @types/qrcode@^1.5.6
  • @x402/core@^2.5.0
  • @x402/evm@^2.5.0
  • @x402/next@^2.5.0
  • ajv@^8.18.0
  • catboost@^1.27.0
  • mcp-handler@^1.0.7
  • ml-random-forest@^2.1.0
  • next@16.1.6
  • pdf-parse@^2.4.5
  • qrcode@^1.5.4
  • react@19.2.3
  • react-dom@19.2.3
  • sharp@^0.34.5
  • @types/node@^20
  • @types/react@^19
  • @types/react-dom@^19
  • typescript@^5