{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T16:32:41.307Z","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api","markdownUrl":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api.md","server":{"slug":"group-highlnd-intel-highland-apis","name":"Highland Intel APIs","registryName":"group.highlnd-intel/highland-apis","description":"70 pay-per-call APIs: DNS, email auth, security headers, web search, scraping, AI. x402 USDC/Base","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api","type":"remote","identifier":"https://api.highlnd-intel.group/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api","version":"1.0.0","transport":null,"scoredAt":"2026-11-06T00:29:01.526Z"},"score":{"total":65,"tier":"medium","status":"scored","weekDelta":4,"history":[{"date":"2026-11-06","total":65},{"date":"2026-11-05","total":64},{"date":"2026-11-04","total":64},{"date":"2026-11-03","total":63},{"date":"2026-11-02","total":63},{"date":"2026-11-01","total":62},{"date":"2026-10-31","total":62},{"date":"2026-10-30","total":61},{"date":"2026-10-29","total":61},{"date":"2026-10-28","total":60}]},"categories":[{"name":"Endpoint Security","score":57,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not fully verified: no authorisation is required to call this server, and 1 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS is enforced; there's no plaintext access path.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_undeclared","args":{"undeclared_tools":"1"}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":70,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 9785 tokens (~139/item across 70 items; 70 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"139","items":"70","tools":"70","tokens":"9785","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":30,"verdict":"partial","reasons":["Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"9"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":75,"verdict":"fail","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; \"cors-check\" implies \"send\" and declares readOnlyHint instead, contradicting what its own name says it does.","An AI judge read all 71 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_undeclared","args":{"pct":"0","tool":"cors-check","verb":"send","declared":"read_only","annotated":"0","destructive":"1"}},{"code":"toolsafety.manipulation_clean","args":{"units":"71","judged":"71"}}]},{"name":"Capabilities","score":60,"verdict":"fail","reasons":["Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28."],"codes":[{"code":"protocol.outdated","args":{"latest":"2026-07-28","version":"2025-06-18"}}]}],"inconclusive":["Authorisation not fully verified: no authorisation is required to call this server, and 1 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe."],"malware":[],"components":[{"slug":"api","type":"remote","identifier":"https://api.highlnd-intel.group/mcp","withdrawn":false,"score":65,"current":true,"url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api","markdownUrl":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api.md"}],"facts":[{"label":"Endpoint","value":"https://api.highlnd-intel.group/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"dns-lookup","title":"DNS records","description":"A, AAAA, MX, NS and TXT records for a domain over DNS-over-HTTPS. Returns { domain, records: { A, AAAA, MX, NS, TXT } }: each record type as a list of strings. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":124},{"name":"mail-auth","title":"Email authentication check","description":"SPF and DMARC presence and policy strength for a domain. Returns { domain, spf, dmarc, dmarcPolicy, findings, pass }: the SPF and DMARC records, the DMARC policy and finding codes. Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"header-audit","title":"HTTP security header audit","description":"Which security headers a site's HTTPS front page sends, with a simple grade. Returns { domain, status, present, missing, grade, server }: security headers sent and missing, and a grade A, B, C or F. Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"https-redirect","title":"HTTPS redirect check","description":"Whether plain HTTP redirects to HTTPS, and whether HSTS is set. Returns { domain, redirectsToHttps, hsts, hstsMaxAge, hstsStrong }: HTTP-to-HTTPS redirect and HSTS status. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":120},{"name":"security-txt","title":"security.txt check","description":"Fetches /.well-known/security.txt and reports Contact and Expires (RFC 9116). Returns { domain, present, hasContact, expires, expired }: whether security.txt exists, has a Contact and has expired. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":120},{"name":"summarize","title":"Summarize","description":"Three-bullet summary of up to 8,000 characters. Input is PII-redacted first. Returns { summary }: up to three short bullet points as one string. Price: 4 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Text to process, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted before the model sees it."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"classify","title":"Classify","description":"Picks one label from your list (2 to 20 labels) for a piece of text. Returns { label, labels }: the chosen label (one of yours, or null if none fit) and the labels sent. Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"labels","type":"array","required":true,"description":"Candidate labels, 2 to 20, each 1 to 40 characters; the answer is always one of these or null."},{"name":"text","type":"string","required":true,"description":"Text to process, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted before the model sees it."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":156},{"name":"translate","title":"Translate (EN/FR and more)","description":"Translates text between languages; defaults to English to French for NS/NB customers. Returns { translated, source, target }: the translated text and the language pair used. Price: 4 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"source","type":"string","required":false,"description":"ISO 639-1 two-letter lower-case language code of the input text."},{"name":"target","type":"string","required":false,"description":"ISO 639-1 two-letter lower-case language code to translate into."},{"name":"text","type":"string","required":true,"description":"Text to process, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted before the model sees it."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":156},{"name":"pii-redact","title":"PII redaction","description":"Strips emails, phone numbers, card numbers, SINs and IPv4s. Runs locally, no model. Returns { text, counts }: the redacted text with [EMAIL]-style placeholders and a count per kind (email, card, sin, phone, ip). Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"ip","type":"boolean","required":false,"description":"Also redact IPv4 addresses."},{"name":"text","type":"string","required":true,"description":"Text to redact, up to 32,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":124},{"name":"text-stats","title":"Text statistics","description":"Word, sentence and character counts, reading time and a Flesch reading-ease score. Returns { characters, words, sentences, readingMinutes, fleschReadingEase }. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Text to measure, up to 64,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"json-validate","title":"JSON Schema validate","description":"Validates a JSON value against a JSON-Schema subset and lists every error path. Returns { valid, errors }: true when the value matches, and one message per error path (up to 50). Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"schema","type":"object","required":true,"description":"JSON Schema subset to check against: type, required, properties, items, enum, minimum, maximum, minLength, maxLength."},{"name":"value","type":null,"required":true,"description":"Any JSON value to validate (object, array, string, number, boolean or null)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"regex-test","title":"Regex tester","description":"Runs a JavaScript regex over sample text and returns matches and groups (capped sizes). Returns { count, matches }: up to 100 matches, each { match, index, groups }. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"flags","type":"string","required":false,"description":"Regex flags from g, i, m, s, u, y; g is always added."},{"name":"pattern","type":"string","required":true,"description":"JavaScript regular expression source, without slashes, up to 200 characters."},{"name":"text","type":"string","required":true,"description":"Sample text to search, up to 2,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":143},{"name":"cron-explain","title":"Cron explainer","description":"Explains a 5-field cron expression in plain English (UTC, as Cloudflare runs it). Returns { cron, explanation }: the expression and a plain-English reading of it. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"cron","type":"string","required":true,"description":"Five-field cron expression (minute hour day-of-month month day-of-week), read as UTC like Cloudflare Cron Triggers."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":106},{"name":"text-diff","title":"Text diff","description":"Line-by-line diff of two texts (up to 500 lines each). Returns { added, removed, diff }: line counts and the diff lines prefixed with space, - or +. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"a","type":"string","required":true,"description":"Original text, up to 32,000 characters and 500 lines."},{"name":"b","type":"string","required":true,"description":"Changed text, up to 32,000 characters and 500 lines."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":119},{"name":"hash","title":"Hash","description":"SHA-1/256/384/512 hex digest of UTF-8 text. Returns { algorithm, hex }: the lower-case hex digest. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"algorithm","type":"string","required":false,"description":"Digest algorithm."},{"name":"text","type":"string","required":true,"description":"Text to hash as UTF-8, up to 64,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"hst-calc","title":"Nova Scotia HST calculator","description":"Adds 14% NS HST to a subtotal, or splits a tax-included total. Confirm the rate with CRA. Returns { subtotalCents, hstCents, totalCents, rate }. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"amountCents","type":"integer","required":true,"description":"Pre-tax subtotal, or the tax-included total when included is true. Integer CAD cents."},{"name":"included","type":"boolean","required":false,"description":"amountCents already includes HST: split it instead of adding to it."},{"name":"rate","type":"number","required":false,"description":"HST rate as a fraction (0.14 is the Nova Scotia rate)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":153},{"name":"quote-build","title":"Quote builder","description":"Totals line items, applies a discount and HST, and computes a deposit. No customer details taken. Returns { lines, grossCents, discountCents, subtotalCents, hstCents, totalCents, rate, depositCents }. Price: 5 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"depositPct","type":"number","required":false,"description":"Deposit as a percent of the tax-included total."},{"name":"discountPct","type":"number","required":false,"description":"Discount on the gross total, in percent."},{"name":"items","type":"array","required":true,"description":"Line items, 1 to 100."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"invoice-number","title":"Invoice number","description":"Formats PREFIX-YYYYMM-NNNNN-C with a Luhn check digit, or validates one. Returns { invoice } when formatting, or { valid } when validating. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"prefix","type":"string","required":false,"description":"Two to six upper-case letters."},{"name":"sequence","type":"integer","required":false,"description":"Invoice sequence number. Required unless validate is given."},{"name":"validate","type":"string","required":false,"description":"An invoice number to check instead of formatting one; when given, the other fields are ignored."},{"name":"yyyymm","type":"string","required":false,"description":"Year and month as YYYYMM; defaults to the current UTC month."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":148},{"name":"uptime-check","title":"Uptime check","description":"One HTTPS probe of a public domain: status, latency and whether it looks up. Returns { domain, up, status, ms }: up is true for any status below 500; status is null when the host does not answer. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."},{"name":"path","type":"string","required":false,"description":"Path to probe, starting with /, letters, digits, _ . / - only."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":146},{"name":"web-search","title":"Web search","description":"Neural or keyword web search with highlights, for agents. Up to 10 results, public URLs only. Returns { query, results: [{ title, url, publishedDate, score, highlights }] }: up to 10 results, each with up to 3 highlights of 500 characters. Price: 8 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"excludeDomains","type":"array","required":false,"description":"Never return results from these domains (up to 20)."},{"name":"includeDomains","type":"array","required":false,"description":"Only return results from these domains (up to 20)."},{"name":"numResults","type":"integer","required":false,"description":"Results to return, 1 to 10."},{"name":"query","type":"string","required":true,"description":"Search query, 1 to 500 characters."},{"name":"startPublishedDate","type":"string","required":false,"description":"Only pages published on or after this date (YYYY-MM-DD, UTC)."},{"name":"type","type":"string","required":false,"description":"Search mode: auto (default), neural (semantic) or fast."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":210},{"name":"web-contents","title":"Web page contents","description":"Clean text of up to 5 public pages, capped per page, for agents to read. Returns { results: [{ url, title, publishedDate, text, characters }] }: one entry per page the provider could read. Price: 6 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"maxCharacters","type":"integer","required":false,"description":"Text kept per page, 500 to 10,000 characters."},{"name":"urls","type":"array","required":true,"description":"1 to 5 public http(s) URLs."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":122},{"name":"find-similar","title":"Find similar pages","description":"Pages similar in meaning to a given public URL, with highlights. Up to 10 results. Returns { url, results: [{ title, url, publishedDate, score, highlights }] }. Price: 8 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"excludeSourceDomain","type":"boolean","required":false,"description":"Leave out pages from the same domain as the URL (default true)."},{"name":"numResults","type":"integer","required":false,"description":"Results to return, 1 to 10."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local and metadata addresses, internal hostnames and this service's own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":152},{"name":"web-scrape","title":"Web scrape to Markdown","description":"Main content of one public page as Markdown (up to 50,000 characters), with title and status. Returns { url, finalUrl, title, description, statusCode, markdown, characters, truncated }. Price: 7 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"maxChars","type":"integer","required":false,"description":"Markdown kept, 1,000 to 50,000 characters."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local and metadata addresses, internal hostnames and this service's own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":138},{"name":"web-map","title":"Site map","description":"Discovers the URLs of a public site (up to 200), optionally ranked by a search term. Returns { url, count, links }: up to 200 unique public URLs. Price: 6 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"includeSubdomains","type":"boolean","required":false,"description":"Also include links on subdomains of the site."},{"name":"limit","type":"integer","required":false,"description":"Links to return, 1 to 200."},{"name":"search","type":"string","required":false,"description":"Optional term to rank and filter links by, up to 200 characters."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local and metadata addresses, internal hostnames and this service's own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":165},{"name":"web-extract","title":"Structured web extract","description":"Scrapes a public page and fills your flat schema (up to 20 typed fields) from it. Values are type-checked. Returns { url, finalUrl, title, data, missing }: one value per field (typed, or null when the page does not say) and the required fields that came back null. Price: 10 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"schema","type":"object","required":true,"description":"Flat JSON Schema of what to extract: { type: \"object\", properties: { <name>: { type: string|number|integer|boolean, description?, enum? } }, required? }. 1 to 20 fields; names match ^[A-Za-z_][A-Za-z…"},{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local and metadata addresses, internal hostnames and this service's own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":228},{"name":"enrich-url","title":"Enrich URL","description":"Profiles one public page: title, summary, organisations and other entities, topics, sentiment and public contact points. Returns { url, finalUrl, title, summary, entities: [{ text, type }], topics, sentiment: { label, score }, contact_points: { emails, phones, pages, social } }. Only role mailboxes (info@, sales@ ...) are returned. Price: 12 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local and metadata addresses, internal hostnames and this service's own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":150},{"name":"enrich-company","title":"Enrich company","description":"Company profile from public web sources: name, description, industry, recent signals and the sources used. Returns { name, domain, description, industry, signals, sources: [{ url, title }] }: up to 5 signals and 8 sources. Organisations only, never people. Price: 14 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":131},{"name":"entity-extract","title":"Entity extraction","description":"Named entities of fixed types (person, organization, location, product, event, date, money, law, technology), each found verbatim in your text. Returns { entities: [{ text, type }], counts }: up to 50 entities, each present in the (redacted) text, and a count per type. Price: 10 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Text to analyse, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted first."},{"name":"types","type":"array","required":false,"description":"Entity types to return; default all nine."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":158},{"name":"keywords","title":"Keywords","description":"Key phrases of your text, each found verbatim in it; falls back to a frequency ranking if the model answer is unusable. Returns { keywords, source }: up to `max` phrases and whether they came from the model or the frequency fallback. Price: 10 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"max","type":"integer","required":false,"description":"Keywords to return, 1 to 25."},{"name":"text","type":"string","required":true,"description":"Text to analyse, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":142},{"name":"sentiment","title":"Sentiment","description":"Positive, negative or neutral, with a score from -1 to 1, from a sentiment classifier over up to 8,000 characters. Returns { label, score, positive, negative, chunks }: label is positive, negative or neutral (below 0.6 confidence); score is positive minus negative. Price: 10 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Text to analyse, 1 to 8,000 characters. Emails, phone numbers, card numbers, SINs and IPv4s are redacted first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":137},{"name":"cf-ip-check","title":"Cloudflare IP check","description":"Says whether an IPv4 or IPv6 address is in Cloudflare's published edge ranges, and which range. Returns { ip, version, cloudflare, range, rangesAsOf }: range is the matching CIDR or null. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"ip","type":"string","required":true,"description":"IPv4 (dotted quad) or IPv6 address, without a port or zone id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":110},{"name":"wrangler-lint","title":"Wrangler config lint","description":"Lints a wrangler.jsonc or wrangler.toml: name, entry point, compatibility date, secrets left in vars, routes. Returns { ok, format, findings[{ severity: error|warning|info, code, path, message }] and counts { error, warning, info } }. Values are never echoed, only paths. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"config","type":"string","required":true,"description":"The wrangler.jsonc, wrangler.json or wrangler.toml text, up to 60,000 characters."},{"name":"format","type":"string","required":false,"description":"Config format; auto treats text starting with { as JSONC, otherwise TOML."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":161},{"name":"cron-to-cf","title":"Cron to Cloudflare trigger","description":"Checks a cron expression against Cloudflare Cron Trigger syntax, explains it, lists the next runs and gives the wrangler snippet. Returns { valid, cron, errors, warnings, explanation, nextRuns (up to 5 ISO times, standard syntax only), snippets { jsonc, toml } }. Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"cron","type":"string","required":true,"description":"Cron expression. Cloudflare uses 5 fields in UTC, weekdays 1 to 7 with 1 = Sunday (or SUN-SAT), and allows L, W and #."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":143},{"name":"mcp-config-validate","title":"MCP config validator","description":"Validates a Claude Code .mcp.json: transports, commands, URLs, headers and env, and flags literal secrets by path. Returns { ok, servers[{ name, transport }], findings[{ severity: error|warning|info, code, path, message }] and counts { error, warning, info } }. Values are never echoed. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"config","type":null,"required":true,"description":"The config as a JSON string (comments and trailing commas allowed) or as an object, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"claude-md-lint","title":"CLAUDE.md lint","description":"Lints a CLAUDE.md: size, structure, @imports, and secrets, passwords or email addresses that should not be there. Returns { ok, stats { characters, lines, approxTokens, headings, imports }, findings[{ severity: error|warning|info, code, path, message }] and counts { error, warning, info } }. Paths are line numbers. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"The CLAUDE.md text, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":138},{"name":"hooks-validate","title":"Claude Code hooks validator","description":"Validates a Claude Code hooks block (or a whole settings.json): events, matchers, hook types, timeouts and risky commands. Returns { ok, events, hookCount, findings[{ severity: error|warning|info, code, path, message }] and counts { error, warning, info } }. Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"config","type":null,"required":true,"description":"The config as a JSON string (comments and trailing commas allowed) or as an object, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":132},{"name":"slash-command-scaffold","title":"Slash command scaffold","description":"Writes a ready-to-save Claude Code slash command file with frontmatter, $ARGUMENTS and a step outline. Returns { path, content, usage }: save content at path (.claude/commands/<name>.md). Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"allowedTools","type":"array","required":false,"description":"Optional tool rules the command may use, e.g. Read or Bash(git diff:*)."},{"name":"argumentHint","type":"string","required":false,"description":"Optional hint for the arguments, e.g. [file] [focus]."},{"name":"description","type":"string","required":true,"description":"One-line description shown in the / menu."},{"name":"name","type":"string","required":true,"description":"Command name: lowercase letters, digits and -, up to 40 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":169},{"name":"token-count","title":"Token count estimate","description":"Estimated token counts for cl100k-like, o200k-like, Claude-like and Llama-like tokenizers plus a char/4 baseline. Deterministic estimates, not exact counts. Returns { estimates: { cl100k, o200k, claude, llama, char4 }, chars, bytes, pieces, method, exact: false } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Text to count, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":127},{"name":"chunk-text","title":"RAG text chunker","description":"Splits text for retrieval by estimated tokens, sentences or markdown headings, with token overlap and stable SHA-256 chunk ids. Returns { chunks: [{ id (sha-256 hex of the chunk text), index, text, tokens, start, end, heading? }], count, mode, size, overlap, family, method } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"family","type":"string","required":false,"description":"Tokenizer family used for counts: cl100k, o200k, claude or llama (all estimates)."},{"name":"mode","type":"string","required":false,"description":"Split by estimated tokens, by sentence boundaries, or by markdown heading sections (each chunk carries its heading)."},{"name":"overlap","type":"integer","required":false,"description":"Estimated tokens repeated from the end of one chunk at the start of the next; must be under half of size."},{"name":"size","type":"integer","required":false,"description":"Target maximum estimated tokens per chunk, 32 to 4000."},{"name":"text","type":"string","required":true,"description":"Text or markdown to chunk, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":230},{"name":"dataset-validate","title":"Fine-tune dataset validator","description":"Checks chat (OpenAI-style), messages (Anthropic-style) or Alpaca JSONL: per-line errors, role order, empty turns, duplicates, token estimates and a training-cost estimate from your price. Returns { format, lines, valid, invalid, ok, errors: [{ line, code, message }] (first 100), errorCount, errorsTruncated, duplicates: [{ line, firstLine }], duplicateCount, tokens: { total, mean, max }, costEstimate } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"epochs","type":"integer","required":false,"description":"Training epochs for the cost estimate, 1 to 50."},{"name":"format","type":"string","required":false,"description":"openai (messages with system/user/assistant/tool), anthropic (top-level system + user/assistant messages), alpaca (instruction/input/output), or auto to detect from the first parseable row."},{"name":"jsonl","type":"string","required":true,"description":"JSONL: one JSON object per line, up to 60,000 characters and 5,000 lines. Blank lines are ignored."},{"name":"pricePerMillionTokens","type":"number","required":false,"description":"Optional: your training price per million tokens, used only for costEstimate (any currency)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":266},{"name":"dataset-convert","title":"Fine-tune dataset converter","description":"Converts JSONL between OpenAI-style chat, Anthropic-style messages and Alpaca rows. System prompts move between the system message and the top-level field; rows that cannot convert are listed. Returns { from, to, converted, skippedCount, skipped: [{ line, reason }], jsonl } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"from","type":"string","required":false,"description":"openai (messages with system/user/assistant/tool), anthropic (top-level system + user/assistant messages), alpaca (instruction/input/output), or auto to detect from the first parseable row."},{"name":"jsonl","type":"string","required":true,"description":"JSONL: one JSON object per line, up to 60,000 characters and 5,000 lines. Blank lines are ignored."},{"name":"to","type":"string","required":true,"description":"Target format: openai, anthropic or alpaca (alpaca takes single user/assistant exchanges only)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":209},{"name":"dataset-split","title":"Seeded dataset split","description":"Deterministic seeded shuffle and train/val/test split of JSONL rows. The same seed and input always give the same split. Returns { seed, ratios, counts: { train, val, test, skipped }, train, val, test } (each split as JSONL) Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"jsonl","type":"string","required":true,"description":"JSONL: one JSON object per line, up to 60,000 characters and 5,000 lines. Blank lines are ignored."},{"name":"seed","type":"string","required":false,"description":"Shuffle seed; any string."},{"name":"test","type":"number","required":false,"description":"Share of rows for test."},{"name":"train","type":"number","required":false,"description":"Share of rows for train. train + val + test must equal 1."},{"name":"val","type":"number","required":false,"description":"Share of rows for validation."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":189},{"name":"embed","title":"Text embeddings","description":"Embeds 1 to 16 short texts with the fixed Workers AI model @cf/baai/bge-base-en-v1.5 (768 dimensions) for search and clustering. Returns { model, dimensions, count, vectors: number[][] } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"inputs","type":"array","required":true,"description":"1 to 16 texts, each up to 2000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"similarity","title":"Semantic similarity ranking","description":"Ranks up to 15 candidate texts by cosine similarity to a query, using @cf/baai/bge-base-en-v1.5 embeddings. Returns { model, ranked: [{ index, score }] (highest first), scores: number[] (input order) } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"candidates","type":"array","required":true,"description":"1 to 15 candidate texts, each up to 2000 characters."},{"name":"query","type":"string","required":true,"description":"Query text, up to 2000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":130},{"name":"prompt-lint","title":"Prompt safety lint","description":"Flags prompt-injection phrasing, chat-template tokens, hidden characters, PII and secrets per line, and lists {{variables}}. Rule-based, no model call; flagged text is never echoed. Returns { ok, findings: [{ kind, severity, line, detail }], counts: { high, medium, low }, variables } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"prompt","type":"string","required":true,"description":"Prompt or template text to check, up to 60,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":127},{"name":"jwt-decode","title":"JWT decoder","description":"Decodes a JWT header and payload without verifying it, with warnings for alg none, missing or past exp, future nbf/iat and risky header fields. Returns { header, payload, signatureBytes, times: { exp, nbf, iat, expired }, verified: false, warnings, note } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"token","type":"string","required":true,"description":"Compact JWS (header.payload.signature). It is decoded only; do not send production tokens you cannot rotate."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"url-parse","title":"URL parser","description":"Splits a URL into scheme, host, port, path segments, query (repeated keys as arrays) and fragment, with warnings for credentials, plain http and punycode. Passwords are never echoed. Returns { href, protocol, username, hasPassword, hostname, port, pathname, pathSegments, query, hash, origin, isIp, warnings } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"url","type":"string","required":true,"description":"Absolute URL to parse. It is not fetched."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"base64","title":"Base64 encode and decode","description":"Encodes UTF-8 text to standard or url-safe base64, or decodes either form; binary results that are not valid UTF-8 come back as hex. Returns encode: { base64, variant, bytes } · decode: { text | null, hex | null, utf8, bytes } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"data","type":"string","required":true,"description":"Text to encode, or base64 (standard or url-safe, padding optional) to decode."},{"name":"mode","type":"string","required":true,"description":"encode turns text into base64; decode turns base64 into text (or hex)."},{"name":"variant","type":"string","required":false,"description":"Output alphabet when encoding: standard (+/ and padding) or url (-_ without padding)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":172},{"name":"uuid","title":"UUID generator","description":"Generates 1 to 100 random v4 or time-ordered v7 UUIDs (RFC 9562) from Web Crypto. Returns { version, uuids: string[] } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"count","type":"integer","required":false,"description":"How many UUIDs, 1 to 100."},{"name":"version","type":"integer","required":false,"description":"4 for random, 7 for Unix-ms time-ordered (sortable, good for database keys)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"user-agent-parse","title":"User-agent parser","description":"Identifies browser, engine, OS, device class and known crawlers, AI bots and HTTP clients from a User-Agent string. Rule-based; user agents can be spoofed. Returns { browser: { name, version }, engine, os: { name, version }, device, isBot, bot } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"userAgent","type":"string","required":true,"description":"The User-Agent header value."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"cors-check","title":"CORS check","description":"Sends a GET with an Origin header (and an OPTIONS preflight for non-simple methods, custom headers or credentials) to a public URL and reports the Access-Control-* headers with an allowed/blocked verdict. Returns { url, finalUrl, origin, status, preflight: { status } | null, headers: { acao, acac, acam, acah, vary }, allowed, issues } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"credentials","type":"boolean","required":false,"description":"Whether the call sends cookies or auth (credentials: include)."},{"name":"method","type":"string","required":false,"description":"Method the browser call would use; non-simple methods trigger a preflight."},{"name":"origin","type":"string","required":false,"description":"Origin the browser would send, e.g. https://app.example.com."},{"name":"requestHeaders","type":"array","required":false,"description":"Request header names the call would send (triggers a preflight when non-empty)."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local, metadata and our own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":232},{"name":"openapi-lint","title":"OpenAPI lint","description":"Checks an OpenAPI 3.0/3.1 document (as JSON): version, info, paths, responses, unique operationIds, declared path parameters and unresolved local $refs. Returns { valid, version, operations, refs, unresolvedRefs, errors: [{ path, message }], warnings: [{ path, message }] } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"spec","type":"object","required":true,"description":"The OpenAPI document as a JSON object (convert YAML first). Request bodies are capped at 64 KiB."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136},{"name":"http-status","title":"HTTP status lookup","description":"Name, meaning, class, retryability and default cacheability of an HTTP status code, including Cloudflare's 52x codes. Returns { code, name, meaning, class, known, retryable, cacheableByDefault } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"code","type":"integer","required":true,"description":"Status code, 100 to 599."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"og-preview","title":"Link preview (Open Graph)","description":"Fetches a public page (first 512 KB) and returns its link-preview metadata: title, description, image, Open Graph and Twitter tags, canonical URL, icons and missing tags. Returns { url, finalUrl, status, title, description, image, siteName, canonical, icons, lang, og, twitter, missing, truncated } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"url","type":"string","required":true,"description":"Public http(s) URL. Private, loopback, link-local, metadata and our own hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136},{"name":"code-review","title":"AI code review","description":"Reviews a code snippet and returns concrete issues (bugs, security, performance, style) with severity and a fix for each. Returns { language, summary, issues: [{ severity, line, issue, fix }] } Price: 4 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"code","type":"string","required":true,"description":"Source code to review, up to 6,000 characters."},{"name":"language","type":"string","required":false,"description":"Language name, or omit to auto-detect."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":116},{"name":"commit-message","title":"Commit message writer","description":"Turns a unified diff into a Conventional Commits message: type, scope, subject and body. Returns { message, type, scope, subject, body } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"diff","type":"string","required":true,"description":"Unified diff (git diff output), up to 7,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"regex-from-english","title":"Regex from English","description":"Writes a JavaScript regex from a plain-English description, compiles it, and tests it against your sample strings. Returns { pattern, flags, literal, explanation, tests: [{ input, expected, got }], passed, total } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"description","type":"string","required":true,"description":"What the regex should match, in plain English."},{"name":"should_match","type":"array","required":false,"description":"Strings that must match."},{"name":"should_not_match","type":"array","required":false,"description":"Strings that must not match."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"sql-explain","title":"SQL explainer","description":"Explains a SQL query step by step and flags performance and safety risks, with index suggestions. Returns { summary, steps, risks, index_suggestions } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"sql","type":"string","required":true,"description":"One SQL statement, up to 5,000 characters. It is not executed."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"semver","title":"Semver resolver","description":"Sorts versions by SemVer 2.0 precedence, returns the latest stable and pre-release, and the next major, minor and patch. Returns { sorted, latest_stable, latest, invalid, next: { major, minor, patch, from } } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"versions","type":"array","required":true,"description":"Version strings, optionally v-prefixed."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":105},{"name":"page-markdown","title":"Web page to Markdown","description":"Fetches a public page and returns clean, LLM-ready Markdown of the main content, with title, word and link counts. No third-party scraper. Returns { url, title, words, links, truncated, markdown } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"max_chars","type":"integer","required":false,"description":"Markdown kept, default 20,000."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL to fetch. Private and internal hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":121},{"name":"json-extract","title":"Structured extraction","description":"Pulls the fields you name out of free text (emails, invoices, tickets) and returns strict JSON, null when a field is absent. Returns { data: { <field>: value | null }, found, total } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"fields","type":"array","required":true,"description":"Field names to extract."},{"name":"text","type":"string","required":true,"description":"Source text, up to 6,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"tool-schema","title":"Tool schema generator","description":"Builds ready-to-paste tool definitions for Anthropic, OpenAI and MCP from a compact parameter spec. Returns { anthropic, openai, mcp } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"description","type":"string","required":true,"description":"What the tool does."},{"name":"name","type":"string","required":true,"description":"Tool name."},{"name":"params","type":"object","required":false,"description":"Map of parameter name to \"type[:extra][!] description\"; types string, number, integer, boolean, object, enum:a,b, array:itemtype; ! marks required."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":132},{"name":"prompt-inject-scan","title":"Prompt-injection scanner","description":"Scans untrusted text (web pages, emails, tool output) for prompt-injection patterns before it reaches your agent; returns a risk score and the hits. Returns { risk: none|low|medium|high, score, hits: [{ rule, weight, match, index }] } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"text","type":"string","required":true,"description":"Untrusted text, up to 100,000 characters."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"seo-audit","title":"On-page SEO audit","description":"Audits a live page: title and description length, H1s, canonical, robots, lang, viewport, image alts, structured data and links, scored 0-100. Returns { url, status, score, title, description, h1_count, images, images_missing_alt, links, checks: [{ id, pass, weight }] } Price: 3 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"url","type":"string","required":true,"description":"Public http(s) URL to fetch. Private and internal hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":132},{"name":"contrast-check","title":"WCAG contrast checker","description":"Computes the WCAG 2.2 contrast ratio of two colours, pass/fail for AA and AAA, and the nearest passing foreground when it fails. Returns { ratio, aa_normal, aa_large, aaa_normal, aaa_large, ui_components, suggested_foreground } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"background","type":"string","required":true,"description":"Background colour, hex."},{"name":"foreground","type":"string","required":true,"description":"Text colour, hex."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114},{"name":"robots-check","title":"robots.txt checker","description":"Reads a site's robots.txt and says whether a crawler may fetch a path, with the matching rule, the major AI crawlers' access and the sitemaps. Returns { robots_url, robots_status, agent, path, allowed, rule, ai_crawlers, sitemaps } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"agent","type":"string","required":false,"description":"Crawler user agent, default *."},{"name":"url","type":"string","required":true,"description":"Public http(s) URL to fetch. Private and internal hosts are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":131},{"name":"webhook-verify","title":"Webhook signature verifier","description":"Verifies Stripe, GitHub, Slack, Shopify or generic HMAC-SHA256 webhook signatures exactly as the provider computes them, with timestamp tolerance. Returns { provider, valid, timestamp?, age_s?, within_tolerance? } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"payload","type":"string","required":true,"description":"Raw request body exactly as received."},{"name":"provider","type":"string","required":true,"description":"Signature scheme."},{"name":"secret","type":"string","required":true,"description":"Webhook signing secret. Use a test secret; it is not stored."},{"name":"signature","type":"string","required":true,"description":"Signature header value (Stripe-Signature, X-Hub-Signature-256, X-Slack-Signature, X-Shopify-Hmac-Sha256, or hex/base64)."},{"name":"timestamp","type":"string","required":false,"description":"Slack only: X-Slack-Request-Timestamp."},{"name":"tolerance_s","type":"integer","required":false,"description":"Allowed clock skew for Stripe and Slack, default 300."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":209},{"name":"curl-to-code","title":"curl to code","description":"Converts a curl command into JavaScript fetch, Python requests, Go net/http or PHP code. Returns { language, request: { url, method, headers, data }, code } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"curl","type":"string","required":true,"description":"A curl command line."},{"name":"language","type":"string","required":false,"description":"Target language, default javascript."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":98},{"name":"mock-response","title":"Mock API response","description":"Generates realistic sample JSON from a JSON Schema or OpenAPI schema object, with field-aware values (emails, UUIDs, dates, URLs). Returns { data } or { data: [...], count } Price: 1 credit (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"count","type":"integer","required":false,"description":"Items to generate, default 1."},{"name":"schema","type":"object","required":true,"description":"JSON Schema (or OpenAPI schema object) of one response item."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"rdap-lookup","title":"Domain RDAP lookup","description":"Modern WHOIS over RDAP: registrar, creation and expiry dates, days to expiry, status codes, nameservers and DNSSEC. Returns { domain, registrar, created, updated, expires, days_to_expiry, status, nameservers, dnssec } Price: 2 credits (1 credit = 1 CAD cent) per successful call; input that does not match the schema is rejected before billing.","inputs":[{"name":"domain","type":"string","required":true,"description":"Public domain name, e.g. example.com; IP literals and private suffixes (.local, .internal, .lan, .corp) are refused."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T00:29:01.000Z","track":"remote","endpoint":"https://api.highlnd-intel.group/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=highlnd-intel.group","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-05T21:06:15Z","notAfter":"2027-01-03T22:05:50Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"api.highlnd-intel.group.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"group.","outcome":"verified","label":"Verified"},{"zone":"highlnd-intel.group.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1ae42-46fd-7b87-8eca-2fcfc192fbc9","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a1ae42-46fd-7b87-8eca-2fcfc192fbc9"},{"id":"chg_01a1a3ec-a76b-75b2-a6c8-edbc3f353f08","kind":"score.total_changed","summary":"Trust score (63 → 64)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a1a3ec-a76b-75b2-a6c8-edbc3f353f08"},{"id":"chg_01a199ad-1d53-7d57-b5b4-f934bc215809","kind":"score.total_changed","summary":"Trust score (62 → 63)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a199ad-1d53-7d57-b5b4-f934bc215809"},{"id":"chg_01a18f5c-0b76-75d6-88e5-0e476761e1d6","kind":"score.total_changed","summary":"Trust score (61 → 62)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a18f5c-0b76-75d6-88e5-0e476761e1d6"},{"id":"chg_01a184f8-87b0-7952-bffd-3c6d04ec98bc","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a184f8-87b0-7952-bffd-3c6d04ec98bc"},{"id":"chg_01a184f8-87b4-78cf-87fe-5fface2aae44","kind":"score.total_changed","summary":"Trust score (60 → 61)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a184f8-87b4-78cf-87fe-5fface2aae44"},{"id":"chg_01a1819e-e148-7b90-a3cc-d7fd7a2176cf","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api#chg-chg_01a1819e-e148-7b90-a3cc-d7fd7a2176cf"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api/changelog.json"},"links":{"html":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api","markdown":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api.md","changelogJson":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api/changelog.json","changelogRss":"https://verifymcp.io/servers/group-highlnd-intel-highland-apis/api.xml","external":[{"label":"Remote endpoint","href":"https://api.highlnd-intel.group/mcp"},{"label":"Website","href":"https://api.highlnd-intel.group/"}]}}