{"data":{"name":"io.github.Blackwood-State/blackwood-state","title":"Blackwood State","description":"Pay-per-call tools for agents: onchain data, ECB FX rates, text tools. USDC on Base, x402","version":"1.2.0","websiteUrl":"https://x402-gateway.blackwoodstate8.workers.dev","repositoryUrl":null,"remotes":[{"url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp","type":"streamable-http"}],"packages":[{"version":"0.2.0","identifier":"@blackwood-state/mcp","runtimeHint":"stdio","registryType":"npm","runtimeArguments":null,"environmentVariables":null}],"status":"active","isLatest":true,"publishedAt":"2026-10-20T05:50:42.103Z","updatedAt":"2026-10-20T05:50:42.103Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Blackwood State","source":"official-registry","sourceId":"io.github.Blackwood-State/blackwood-state","updatedAt":"2026-10-20T05:50:42.103Z","confidence":100,"websiteUrl":"https://x402-gateway.blackwoodstate8.workers.dev","description":"Pay-per-call tools for agents: onchain data, ECB FX rates, text tools. USDC on Base, x402","verification":"official","repositoryUrl":null}],"toolIndex":{"tools":[{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_airport_delays","title":"Airport delays","description":"Use when you need airport delays, FAA ground stops or the airport status of a US airport right now, such as departure delays or closures. Do not use for the status of a flight number, airports outside the US or historical delays. Returns JSON with current US airport delays from the FAA: ground stops, ground delay programs with average and maximum delay, arrival and departure delays and closures, for all airports or one for 0.007 USDC per call. Typical response time 1500 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"airport":{"description":"US airport code to filter, e.g. SFO or KSFO (all airports with delays when omitted)","type":"string","pattern":"^[A-Za-z0-9]{3,4}$"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"5232d305d7a014a03a3e65508bf3ac8502237b3cb8eff852aa9cabc4c352e95b","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_altcoin_discovery","title":"Altcoin discovery on Base","description":"Use when you need altcoin discovery, new token listings or fresh Base tokens with real liquidity to research. Do not use for established coins, other chains or DEXs, price history, trading signals or token safety audits. Returns JSON with new tokens on Base that just got liquidity: Uniswap v3 pools created in the last hours against WETH or USDC, read on-chain from pool creation events, with price, depth and age for 0.003 USDC per call. Typical response time 3000 ms (p95). Category: Trading.","inputSchema":{"type":"object","properties":{"hours":{"description":"Look back this many hours for new pools, 1 to 72 (24 when omitted), e.g. 24","type":"integer","minimum":1,"maximum":72},"minDepthUsd":{"description":"Minimum USD on the WETH or USDC side of the pool (5000 when omitted), e.g. 10000","type":"number","minimum":0,"maximum":100000000},"limit":{"description":"Tokens to return, 1 to 25 (10 when omitted), e.g. 5","type":"integer","minimum":1,"maximum":25},"quote":{"description":"Quote side of the pool (any when omitted), e.g. \"WETH\"","type":"string","enum":["any","WETH","USDC"]},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"e81d719316f082c67b834379434a862ffc3128f7679887bad6aa439001ddd60e","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_audio_transcribe","title":"Speech to text","description":"Use when you need speech to text transcription or translation of an audio file at a public URL. Do not use for audio over 10 MB or speaker labels. Returns JSON with a Whisper transcription of an audio file: text, timed segments and language, or an English translation for 0.005 USDC per megabyte, up to 0.05 USDC per call (clients without upto pay the cap). Result in the same call (about 20000 ms); a status tool polls for free if it takes longer. Category: Media.","inputSchema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri","description":"Public http(s) URL of the audio file, e.g. https://example.com/talk.mp3 (mp3, wav, ogg, m4a, webm; up to 10 MB)"},"task":{"description":"transcribe keeps the spoken language; translate returns English (transcribe when omitted)","type":"string","enum":["transcribe","translate"]},"language":{"description":"ISO 639-1 code of the spoken language, e.g. en or pt (detected when omitted)","type":"string","pattern":"^[a-z]{2}$"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["url"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"2db59fe6b62cb2ebe9b6458b3f6a98442383c18e84767a9d9ea46c30248c78fa","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_audio_transcribe_status","title":"Speech to text (status)","description":"Free. Status and result of a job created by blackwood_audio_transcribe. Poll until done is true.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"maxLength":100}},"required":["jobId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"520a8acefc76f79fe3ebee47eb5d15970d63388ff9d0662442628420d3622af2","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_company_dossier","title":"Company research dossier","description":"Use when you need company research, due diligence or a quick analysis of a business from its website domain and optional ticker. Do not use for private financials, credit scores, people search or businesses without a website. Returns JSON with a company research dossier in one call: domain registration and DNS, email and website security, latest news and, with a ticker, SEC financials, priced below the separate calls for 0.03 USDC per call. Typical response time 8000 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":253,"description":"Company website domain, e.g. stripe.com"},"ticker":{"description":"Stock ticker for SEC financials, US filers only (no financials when omitted), e.g. AAPL","type":"string","pattern":"^[A-Za-z][A-Za-z0-9.-]{0,9}$"},"name":{"description":"Company name for the news search (taken from the domain when omitted), e.g. Stripe","type":"string","minLength":2,"maxLength":100},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["domain"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"b30dca503542ec8aa56caa2d02ef80e31ee87155806b1671ea37f2c71f6299a4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_credits_balance","title":"Prepaid credits balance","description":"Use this when you call Blackwood State tools many times and want to pay once: returns the prepaid credit balance of the API key sent as Authorization: Bearer on this MCP connection, recent debits and the top-up packs (pay once via x402, then every tool call debits the balance with no payment signature). Free. Category: Infrastructure.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"16d1123532b1d94beb0fda8bbbb795203302a9567ac4120982924126b06b00b6","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_crypto_news","title":"Crypto news","description":"Use when you need crypto news or crypto market news headlines about a token or the market from recent articles. Do not use for prices, full article text, social media posts or news older than 72 hours. Returns JSON with the latest crypto news headlines from the last 72 hours (title, link, source, time, tone, people and organizations) about bitcoin, ethereum and blockchain news, from the GDELT news graph for 0.005 USDC per call. Typical response time 1500 ms (p95). Category: Search.","inputSchema":{"type":"object","properties":{"token":{"description":"Narrow to one coin, chain or company, e.g. solana, xrp or coinbase (any crypto news when omitted)","type":"string","pattern":"^[A-Za-z0-9]{2,30}$"},"hours":{"description":"How far back to search, in hours (1-72, default 24)","type":"integer","minimum":1,"maximum":72},"limit":{"description":"Most articles to return (1-50, default 20), newest first","type":"integer","minimum":1,"maximum":50},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"6aa38ab8c0caa022326bb4c95a2f9c11bd7d222df991ae1d3ad23ab06afbbb80","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_domain_intel","title":"Domain intelligence","description":"Use when you need a domain lookup, whois, dns records or certificate transparency data for osint, security or due diligence. Do not use for historical whois, registrant personal data (redacted by registries) or port and vulnerability scans. Returns JSON with domain intelligence: WHOIS/RDAP registration, DNS records (A, AAAA, MX, NS, TXT, CAA), SPF and DMARC, and TLS certificates from certificate transparency logs for 0.02 USDC per call. Typical response time 4000 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","maxLength":254,"pattern":"^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}\\.?$","description":"Domain name in ASCII (punycode for internationalized names), e.g. example.com"},"certificates":{"description":"Include issued TLS certificates from Certificate Transparency (crt.sh); true when omitted","type":"boolean"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["domain"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"cb47615f8e843bb03a534b5a1c85580dea40204171410329e4592df6b937ef99","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_email_batch","title":"Email list check","description":"Use when you need bulk email validation, email list verification or to verify email lists before a send or import. Do not use for one address (email-check is cheaper), proving a mailbox exists (no SMTP probe) or sending email. Returns JSON checking up to 20 email addresses in one call: syntax, MX records, disposable, free and role flags, SPF, DMARC and a verdict each, plus counts by verdict for 0.02 USDC per call. Typical response time 2500 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"emails":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","maxLength":320},"description":"Email addresses to check, 1 to 20, e.g. [\"jane@example.com\", \"info@ietf.org\"]"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["emails"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"d794a36fe5366b54772e16ee3c194a62413dd24ff54824c66c35e737284033c4","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_email_check","title":"Email validation","description":"Use when you need email validation, to verify email addresses or validate email syntax and MX records before sending or signup. Do not use for confirming that the mailbox itself exists (no SMTP probe is done) or sending email. Returns JSON with email verification of one address: syntax, domain MX records, disposable, free and role-account flags, SPF and DMARC, and a verdict on whether the domain can receive mail for 0.005 USDC per call. Typical response time 800 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":254,"description":"Email address to check, e.g. jane@example.com"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["email"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"d21cfa68f4429e9fad7f0686931005b92cd0b31c209a305fcaf16967ccd998fb","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_ens_lookup","title":"ENS name lookup","description":"Use when you need to resolve an ENS name to an address, reverse-resolve an address to its ENS name, or read an ENS avatar and profile records. Do not use for registering or renewing names, or non-ENS naming such as Solana SNS. Returns JSON with an ENS lookup on Ethereum in one call: the address of a name, the verified primary name of an address (reverse), the avatar and text records such as url, twitter and github for 0.003 USDC per call. Typical response time 2000 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"name":{"description":"ENS name to resolve, e.g. vitalik.eth (send name or address, not both)","type":"string","minLength":3,"maxLength":255},"address":{"description":"Ethereum address to reverse-resolve, e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 (send name or address, not both)","type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"texts":{"description":"Text record keys to read (avatar, url, description, com.twitter, com.github and email when omitted), e.g. [\"url\", \"com.github\"]","minItems":1,"maxItems":10,"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"}},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"5a1fb23f8a8b981166311b8d8cd4a6157f8cfb9de6df10e6b2d4b14688610180","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_fx_history","title":"Historical exchange rates","description":"Use when you need historical exchange rates, a historical FX rate series, forex history or a currency trend. Do not use for rates older than 90 days, live quotes or crypto (one ECB rate per business day). Returns JSON with historical exchange rates: 90 days of daily ECB euro reference rates (free at ecb.europa.eu) for up to 10 currencies, rebased to any base as cross rates, with min, max and percent change for 0.005 USDC per call. Typical response time 1500 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"symbols":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{3}$"},"description":"Currencies to return, ISO 4217, up to 10, e.g. [\"USD\", \"BRL\"]"},"base":{"description":"Base currency, ISO 4217 (EUR when omitted), e.g. USD","type":"string","pattern":"^[A-Za-z]{3}$"},"days":{"description":"Calendar days back from endDate, 1 to 90 (90 when omitted; ignored with startDate), e.g. 30","type":"integer","minimum":1,"maximum":90},"startDate":{"description":"First day, YYYY-MM-DD, within the last 90 days, e.g. 2026-09-01","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"endDate":{"description":"Last day, YYYY-MM-DD (latest ECB day when omitted), e.g. 2026-09-30","type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["symbols"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"a524d5f70220c22ab33607094773b2404d0ecd0ec4a7bacc84eee7da469d2079","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_fx_rates","title":"Currency exchange rates","description":"Use when you need currency exchange rates, fx rates or forex conversion of an amount between two currencies like EUR and GBP. Do not use for live trading quotes, intraday or crypto rates (ECB rates update once per business day). Returns JSON with currency exchange rates: official ECB euro reference FX rates (free at ecb.europa.eu) for about 30 currencies, rebased to any base as cross rates, with optional conversion for 0.005 USDC per call. Typical response time 1500 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"base":{"description":"Base currency, ISO 4217 (EUR when omitted), e.g. USD","type":"string","pattern":"^[A-Za-z]{3}$"},"symbols":{"description":"Currencies to return, e.g. [\"BRL\", \"JPY\"] (all ECB currencies when omitted)","minItems":1,"maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{3}$"}},"amount":{"description":"Amount in the base currency to convert, e.g. 100","type":"number","exclusiveMinimum":0,"maximum":1000000000000},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"63037a9accbb9f4249f0262de92ac7e9282e9f8bf41d978b3f5744672bb76c35","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_gas_fees","title":"Gas price and fees","description":"Use when you need the current gas price, an ethereum gas fee estimate before a transaction, or to compare gas fees across chains. Do not use for gas units of a given transaction, gas history or chains beyond Ethereum, Base and Solana. Returns JSON with the gas price and gas fees on Ethereum and Base (base fee, slow, standard and fast EIP-1559 fees in gwei, transfer cost) plus Solana priority fees for 0.002 USDC per call. Typical response time 1500 ms (p95). Category: Data.","inputSchema":{"type":"object","properties":{"chains":{"description":"Chains to read (ethereum, base and solana when omitted), e.g. [\"base\", \"ethereum\"]","minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["ethereum","base","solana"]}},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"b637bb3b00168e5753c672e8f67cf90d54af140ce59ce92c9f6d82d5bc73470e","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_headers_audit","title":"Security headers","description":"Use when you need an http security headers audit of a website or URL, with a grade and what to fix. Do not use for vulnerability scans, TLS cipher analysis or pages behind a login. Returns JSON auditing the HTTP security headers of a public URL (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, cookies) with a grade and fixes for 0.007 USDC per call. Typical response time 2500 ms (p95). Category: Infrastructure.","inputSchema":{"type":"object","properties":{"url":{"type":"string","minLength":8,"maxLength":2048,"description":"Public http(s) URL to audit, e.g. https://example.com"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["url"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"64abe87d60acee1d27cad0d8add586f536c0f1fd0a60e030eb7eabcbc083bcc5","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_image_generate","title":"Image generation","description":"Use when you need image generation, an AI image generator or text to image from a prompt for illustrations, mockups or social posts. Do not use for image edits, specific sizes, photos of real people or more than one image per call. Returns JSON with an AI-generated image from a text prompt: a 1024x1024 JPEG made by FLUX.1 schnell on Workers AI, as base64 for 0.03 USDC per call. Result in the same call (about 10000 ms); a status tool polls for free if it takes longer. Category: Media.","inputSchema":{"type":"object","properties":{"prompt":{"type":"string","minLength":3,"maxLength":2048,"description":"What the image should show, in English, e.g. a lighthouse on a cliff at sunset, watercolor"},"steps":{"description":"Diffusion steps (1-8, 4 when omitted); more steps, more detail","type":"integer","minimum":1,"maximum":8},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["prompt"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"49cade6eaf656c18a2e36f2b397218e5c191b2ce8e25bb54fb36df93b1dd7bae","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_image_generate_status","title":"Image generation (status)","description":"Free. Status and result of a job created by blackwood_image_generate. Poll until done is true.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"maxLength":100}},"required":["jobId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"600cd4b59517207db6ebad06052a2a590e757673f164828359658cfbad762c14","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_llm_chat","title":"LLM chat completion","description":"Use when you need an llm chat completion for summaries, extraction or classification from a cheap open model. Do not use for frontier models, tool calling or streaming. Returns JSON with a chat completion from IBM Granite 4.0 Micro on Workers AI, with token usage for 0.002 USDC per thousand tokens, up to 0.03 USDC per call (clients without upto pay the cap). Result in the same call (about 8000 ms); a status tool polls for free if it takes longer. Category: Inference.","inputSchema":{"type":"object","properties":{"messages":{"minItems":1,"maxItems":50,"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant"],"description":"Who wrote the message"},"content":{"type":"string","minLength":1,"maxLength":32000,"description":"Message text"}},"required":["role","content"]},"description":"Conversation so far, oldest first, e.g. [{\"role\": \"user\", \"content\": \"Summarize: ...\"}]"},"maxTokens":{"description":"Maximum tokens to generate (1-4096, 512 when omitted); billed as requested","type":"integer","minimum":1,"maximum":4096},"temperature":{"description":"Sampling temperature (0-2), e.g. 0.2 for near-deterministic output","type":"number","minimum":0,"maximum":2},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["messages"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"90f1dd29cbe35b62a141ea935422b60e603fca274d6c320c85e0b60174a6599d","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_llm_chat_status","title":"LLM chat completion (status)","description":"Free. Status and result of a job created by blackwood_llm_chat. Poll until done is true.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"maxLength":100}},"required":["jobId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"8b054c0e01bac4095a780ca299b1fe7276d93ab7bd7b2e343b936804ddd9e9a3","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_news_briefing","title":"News research briefing","description":"Use when you need a news briefing, a research summary of recent coverage or an analysis of what the press says about a topic or company. Do not use for breaking news, paywalled pages or one known article (use blackwood_webpage_markdown). Returns JSON with a research briefing on a topic in one call: up to 3 recent GDELT news articles, each read and summarized, with source and link, below the price of separate calls for 0.04 USDC per call. Typical response time 15000 ms (p95). Category: Search.","inputSchema":{"type":"object","properties":{"topic":{"type":"string","minLength":2,"maxLength":200,"description":"Topic, company or person to research, e.g. stablecoin regulation"},"hours":{"description":"How far back to look for news, in hours, 1 to 72 (24 when omitted), e.g. 48","type":"integer","minimum":1,"maximum":72},"language":{"description":"Language of the summaries (English when omitted), e.g. Portuguese","type":"string","minLength":2,"maxLength":30},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["topic"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true},"definitionHash":"51ea358ab4a3fbecc36eabadab4a2e25e0d6fe7a6da1cc488b3b494eff0e9fcf","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_news_search","title":"News headlines search","description":"Use when you need news articles or headlines from the last 72 hours about a topic, company or person. Do not use for full article text, paywalled sources, non-English coverage or news older than 72 hours. Returns JSON with recent news articles matching keywords: headline, URL, source, publish time, authors, tone, image and the people and organizations named, from GDELT for 0.008 USDC per call. Typical response time 600 ms (p95). Category: Search.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":200,"description":"Keywords to find in headlines, people and organizations, e.g. nvidia earnings (all words must match)"},"hours":{"description":"How far back to look, in hours (1-72, 24 when omitted)","type":"integer","minimum":1,"maximum":72},"domain":{"description":"Only articles from this source domain, e.g. reuters.com","type":"string","maxLength":253},"limit":{"description":"Maximum articles to return (1-50, 20 when omitted)","type":"integer","minimum":1,"maximum":50},"sort":{"description":"recent (default) or relevance","type":"string","enum":["recent","relevance"]},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["query"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"b3585ae6409691808c8fb04e1eac078918da3964051b2b33f8f7c624fbbc52ae","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_pdf_extract","title":"PDF to text","description":"Use when you need to extract text from a pdf, pdf to text or document parsing for an LLM. Do not use for scanned PDFs (no OCR), password-protected files or files over 15 MB. Returns JSON with PDF text extraction: the text of each page (first 20 pages) plus title, author and producer metadata for 0.0025 USDC per page, up to 0.05 USDC per call (clients without upto pay the cap). Result in the same call (about 10000 ms); a status tool polls for free if it takes longer. Category: Data.","inputSchema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri","description":"Public http(s) URL of the PDF file, e.g. https://example.com/report.pdf (up to 15 MB)"},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["url"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"b99a57f248ccfbdc0475878ae60639582da7ade36745b073fc853c23b210c424","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_pdf_extract_status","title":"PDF to text (status)","description":"Free. Status and result of a job created by blackwood_pdf_extract. Poll until done is true.","inputSchema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"maxLength":100}},"required":["jobId"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"07ccce954b1d51ca0cc147cbdfce38f30fe023168328d1a4627fbff1aae53c6e","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_qrcode_generate","title":"QR code","description":"Use when you need a qr code generator for a URL, text, Wi-Fi or payment link as an SVG image. Do not use for reading or decoding an existing QR code, logos, colored codes or PNG output. Returns JSON with a QR code for your text or URL as SVG markup and an SVG data URL, with error correction level and border options, generated by the uqr library for 0.004 USDC per call. Typical response time 500 ms (p95). Category: Media.","inputSchema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000,"description":"Text or URL to encode, e.g. https://example.com (up to 2000 characters)"},"ecc":{"description":"Error correction level: L 7%, M 15% (default), Q 25%, H 30%","type":"string","enum":["L","M","Q","H"]},"border":{"description":"Quiet zone around the code, in modules (default 2)","type":"integer","minimum":0,"maximum":10},"pixelSize":{"description":"SVG units per module (default 10)","type":"integer","minimum":1,"maximum":20},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["text"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"b240dbbb5395b14d2779821f2aa4342fd291e8adf53338523746649360b65398","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"},{"serverName":"io.github.Blackwood-State/blackwood-state","endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","name":"blackwood_random_generate","title":"Random numbers","description":"Use when you need a random number generator, dice rolls, a coin flip, a uuid or random bytes that no one can predict. Do not use for verifiable on-chain randomness (VRF) or reproducible seeded sequences. Returns JSON with cryptographically secure random values: integers in a range, dice rolls, coin flips, UUIDs or hex bytes, from the Workers Web Crypto CSPRNG for 0.005 USDC per call. Typical response time 500 ms (p95). Category: Infrastructure.","inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["integer","dice","coin","uuid","bytes"],"description":"integer (count values between min and max), dice (count rolls of a die with sides faces), coin (count flips), uuid (count UUID v4) or bytes (length random bytes as hex)"},"count":{"description":"How many values (1-100, default 1); ignored for bytes","type":"integer","minimum":1,"maximum":100},"min":{"description":"integer: lowest value, inclusive (default 1)","type":"integer","minimum":-1000000000,"maximum":1000000000},"max":{"description":"integer: highest value, inclusive (default 100)","type":"integer","minimum":-1000000000,"maximum":1000000000},"sides":{"description":"dice: faces of the die (default 6)","type":"integer","minimum":2,"maximum":1000},"length":{"description":"bytes: how many random bytes (1-256, default 32)","type":"integer","minimum":1,"maximum":256},"response_format":{"type":"string","enum":["concise","detailed"],"description":"concise (the default when omitted) keeps the JSON short: long fields such as base64 images or audio come back as separate image/audio content blocks and other long strings are cut with a marker; detailed returns the full JSON"}},"required":["kind"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"definitionHash":"85769481df04f87cb9c65cc2ad042c0f6d1f7e3e1e398d5dbd54b0db59f52fc9","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T23:46:14.491Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"3ab891698abe4c584cbff5c050c983a5aa797a63402263a4bc593998a485d63e","protocol":"streamable-http","status":"indexed","toolCount":38,"observedAt":"2026-10-31T23:46:14.491Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"io.github.Blackwood-State/blackwood-state":{"url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp"}}},"Cursor":{"mcpServers":{"io.github.Blackwood-State/blackwood-state":{"url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp"}}},"VS Code":{"servers":{"io.github.Blackwood-State/blackwood-state":{"type":"http","url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp"},{"protocol":"mcp","package":"@blackwood-state/mcp","registryType":"npm","version":"0.2.0"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:io.github.Blackwood-State%2Fblackwood-state","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/io.github.Blackwood-State%2Fblackwood-state","name":"io.github.Blackwood-State/blackwood-state","description":"Pay-per-call tools for agents: onchain data, ECB FX rates, text tools. USDC on Base, x402","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://x402-gateway.blackwoodstate8.workers.dev/mcp"},{"protocol":"mcp","package":"@blackwood-state/mcp","registryType":"npm","version":"0.2.0"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://x402-gateway.blackwoodstate8.workers.dev","repositoryUrl":null,"version":"1.2.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"io.github.Blackwood-State/blackwood-state","status":"online","lastCheckedAt":"2026-11-03T18:17:09.679Z","lastSuccessfulCheck":"2026-11-03T18:17:09.679Z","latencyMs":853,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T18:17:09.679Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T18:17:09.679Z"},"security":null,"timestamps":{"createdAt":"2026-10-20T05:50:42.103Z","updatedAt":"2026-10-20T05:50:42.103Z","observedAt":"2026-11-03T18:17:09.679Z"},"compatibility":{"serverVersion":"1.2.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}