Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2027-01-03
Changed the definition of "encode_data"
⟨33 unchanged words⟩ they are binary. Base58 uses the Bitcoin alphabet and takes at most 64 KiB, base64url the URL-safe alphabet without padding, url ⟨20 unchanged words⟩
Changed the definition of "process_image"
Work on a JPEG, PNG or WebP image,orHEIC for convert and resize, or GIF for metadata and strip: convert to another format (format, quality, ⟨91 unchanged words⟩
Changed the definition of "read_temporary_data", "store_file" and "store_temporary_data"
⟨66 unchanged words⟩ their length, the same values store_temporary_data reported. A value stored with max_downloads answers downloads_left, how many reads remain, and is gone once they are taken. No API key, no account and no sign ⟨4 unchanged words⟩
⟨2 unchanged words⟩ type":"integer"},"data":{},"downloads_left":{"type":"integer"},"expire_timestamp":{"type":"integer"},"sha256_hash" ⟨15 unchanged words⟩
Added "add_semantic_search_notes", "create_semantic_search", "delete_semantic_search_note" and 2 more; changed the definition of "decide", "generate_random" and "process_image" (61 tools before, 66 now)
⟨27 unchanged words⟩ choice and score questions with instructions and criteria. tev1 is the smallest and fastest, tested by its maker in English only, and suits short, direct questions. Model mode processes the submitted state and questions ⟨135 unchanged words⟩
⟨11 unchanged words⟩ to, default 1 to 6), acolourcolor as #rrggbb (color), a GUID (guid ⟨48 unchanged words⟩
Changed the definition of "decide"
⟨14 unchanged words⟩ with probability, confidence and action. Use model clef, nimble or tev1 for noul, choice and score questions with instructions ⟨23 unchanged words⟩ allow up to 8 KiB of JSON, 3 KiB for tev1, 4 questions and 8 choices per question, and have their own usage limit of260 per minute and201000 per UTC day per IP. Refusals may carry ⟨84 unchanged words⟩
⟨4 unchanged words⟩ :{"description":"Optional. rules (default),or a configured model
Changed the definition of "decide"
⟨15 unchanged words⟩ probability, confidence and action. Use model clefonly when enabledfor noul, choice and score questions with instructions and criteria. Modelcallsmodesendprocesses the submitted statetoandthequestionsconfiguredandinferencereturnsmachine,structuredreturnanswers
Changed the definition of "decide"
Decide from rules or a modelAnswerOmit model or use rules for the existing yes_no, choice and scale rule engine with probability, confidence and action. Use model clef only when enabled for noul, choice and score questionsfromwithrulesinstructionsyouand criteria. Model calls send state to the configured inference machine
Added "html_markdown_convert"; changed the definition of "encode_data" (60 tools before, 61 now)
Encode or decode Base64, Base32, Base58, hex, URL orBase58HTML
Encode text as Base64, Base64url, Base32, Base58 orBase58hex, as URL percent-encoding or as HTML entities, or decode such a string. Decoding answers decoded_text when ⟨7 unchanged words⟩ when they are binary. Base58 uses the Bitcoin
Changed the definition of "hash_data" and "verify_hash"
⟨5 unchanged words⟩ SHA-256, SHA-512, CRC32, Whirlpool, SHA3-256, SHA3-512, BLAKE2b-256 orBLAKE2b-256BLAKE3 and answer the digest in hex, or for crc32 as an integer. Use sha256, sha3_256, blake2b orblake2bblake3 for integrity checks; md5 and sha1 are for systems that still expect them.Noneargon2id,ofbcrypttheseandisscrypt are password hashes: slow by design, salted, answered as
Changed the definition of "hash_data" and "verify_hash"
Hash text with MD5, SHA-1, SHA-256, SHA-512, CRC32, Whirlpool, SHA3-256, SHA3-512 orCRC32BLAKE2b-256 and answer the digest in hex, or for crc32 as an integer. Use sha256, sha3_256 orsha512blake2b for integrity checks; md5 and sha1 are for systems that still expect them. None of these is a password hash. No API key, no account and no ⟨5 unchanged words⟩
⟨6 unchanged words⟩ ,"sha1","sha256","sha512","crc32","whirlpool","sha3_256","sha3_512","blake2b"
Added "cancel_webhook_schedule", "convert_timestamp", "create_qr_code" and 25 more (32 tools before, 60 now)
Cancel a scheduled webhook — Cancel a scheduled webhook that has not finished. A job that has already ended cannot be cancelled. No API key, no account and no sign up: call it directly.
Convert a timestamp or date — Convert a Unix timestamp in seconds or milliseconds, or a date and time text, into a Unix timestamp, ISO 8601, RFC 2822 and UTC forms. offset sets the zone of the answer. The answer says what the input was read as. No API key, no account and no sign up: call it directly.
Make a QR code — Make a QR code for a text or URL, as a PNG with error correction level H. The answer is the image. No API key, no account and no sign up: call it directly.
Bitcoin, Ethereum and Solana wallets — The balance of a public Bitcoin, Ethereum or Solana address, read from blockchain.info, a public Ethereum RPC node or the Solana mainnet RPC, or a newly generated key pair. A generated private key is sent once and not stored, but it has passed through this service, so use it for tests and small amounts only. No API key, no account and no sign up: call it directly.
Changed the definition of "read_heartbeat"
⟨6 unchanged words⟩ to inspect whether the monitor is armed,latemissed, fired or expired,andwhethertoitseeis running late, and its next deadline. This does not wait for ⟨15 unchanged words⟩
Changed the definition of "delete_dns_name"
⟨30 unchanged words⟩ sit there until it expires. The removal reachesboththe primary nameserversserver at once,and the secondary follows by replication, so a disconnected secondary can keep answering until it reconnects or the name expires. A resolver that already holds the answer keeps it ⟨10 unchanged words⟩
Added "create_dns_name", "delete_dns_name", "read_dns_name" and 1 more (28 tools before, 32 now)
Create a temporary DNS name — Point a public hostname at an address you already control, for 24 hours. Use it when something needs a name rather than an address: a webhook target someone has to type, a staging box whose address moves, a service two agents must reach by the same name. No API key, no account and no sign up: call it directly. The name is assigned and never chosen, and comes back as aisense-<slug>.53for24h.com. The answer carries dns_token once and never again; without it the name cannot be changed or removed. It disappears on its own after 24 hours and nothing extends that. A name is a DNS record and nothing…
Delete a temporary DNS name — Remove a temporary DNS name now, before its 24 hours are up. Needs the dns_token. Use it when the work is done and the name should stop answering rather than sit there until it expires. The removal reaches both name servers at once, and a resolver that already holds the answer keeps it for the rest of its TTL, at most 60 seconds.
Read a temporary DNS name — Look up what a temporary DNS name points at and how long it has left. No token is needed: everything it returns is already public in DNS. Use it to confirm a name exists and resolves the way you expect before handing it to someone else. It fails once the name has expired, and a name stops answering in the same second it falls due.
Changed the definition of "read_temporary_data" and "store_temporary_data"
⟨48 unchanged words⟩ rather than as a temporary fault worth retrying. sha256_hash is the digest of the stored bytes and bytes their length, the same values store_temporary_data reported. No API key, no account and no sign ⟨4 unchanged words⟩
{"properties":{"bytes":{"type":"integer"},"data":{},"expire_timestamp":{"type":"integer"},"sha256_hash":{"type":"string"},"storage_id":{"format":"uuid","type":"string"}},"required":["storage_id","data","sha256_hash","bytes","expire_timestamp"],"type":"object"}
Certificate recorded, valid to 2026-11-03
Authorization not required
First tool surface recorded: 28 tools (server version 1.8.0)
Showing the latest 19 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨38 unchanged words⟩ or read_qr_code. Never store secrets or personal data. max_downloads, 1 to 100, removes the file after that many fetches; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone. No API key, no account and no sign ⟨4 unchanged words⟩
⟨34 unchanged words⟩ 250000,"minLength":1,"type":"string"},"max_downloads":{"description":"Optional. How many times the file may be fetched before it is removed, 1 to 100. Without it the file lives 24 hours.","maximum":100,"minimum":1,"type":"integer"}},"required":["data_base64"],"type":"object"}
⟨128 unchanged words⟩ serves it with that digest as its ETag. max_downloads, 1 to 100, removes the value after that many reads; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone.
⟨21 unchanged words⟩ anyone with the URL, so no secrets."},"max_downloads":{"description":"Optional. How many times the value may be read before it is removed, 1 to 100. Without it the value lives 24 hours.","maximum":100,"minimum":1,"type":"integer"}},"required":["data"],"type":"object"}
{"properties":{"bytes":{"type":"integer"},"downloads_left":{"type":"integer"},"downloads_max":{"type":"integer"},"expire_timestamp":{"type":"integer"},"read_url" ⟨20 unchanged words⟩
⟨43 unchanged words⟩ and IPTC (strip), find its maincolourscolors (colors, count) or make a set ⟨55 unchanged words⟩
Add notes to a semantic search collection — Add 1 to 32 notes with the write token. Each note is an object with text, 1 to 2000 characters, and an optional key of up to 64 letters, digits, dots, underscores, colons or hyphens. Notes are stored until the collection expires and count toward its 500-note lifetime limit, deleted notes included. Never send secrets or sensitive personal data. Adding and searching share a usage limit of 60 per minute and 1000 per UTC day per IP. Refusals may carry Retry-After. Do not retry automatically. No API key, no account and no sign up: call it directly.
Create a semantic search collection — Create a collection of short notes, such as messages, jobs or results, that agents search by meaning, across wording and between languages. It lives for a fixed 24 hours that cannot be extended. model is bge-m3 (default) or qwen3-embedding-4b and stays fixed for the collection. Returns collection_id and separate read and write bearer tokens once: keep them secret and share only the role needed. At most 500 notes over the collection lifetime and 20 collections per client IP in 24 hours. No API key, no account and no sign up: call it directly.
Delete a note from a semantic search collection — Delete one note with the write token. Its text and vector are removed and it leaves the search at once. Its place in the 500-note lifetime limit stays used. No API key, no account and no sign up: call it directly.
Search a semantic search collection — Search the notes by meaning with the read token. Answers up to limit notes, 1 to 10 and 3 by default, best first, each with note_id, key, text and score. The score is cosine similarity, plus 0.1 for each identifier in the search that the note also holds, minus 0.1 for each kind where the note holds others of that kind and none of the search's. Each code prefix, such as DEMO- in DEMO-57, is one kind and numbers of three or more digits are another, with 1 200 read as 1200. The score is not a probability. The results are ranked suggestions, not a decision that a match exists: read the text befor…
Read a semantic search collection — Read the model, the number of notes, the notes added over the lifetime, the note limit and the expiry of a collection with the read token. Notes are found by searching. No API key, no account and no sign up: call it directly.
{"additionalProperties":false,"properties":{"model":{"description":"Optional. rules (default), or a configured model such as clef. Unknown models are refused.","maxLength":32,"minLength":1,"type":"string"},"questions":{"description":"1 to 64 namedquestions.rule questions, or up to 4 model questions under the default model limits.","type":"object"},"state":{"description":"The facts the rulestest.test, or the input sent to the selected model.","type":"object"}},"required": ⟨4 unchanged words⟩
{"idempotentHint":truefalse,"openWorldHint":falsetrue,"readOnlyHint":true}
⟨20 unchanged words⟩ ,"format":{"enum":["base64","base64url","base32","base58","hex","url","html"],"type":"string"},"operation": ⟨11 unchanged words⟩
Convert between HTML and Markdown — Convert HTML to Markdown, or Markdown to HTML. html_to_markdown leaves out scripts, styles, forms and media and answers markdown and the page title, so a fetched page reads with fewer tokens. markdown_to_html answers html from CommonMark with GitHub tables, strikethrough and task lists; raw HTML in the Markdown is shown as text and a link with an unsafe scheme as its text, so the html can go into a page as it is. No API key, no account and no sign up: call it directly.
⟨10 unchanged words⟩ ,"whirlpool","sha3_256","sha3_512","blake2b","blake3","argon2id","bcrypt","scrypt"],"type":"string"},"data":{ ⟨11 unchanged words⟩
⟨39 unchanged words⟩ means CRC32 in decimal; whirlpool, sha3_256, sha3_512, blake2b andblake2bblake3 share those lengths and must be named. For argon2id, bcrypt and scrypt the hash is the salted string those algorithms answered; the cost is read from it and must be within what this service produces. Answers match,and algorithm, with computed for digests andcomputed.params for password hashes. No API key, no account and no ⟨5 unchanged words⟩
⟨20 unchanged words⟩ ,"whirlpool","sha3_256","sha3_512","blake2b","blake3","argon2id","bcrypt","scrypt"],"type":"string"},"data":{ ⟨21 unchanged words⟩
Check that text matches a hash.TheName the algorithm when you know it. Without it the algorithm follows from the hash: 8, 32, 40 ⟨11 unchanged words⟩ SHA-512, and an integer means CRC32 indecimal.decimal; whirlpool, sha3_256, sha3_512 and blake2b share those lengths and must be named. Answers match, algorithm and computed. No API ⟨10 unchanged words⟩
{"additionalProperties":false,"properties":{"algorithm":{"description":"Optional for the first five, required for the rest.","enum":["md5","sha1","sha256","sha512","crc32","whirlpool","sha3_256","sha3_512","blake2b"],"type":"string"},"data":{"maxLength":250000,"minLength":1, ⟨17 unchanged words⟩
Decide from rules — Answer yes_no, choice and scale questions from rules you send, with a probability, a confidence and an action (act, review or hold) for each question. state holds the facts. A rule is {"if": condition, "weight": number}, where a condition tests a field of state with eq, ne, gt, gte, lt, lte, in, exists, prefix or contains, combined with any and not. Nothing is stored. The full format is at https://aisense.no/free-public-api-decide-api-endpoint. No API key, no account and no sign up: call it directly.
Encode or decode Base64, Base32 or Base58 — Encode text as Base64, Base32 or Base58, or decode such a string. Decoding answers decoded_text when the bytes are UTF-8 text and decoded_base64 when they are binary. Base58 uses the Bitcoin alphabet. No API key, no account and no sign up: call it directly.
Generate a random value — Generate a random number in a range (kind number, from and to, default 1 to 6), a colour as #rrggbb (color), a GUID (guid), a password of 6 to 128 characters (password, length, default 12) or a passphrase of 2 to 12 word groups (passphrase, groups, default 4), which comes with its entropy in bits. For a UUID use generate_uuid. No API key, no account and no sign up: call it directly.
Hash text — Hash text with MD5, SHA-1, SHA-256, SHA-512 or CRC32 and answer the digest in hex, or for crc32 as an integer. Use sha256 or sha512 for integrity checks; md5 and sha1 are for systems that still expect them. No API key, no account and no sign up: call it directly.
Render HTML to PDF — Render HTML to a PDF with JavaScript and network access turned off, so only the HTML sent is used and images must be inline data URLs. options can set page-size (A3, A4, A5, Letter, Legal, Tabloid), orientation (Portrait, Landscape) and margin-top, margin-bottom, margin-left, margin-right such as 10mm. The PDF is stored for 24 hours: the answer has storage_id and storage_url, and read_stored_file returns the file. No API key, no account and no sign up: call it directly.
Format or validate JSON — Format or validate JSON text. format pretty-prints it (mode pretty, indent 2 or 4) or compacts it (mode compact); validate reports whether it parses and where it breaks. The result is stored for 24 hours and the answer has its storage_id and storage_url. No API key, no account and no sign up: call it directly.
Convert between JSON and CSV — Convert between JSON rows and CSV. json_to_csv takes columns and rows, up to 5000 flat objects, and stores result.csv; csv_to_json takes data, the CSV text, and stores result.json. delimiter is a comma, a semicolon or a tab. spreadsheet_safe guards cells a spreadsheet would run as formulas. The result is stored for 24 hours and the answer has its storage_id and storage_url. No API key, no account and no sign up: call it directly.
Create or verify a JWT — Create or check an HS256 JSON Web Token. encode signs payload with secret and answers jwt; decode verifies token with secret, including exp, nbf and iat, and answers decoded_payload. The secret is used for this call only and is not stored. No API key, no account and no sign up: call it directly.
List timezones — List the IANA timezones with their current UTC offsets, optionally only those at one offset such as +0530. No API key, no account and no sign up: call it directly.
Network lookup — Network facts: the public IP address this service sees for you (client_ip), your User-Agent (user_agent), the country, city, coordinates and timezone of an IPv4 address from a local GeoLite2 database (reverse_ip), or the first IPv4 address a domain resolves to (domain_ip). value is the address or domain for the last two. No API key, no account and no sign up: call it directly.
Match two tables — Match the rows of two tables on one or more pairs of key columns, like a join, and store the matches as JSON for 24 hours. left and right are lists of row objects; keys lists pairs such as {"left":"id","right":"customer_id"}. No API key, no account and no sign up: call it directly.
Convert, resize or inspect an image — Work on a JPEG, PNG or WebP image, or HEIC for convert and resize: convert to another format (format, quality, lossless), compress (quality), resize (width, height, fit contain or cover, upscale, format), read its metadata including any GPS position (metadata), strip EXIF, XMP and IPTC (strip), find its main colours (colors, count) or make a set of favicons as a ZIP (favicon, crop fit, trim or center, name). Give image_base64 or storage_id, for example the result of an earlier call. Every result is stored for 24 hours and the answer carries its storage_id, so calls can be chained. No API key,…
Read QR codes in an image — Read the QR codes in a PNG, JPEG, GIF or WebP image. Several codes come back joined by newlines. Give image_base64 or storage_id. No API key, no account and no sign up: call it directly.
Read a stored file — Read a stored object by storage_id. JSON comes back as data, an image as an image, and any other file, such as a PDF from html_to_pdf or a ZIP from process_image, as an embedded resource of at most 4 MB. No API key, no account and no sign up: call it directly.
Read a scheduled webhook — Read a scheduled webhook: its status, attempts and, after it fired, the HTTP status and an excerpt of the answer. wait_seconds, up to 25, waits for the status to change before answering. No API key, no account and no sign up: call it directly.
Schedule a webhook — Schedule an HTTP POST of a JSON payload to a public URL: once, after delay_seconds or at the Unix time fire_at, 5 seconds to 24 hours ahead, or repeatedly every 60 to 86400 seconds until 24 hours after creation. The URL must resolve to a public address on port 80 or 443. The answer has schedule_id, which reads and cancels the job and should be kept private. No API key, no account and no sign up: call it directly.
Check the service — Check that the AI SENSE service answers. Returns status ok and the server time with microseconds. No API key, no account and no sign up: call it directly.
Simulate a failure — Get a chosen failure on purpose, to test how an agent or client handles it: an HTTP status from 200 to 504, an HTML error page (html), an empty body (empty) or JSON labelled as text (wrongtype), after an optional delay of up to 10 seconds. The result reports the status, content type, headers and body the REST endpoint sent, and is an error result for statuses of 400 and above. No API key, no account and no sign up: call it directly.
Make a URL slug — Turn text into a lowercase URL slug with words joined by hyphens. No API key, no account and no sign up: call it directly.
Store a file — Store a file given as base64 for 24 hours, at a link that anyone who has it can open. Answers storage_id and storage_url. Use it to hand a file to another tool, such as an image to process_image or read_qr_code. Never store secrets or personal data. No API key, no account and no sign up: call it directly.
Current time in several formats — The current time in several formats at once: a Unix timestamp, Unix time with microseconds, an ISO 8601 date and time at an optional UTC offset, and Swatch Internet Time. For a named timezone such as Europe/Oslo use get_current_time. No API key, no account and no sign up: call it directly.
Check an email address — Check an email address: its syntax, whether its domain has MX records, listing up to five, and whether the domain has an address record. The mail server is not contacted, so a good answer does not prove that the mailbox exists. No API key, no account and no sign up: call it directly.
Validate a number or code — Validate an IBAN, a payment card number (Luhn), a Norwegian organisation number (orgnr), a Norwegian bank account number (kontonummer) or a phone number, with the checksum and the normalized form where the type has them. Nothing is stored or looked up. No API key, no account and no sign up: call it directly.
Verify a hash — Check that text matches a hash. The algorithm follows from the hash: 8, 32, 40, 64 or 128 hex characters mean CRC32, MD5, SHA-1, SHA-256 or SHA-512, and an integer means CRC32 in decimal. Answers match, algorithm and computed. No API key, no account and no sign up: call it directly.
Update a temporary DNS name — Change the address a temporary DNS name points at. Needs the dns_token from create_dns_name. Use it when the machine behind the name moved and you would rather keep the name than hand out a new one. The expiry does not move: the name still disappears 24 hours after it was created. One change per name per 10 seconds.
⟨85 unchanged words⟩ Read it back with read_temporary_data, passing the storage_id. The answer also carries sha256_hash, the digest of the stored bytes, and bytes, their length, so a receiver can tell it got what you sent. The same object over REST calls the link storage_url and serves it with that digest as its ETag.
{"properties":{"bytes":{"type":"integer"},"expire_timestamp":{"type":"integer"},"read_url":{"format":"uri","type":"string"},"sha256_hash":{"type":"string"},"storage_id":{"format":"uuid","type":"string"}},"required":["storage_id","read_url","sha256_hash","bytes","expire_timestamp"],"type":"object"}