Blog
Practical articles about JSON, APIs and everyday developer tools: how they work, the pitfalls and how to use them.
JSON Schema validation case study: an order webhook
· 10 min read
A worked JSON Schema validation case: a schema that let a broken order webhook through, rebuilt step by step until it reports all ten problems.
JSON Schema validators: why results differ and how to choose
· 9 min read
What a JSON Schema validator checks, why one schema passes in one validator and fails in another, and how Ajv, Python jsonschema and CLIs compare.
base64 MCP tool: encode and decode Base64 from an AI agent
· 6 min read
Base64 encode and decode text and files from Claude, Cursor or any MCP client: UTF-8, URL-safe alphabet, binary output to files and clear errors.
hash MCP tool: SHA-256, MD5 and HMAC for AI agents
· 6 min read
Compute MD5, SHA-1, SHA-256, SHA-384, SHA-512 and HMAC of text or files from Claude, Cursor or any MCP client, with keys kept out of the chat.
image_base64 MCP tool: images to data URIs in an AI agent
· 6 min read
Turn image files into Base64 data URIs, or Base64 back into image files, from Claude, Cursor or any MCP client, with the real type checked from the bytes.
json_convert MCP tool: JSON, YAML and CSV for AI agents
· 6 min read
Convert between JSON, YAML and CSV from Claude, Cursor or any MCP client, without the Norway problem, lost leading zeros or CSV injection.
json_diff MCP tool: compare JSON files from an AI assistant
· 6 min read
Structural JSON diffs from Claude, Cursor or any MCP client: key order ignored, four array modes, exact numbers and an RFC 6902 JSON Patch.
json_format MCP tool: validate and format JSON in an AI agent
· 6 min read
Validate, pretty-print, minify and sort JSON from Claude, Cursor or any MCP client, with exact error positions and no rounding of big numbers.
json_schema_validate MCP tool: JSON Schema in AI agents
· 6 min read
Validate JSON files against JSON Schema drafts 4, 7, 2019-09 and 2020-12 from Claude, Cursor or any MCP client, with every error and its path.
jsonpath_query MCP tool: query JSON files from an AI agent
· 6 min read
Run RFC 9535 JSONPath queries on JSON files from Claude, Cursor or any MCP client: filters, slices, recursive descent and exact numbers.
jwt_decode_verify MCP tool: decode and verify JWTs in chat
· 6 min read
Decode JWTs, check exp, nbf and iat, and verify HS, RS, PS and ES signatures from Claude, Cursor or any MCP client, with the key kept out of the chat.
jwt_sign MCP tool: create signed test JWTs from an AI agent
· 6 min read
Create HS256, HS512, RS256 or ES256 test tokens from Claude, Cursor or any MCP client, with exact claims and the signing key kept out of the chat.
number_base MCP tool: hex, binary and two's complement
· 6 min read
Convert integers of any size between binary, octal, decimal, hex and bases up to 36, with two's complement, from Claude, Cursor or any MCP client.
qr_code MCP tool: make QR codes from an AI assistant
· 6 min read
Generate QR codes as SVG from Claude, Cursor or any MCP client: links, text and Wi-Fi networks, with error correction and colour checks.
timestamp_convert MCP tool: Unix time and dates for AI agents
· 6 min read
Convert Unix timestamps and dates in any time zone from Claude, Cursor or any MCP client: unit detection, real clock, daylight saving checks.
url MCP tool: encode, decode and parse URLs from an AI agent
· 6 min read
Percent-encode, decode and parse URLs from Claude, Cursor or any MCP client: UTF-8, form encoding with +, repeated query parameters and clear errors.
uuid MCP tool: generate and inspect UUIDs from an AI agent
· 6 min read
Generate v4 and v7 UUIDs from a cryptographic random source, or read the version and timestamp of any UUID, from Claude, Cursor or any MCP client.
What is MCP? The Model Context Protocol explained
· 10 min read
How the Model Context Protocol connects AI assistants to tools and data: hosts, clients, servers, JSON-RPC, transports, setup and security.
Anatomy of a URL: every part explained, with query strings
· 7 min read
Scheme, userinfo, host, port, path, query and fragment: what each URL part does, how relative URLs resolve, repeated parameters and the pitfalls in each.
Binary, hex and octal: number bases every developer uses
· 6 min read
Why hex maps to bytes, what chmod 755 means in bits, how two's complement stores negative numbers, and the parseInt and 2^53 traps in JavaScript.
How QR codes work: versions, error correction and Wi-Fi codes
· 7 min read
Inside a QR code: finder patterns, versions, encoding modes and Reed-Solomon error correction, plus Wi-Fi code syntax and print sizes.
How to compare two JSON files (and why text diff gets it wrong)
· 7 min read
Compare JSON by structure, not by text: key order, number formats, array matching strategies, and generating a JSON Patch (RFC 6902).
How to format and validate JSON without breaking your data
· 7 min read
JSON syntax rules, the error messages you will actually see, why big numbers change silently, and how to format, minify and check JSON safely.
Image to Base64: when data URIs help and when they hurt
· 6 min read
How to turn an image into a Base64 data URI for HTML, CSS and Markdown, what it costs in size and caching, the inline limits bundlers use, and SVG tricks.
JSON Schema explained: validate JSON data step by step
· 7 min read
Learn JSON Schema by example: types, required fields, additionalProperties, $ref, formats, draft differences and the mistakes that let bad data through.
JSON vs YAML vs CSV: convert without losing data
· 7 min read
When to use JSON, YAML or CSV, and what breaks when you convert: the Norway problem, leading zeros, big numbers, nested data and Excel quirks.
MD5, SHA-1, SHA-256: which hash function should you use?
· 6 min read
Why MD5 and SHA-1 are broken, when SHA-256 is enough, how HMAC stops length extension, and why passwords need bcrypt or Argon2 instead.
Unix timestamps explained: seconds, ms and time zones
· 6 min read
What a Unix timestamp counts, telling seconds from milliseconds, the year 2038 problem, leap seconds, and JavaScript Date time zone traps.
URL encoding explained: %20 vs + and encodeURIComponent
· 6 min read
Percent-encoding from the bytes up: which characters to escape, when a space is %20 or +, double encoding bugs, and which JS function to use.
UUID v4 vs v7: which one should you use?
· 6 min read
How UUIDs are built, what the version digit means, why random v4 keys slow down database indexes, and when time-ordered v7 is better.
What is Base64 encoding and when should you use it?
· 6 min read
How Base64 turns bytes into text, why output grows by a third, standard vs URL-safe alphabets, the btoa Unicode trap, and why Base64 is not encryption.
What is JSONPath and how to use it?
· 14 min read
A practical JSONPath guide: syntax, filters, functions and the pitfalls that bite in production, with runnable examples and a free online tester.
What is a JWT? Structure, signatures and common mistakes
· 7 min read
How JSON Web Tokens work: header, payload and signature, HS256 vs RS256, exp and iat, the alg none and key confusion attacks, token storage.