QuickBuild agent tools (x402)
Screenshot, TTS, image gen, translate, summarize, URL-to-Markdown, site audit. Pay per call (x402).
¿Debería usar esto?
Calidad y seguridad
Hallazgos (3)
- HIGH
- MEDIUMen summarize
- MEDIUMen screenshot_url
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"agent-tools": {
"url": "https://quickbuild.quynguyenbac.workers.dev/mcp"
}
}
}Puntos de conexión remotos
https://quickbuild.quynguyenbac.workers.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (18)
🟢website_audit(url)
[PAID $0.05 USDC per call via x402 on Base; errors are free] Pre-launch website audit: up to 3 pages crawled, 30 links checked, meta/OG/canonical, security headers, HTTPS, 404 handling, sitemap, and leaked-secret patterns in client JS (masked). Read-only.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
}
},
"required": []
}🟢page_metadata(url)
[PAID $0.005 USDC per call via x402 on Base; errors are free] Fetch one public web page and return structured metadata: title, meta description, canonical, lang, robots, Open Graph and Twitter card tags, favicon, RSS/Atom feeds, JSON-LD @types, and internal/external links (up to 100 each). Good for link previews, unfurling and quick site triage.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
}
},
"required": []
}🟢url_to_markdown(url, maxChars)
[PAID $0.005 USDC per call via x402 on Base; errors are free] Fetch one public web page and return its main content (article/main/body, scripts/nav/footer stripped) as clean Markdown with absolute links, plus title and length. Up to 2 MB HTML, 10 s timeout; optional maxChars (default 50000, max 200000).
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL (hostname, not IP). Private/reserved addresses are refused. Optional: defaults to https://example.com."
},
"maxChars": {
"type": "integer",
"minimum": 500,
"maximum": 200000,
"description": "Truncate markdown to this many characters (default 50000)"
}
},
"required": []
}🟢summarize(url, text, length, maxPoints, focus, ...)
[PAID $0.02 USDC per call via x402 on Base; errors are free] Fetch a public web page (or take raw text) and return a structured JSON brief made by Llama 3.3 70B: title, language, contentType, summary, keyPoints, named entities with types, topic tags, concrete facts (prices, dates, versions, limits) as label/value pairs, sentiment and audience. Grounded in the page only, no invented facts. Reads up to 24,000 chars of main content (2 MB HTML, 10 s fetch timeout). All params optional: with none it summarizes https://example.com. GET with query params, or POST a JSON body for long text (up to 200,000 chars accepted, first 24,000 analyzed).
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to read (hostname, not IP; private addresses refused). Optional: defaults to https://example.com. Ignored when `text` is given."
},
"text": {
"type": "string",
"description": "Raw text or Markdown to summarize instead of a URL (optional, max 200000 chars, first 24000 analyzed). Prefer POST for long text."
},
"length": {
"type": "string",
"enum": [
"short",
"medium",
"long"
],
"description": "Summary length: short = 1-2 sentences, medium = 3-4 (default), long = 5-8."
},
"maxPoints": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Max number of keyPoints (default 5)."
},
"focus": {
"type": "string",
"description": "Optional aspect to emphasize, e.g. \"pricing\", \"API limits\", \"risks\" (max 200 chars)."
},
"lang": {
"type": "string",
"description": "Optional output language for summary/keyPoints (ISO 639-1, e.g. \"en\"). Default: same as the content."
}
},
"required": []
}🟢translate(text, url, to, from, maxChars)
[PAID $0.005 USDC per call via x402 on Base; errors are free] LLM translation (Meta Llama 4 Scout on Workers AI, M2M100 fallback). Give `text`, or a `url` whose main content is extracted as Markdown and translated in blocks, preserving Markdown formatting, URLs and code blocks. Source language auto-detected (or set `from`). Up to 20,000 chars per call (default 8,000). All params optional: with none it translates a short Spanish sample to English. Languages: en,es,fr,de,it,pt,nl,ru,uk,pl,cs,ro,hu,el,bg,sv,da,no,fi,tr,ar,he,fa,hi,bn,ur,ta,zh,ja,ko,vi,th,id,ms,tl,sw.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text or Markdown to translate (optional). If omitted and no url, a short Spanish sample is used."
},
"url": {
"type": "string",
"description": "Public http(s) URL whose main content is translated (optional; used when `text` is absent)."
},
"to": {
"type": "string",
"description": "Target language, ISO 639-1 code or English name (default \"en\")."
},
"from": {
"type": "string",
"description": "Source language code, or \"auto\" (default: auto-detect)."
},
"maxChars": {
"type": "integer",
"minimum": 100,
"maximum": 20000,
"description": "Max source chars to translate (default 8000)."
}
},
"required": []
}🟢generate_image(prompt, steps)
[PAID $0.01 USDC per call via x402 on Base; errors are free] Generate an original 1024x1024 image from a text prompt with FLUX.1 [schnell] on Workers AI (about 2-5 s). Returns JSON with image_base64 + mimeType, or the raw image bytes with format=jpeg. Content policy: no sexual/nude, gore, hate, real or famous people, or ID documents/currency; such prompts get HTTP 400 and are not charged. All params optional: with no prompt a sample watercolor lighthouse is drawn.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "What to draw (max 1000 chars). Optional: defaults to a watercolor lighthouse."
},
"steps": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"description": "Diffusion steps, more = more detail (default 4)."
}
},
"required": []
}🟢screenshot_url(url, width, height, fullPage, type, ...)
[PAID $0.008 USDC per call via x402 on Base; errors are free] Render a public web page in a real headless Chrome (JavaScript executed, waits for network idle) and return a screenshot: viewport (default 1280x800) or full page (up to 8000 px tall), PNG or JPEG, optional dark mode and extra wait. JSON with image_base64 + finalUrl/status/title, or raw image bytes with format=png|jpeg. Typically 2-6 s (up to ~25 s when busy). Use it for visual QA, link previews, archiving, checking what a page really shows, or feeding a vision model. Adult/malware domains (Cloudflare family DNS) and private addresses are refused. All params optional: with none it captures https://example.com. Errors are never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL to capture (hostname, not IP). Optional: defaults to https://example.com."
},
"width": {
"type": "integer",
"minimum": 320,
"maximum": 1920,
"description": "Viewport width in px (default 1280)."
},
"height": {
"type": "integer",
"minimum": 240,
"maximum": 2000,
"description": "Viewport height in px (default 800)."
},
"fullPage": {
"type": "boolean",
"description": "Capture the whole scrollable page, capped at 8000 px tall (default false)."
},
"type": {
"type": "string",
"enum": [
"png",
"jpeg"
],
"description": "Image type (default png)."
},
"quality": {
"type": "integer",
"minimum": 30,
"maximum": 100,
"description": "JPEG quality (default 80; jpeg only)."
},
"waitMs": {
"type": "integer",
"minimum": 0,
"maximum": 5000,
"description": "Extra wait after load before capturing, ms (default 0)."
},
"darkMode": {
"type": "boolean",
"description": "Emulate prefers-color-scheme: dark (default false)."
}
},
"required": []
}🟢text_to_speech(text, lang)
[PAID $0.005 USDC per call via x402 on Base; errors are free] Turn text (up to 2000 chars) into spoken audio with MeloTTS on Cloudflare Workers AI, in English, Spanish, French, Chinese, Japanese or Korean. Returns JSON with audio_base64 + mimeType (audio/wav, 44.1 kHz mono), or the raw audio bytes with format=wav. Good for voice replies, narration, accessibility and language practice. Text with sexual, hateful or violent content is refused (HTTP 400, not charged). All params optional: with none it speaks a short English sample. GET with query params or POST a JSON body.
Esquema de entrada
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to speak (max 2000 chars). Optional: defaults to a short English sample."
},
"lang": {
"type": "string",
"enum": [
"en",
"es",
"fr",
"zh",
"ja",
"ko"
],
"description": "Language of the text / voice (default en)."
}
},
"required": []
}🟢base_gas_price
[PAID $0.001 USDC per call via x402 on Base; errors are free] Live gas snapshot for Base mainnet (chain 8453) read from public Base RPC: latest block number/time/utilization, base fee, eth_gasPrice, eth_maxPriorityFeePerGas, the last 10 blocks of base fees, slow/standard/fast EIP-1559 fee suggestions (10th/50th/90th percentile tips) in gwei and wei, and the estimated total cost (L2 execution + OP Stack L1 data-fee upper bound) of an ETH transfer, an ERC-20 transfer and a swap in ETH and USD (Chainlink ETH/USD on Base). No params. Cached 4 s. Errors are never charged.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢base_wallet_balances(address, tokens, includeZero)
[PAID $0.002 USDC per call via x402 on Base; errors are free] Balances of one address on Base mainnet in a single call: native ETH, the well-known tokens USDC, USDT, USDbC, DAI, WETH, cbETH, wstETH, AERO (non-zero only, or all with includeZero=true), plus up to 10 extra ERC-20 contracts you pass in `tokens` (symbol/name/decimals read on-chain). Also nonce, account type (EOA, EIP-7702 delegated EOA, or contract) and a USD total for ETH/WETH (Chainlink) and stablecoins. Read live from public Base RPC via Multicall3; cached 10 s. All params optional: defaults to a well-known public address. Invalid input = 400, never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Base address (0x + 40 hex). Optional: defaults to 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (vitalik.eth)."
},
"tokens": {
"type": "string",
"description": "Optional comma-separated extra ERC-20 contract addresses on Base (max 10)."
},
"includeZero": {
"type": "boolean",
"description": "Also list well-known tokens with zero balance (default false)."
}
},
"required": []
}🟢base_token_info(address, holder)
[PAID $0.002 USDC per call via x402 on Base; errors are free] Inspect a token or any address on Base mainnet: contract vs EOA (incl. EIP-7702 delegation), bytecode size, ERC-20 name/symbol/decimals/totalSupply (raw and formatted; bytes32 symbols handled), proxy implementation (EIP-1967, beacon, ZeppelinOS/FiatToken), whether it is a well-known Base token (guards against spoofed symbols), and optionally the balance of `holder`. Read live from public Base RPC; metadata cached 1 h. All params optional: defaults to USDC on Base. Invalid input = 400, never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Token / contract address on Base (0x + 40 hex). Optional: defaults to USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913."
},
"holder": {
"type": "string",
"description": "Optional address whose balance of this token to include."
}
},
"required": []
}🟢base_tx_status(hash)
[PAID $0.002 USDC per call via x402 on Base; errors are free] Look up one transaction on Base mainnet by hash: status (success, failed or pending), block, timestamp, confirmations, from/to, value, method id, gas used, effective gas price, fee split into L2 execution and L1 data fee (ETH and USD), contract created, and decoded ERC-20 Transfer events (token, symbol, from, to, amount; up to 20). Useful to confirm a payment landed. Read live from public Base RPC. All params optional: defaults to a confirmed USDC x402 payment. Unknown hash = 404, invalid hash = 400, never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"hash": {
"type": "string",
"description": "Transaction hash (0x + 64 hex). Optional: defaults to 0x20215b4a54f0a39995f3afbd748d7b52c3a1922685ddf08e5f694ea1e89b52bf."
}
},
"required": []
}🟢llm_chat(prompt, system, messages, model, max_tokens, ...)
[PAID $0.003 USDC per call via x402 on Base; errors are free] One-shot LLM completion on Cloudflare Workers AI with a minimal interface: give `prompt` (and optionally `system`, or OpenAI-style `messages`), get {text, model, finish_reason, usage}. Models: llama-3.1-8b (default), llama-3.2-3b, llama-3.2-1b, mistral-7b, granite-4.0-micro. max_tokens capped at 512, input up to 24000 chars, Llama Guard 3 safety check, 503 "capacity" when the daily budget is used up. Errors are never charged. All params optional: with none it answers a short sample question. For the OpenAI wire format use POST /v1/chat/completions.
Esquema de entrada
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "User message. Optional: defaults to a short sample question."
},
"system": {
"type": "string",
"description": "Optional system instruction."
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string"
},
"content": {
"type": "string"
}
}
},
"description": "Optional OpenAI-style history (POST JSON)."
},
"model": {
"type": "string",
"enum": [
"llama-3.1-8b",
"llama-3.2-3b",
"llama-3.2-1b",
"mistral-7b",
"granite-4.0-micro"
],
"description": "Model alias (default llama-3.1-8b)."
},
"max_tokens": {
"type": "integer",
"minimum": 1,
"maximum": 512,
"description": "Max output tokens (default/cap 512)."
},
"temperature": {
"type": "number",
"minimum": 0,
"maximum": 2,
"description": "Sampling temperature."
}
},
"required": []
}🟢text_embeddings(input, model, encoding_format, dimensions)
[PAID $0.001 USDC per call via x402 on Base; errors are free] Drop-in OpenAI Embeddings endpoint: POST {input: string | string[], model, encoding_format: float|base64, dimensions} and get {object: "list", data: [{embedding, index}], model, usage}. Models (Cloudflare Workers AI): bge-m3 (1024-d, multilingual (100+ languages), 8192-token context); bge-large-en-v1.5 (1024-d, English); bge-base-en-v1.5 (768-d, English); bge-small-en-v1.5 (384-d, English, fastest); embeddinggemma-300m (768-d, multilingual (Google EmbeddingGemma)). Any other model name (e.g. text-embedding-3-small) maps to bge-m3; the actual model is in the response. `dimensions` truncates and re-normalizes. Up to 100 inputs per call, 8000 chars each, 60000 chars total, one fixed price per call. For RAG, semantic search, clustering and dedupe. Errors are never charged. GET ?input= also works; with no params it embeds a sample sentence.
Esquema de entrada
{
"type": "object",
"properties": {
"input": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
},
"description": "Text or array of texts to embed (max 100). Optional: defaults to a sample sentence."
},
"model": {
"type": "string",
"enum": [
"bge-m3",
"bge-large-en-v1.5",
"bge-base-en-v1.5",
"bge-small-en-v1.5",
"embeddinggemma-300m"
],
"description": "Embedding model alias (default bge-m3)."
},
"encoding_format": {
"type": "string",
"enum": [
"float",
"base64"
],
"description": "float (default) or base64 (little-endian float32)."
},
"dimensions": {
"type": "integer",
"minimum": 1,
"maximum": 1024,
"description": "Optional output size; vectors are truncated and re-normalized."
}
},
"required": []
}🟢rerank_documents(query, documents, top_n, return_documents, model)
[PAID $0.002 USDC per call via x402 on Base; errors are free] Cohere/Jina-style rerank: POST {query, documents: string[] | {text}[], top_n, return_documents} and get {results: [{index, relevance_score, document?}]} sorted by relevance. Models (Cloudflare Workers AI): bge-reranker-base (cross-encoder, English/Chinese, scores 0..1); bge-m3 (multilingual similarity scoring) (default bge-reranker-base; other names map to it). Up to 100 documents, each scored on its first 4000 chars; one fixed price per call. Use after vector search to pick the best passages for an LLM. Errors are never charged. All params optional: with none it ranks a small sample.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query (max 2000 chars). Optional with documents omitted: a sample is ranked."
},
"documents": {
"type": "array",
"items": {
"type": [
"string",
"object"
]
},
"description": "Documents to rank: strings or {text} objects (max 100)."
},
"top_n": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Return only the best N (default all)."
},
"return_documents": {
"type": "boolean",
"description": "Include the document text in each result (default false)."
},
"model": {
"type": "string",
"enum": [
"bge-reranker-base",
"bge-m3"
],
"description": "Rerank model (default bge-reranker-base)."
}
},
"required": []
}🟢crypto_price(symbols, ids, vs, address, chain)
[PAID $0.001 USDC per call via x402 on Base; errors are free] Live crypto prices for up to 25 coins per call: pass tickers in `symbols` (BTC,ETH,SOL,AERO,...; common tickers built in, others resolved by CoinGecko search to the largest coin with that ticker), CoinGecko `ids`, or one token `address` + `chain` (base default; ethereum, arbitrum, optimism, polygon, bsc, avalanche, solana). Returns price, market cap, 24h volume and 24h % change in each `vs` currency (usd default; up to 5, e.g. usd,eur,btc) plus last-updated time. Data: CoinGecko public API, cached 30 s; falls back to Coinbase spot rates (price only) if CoinGecko is unavailable. All params optional: with none it returns BTC and ETH in USD. Unknown coins = 404, invalid input = 400, never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"symbols": {
"type": "string",
"description": "Comma-separated tickers, e.g. BTC,ETH,SOL (max 25). Optional: defaults to BTC,ETH."
},
"ids": {
"type": "string",
"description": "Comma-separated CoinGecko coin ids, e.g. bitcoin,aerodrome-finance (optional)."
},
"vs": {
"type": "string",
"description": "Comma-separated quote currencies (max 5), e.g. usd,eur,btc. Default usd."
},
"address": {
"type": "string",
"description": "Optional token contract address; returns that token price (overrides symbols/ids)."
},
"chain": {
"type": "string",
"enum": [
"base",
"ethereum",
"arbitrum",
"optimism",
"polygon",
"bsc",
"avalanche",
"solana"
],
"description": "Chain of `address` (default base)."
}
},
"required": []
}🟢fx_rate(from, to, amount, date)
[PAID $0.002 USDC per call via x402 on Base; errors are free] Foreign-exchange rates from one base currency (`from`, default USD) to a list of currencies (`to`, comma-separated, or "all"; default 14 majors incl. EUR, GBP, JPY, CNY, INR, KRW, VND), with `amount` converted. Live mode uses Coinbase public exchange rates (updated about every minute, 160+ ISO 4217 currencies plus XAU/XAG), falling back to exchangerate-api daily rates. With `date=YYYY-MM-DD` it returns the ECB reference rates for that day (Frankfurter, ~30 major currencies, back to 1999-01-04). All params optional: with none it returns USD to 14 major currencies. Invalid codes = 400, never charged.
Esquema de entrada
{
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "Base currency, ISO 4217 code (default USD)."
},
"to": {
"type": "string",
"description": "Comma-separated target codes (max 50) or \"all\". Default: EUR,GBP,JPY,CNY,CHF,CAD,AUD,INR,KRW,SGD,HKD,MXN,BRL,VND."
},
"amount": {
"type": "number",
"minimum": 0,
"description": "Amount in `from` to convert (default 1)."
},
"date": {
"type": "string",
"description": "Optional YYYY-MM-DD for historical ECB reference rates (since 1999-01-04). Omit for live rates."
}
},
"required": []
}🟢free_site_check(url)
[FREE, 10 calls/hour per IP] Quick check of one public website: homepage meta/OG/canonical, security headers, HTTPS, and up to 20 links tested for breakage. For the deeper 3-page audit with leaked-key scan use website_audit (paid).
Esquema de entrada
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL or hostname to check."
}
},
"required": [
"url"
]
}Comunidad
Evidencia