{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_mt37kqbmzx32","handle":"redbison","url":"https://wellknown.network/agents/redbison","links":{"self":"https://wellknown.network/agents/redbison/record.json","html":"https://wellknown.network/agents/redbison","markdown":"https://wellknown.network/agents/redbison/record.md","api":"https://wellknown.network/api/v1/agents/redbison","status":"https://wellknown.network/api/v1/agents/redbison/status","claim":"https://wellknown.network/agents/redbison/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/redbison/claim.json","badge":"https://wellknown.network/agents/redbison/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/redbison/history","tools":"https://wellknown.network/api/v1/agents/redbison/tools"},"ard":{"identifier":"urn:air:mcp.redbison.dev:server:redbison","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"RedBison","summary":"500+ free tools over MCP: dev, text and security utilities, 230+ calculators. No sign-up.","description":"500+ free tools over MCP: dev, text and security utilities, 230+ calculators. No sign-up.","publisher":{"name":"dev.redbison","url":null},"homepage":"https://redbison.dev/mcp","repository":null,"version":"2.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.redbison.dev","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-29T22:16:46.388342Z","publishedAt":"2026-10-29T22:16:46.388342Z","registryName":"dev.redbison/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.writing","name":"Writing & Editing","confidence":1,"provenance":"derived"},{"slug":"documents.spreadsheets","name":"Spreadsheets","confidence":1,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":1,"provenance":"derived"},{"slug":"dev.monitoring","name":"Monitoring & Observability","confidence":1,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.977,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.933,"provenance":"derived"},{"slug":"analytics.product","name":"Product Analytics","confidence":0.583,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.569,"provenance":"derived"}],"categories":["analytics","content","data","dev","documents","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 43m ago.","lastOkAt":"2026-11-02T10:24:14.819Z","lastProbedAt":"2026-11-02T10:24:14.819Z","statusComputedAt":"2026-11-02T10:27:03.867Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":2237,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":3,"ok":3,"authBoundaryOk":0,"serviceOk":3,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-02T10:24:14.819Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":2788,"error":null,"detail":{"tools":[{"name":"search_tools","description":"Search RedBison's 500+ tools by keyword: developer utilities, file and media converters, and finance, health, math and engineering calculators. Returns a ranked"},{"name":"get_tool","description":"Get full metadata for a specific RedBison tool by its id (slug).\n\nReturns: Full JSON metadata for the tool: { id, name, description, url, category, subcategory?"},{"name":"list_categories","description":"List all tool categories and subcategories available on RedBison.\n\nReturns: JSON array of { category, count } entries covering the full RedBison catalog.\nExampl"},{"name":"health","description":"Return server status, name, version, and uptime info. Use this to monitor the MCP server.\n\nReturns: JSON { status, name, version, startedAt, timestamp }.\nExampl"},{"name":"base64_encode","description":"Base64-encode a UTF-8 string.\n\nReturns: Base64-encoded string (UTF-8 safe).\nExample input: {\"text\":\"hello world\"}"},{"name":"base64_decode","description":"Base64-decode a string back to UTF-8.\n\nReturns: UTF-8 decoded plain text.\nExample input: {\"text\":\"aGVsbG8gd29ybGQ=\"}"},{"name":"url_encode","description":"Percent-encode a string for use in URLs.\n\nReturns: Percent-encoded string suitable for URL query values.\nExample input: {\"text\":\"hello world & friends\"}"},{"name":"url_decode","description":"Percent-decode a URL-encoded string.\n\nReturns: Percent-decoded plain text.\nExample input: {\"text\":\"hello%20world%20%26%20friends\"}"},{"name":"json_format","description":"Pretty-print a JSON string with a chosen indent size.\n\nReturns: Pretty-printed JSON string with the requested indent, or an error message if the input is invali"},{"name":"json_validate","description":"Validate a JSON string. Returns { valid, error? }.\n\nReturns: JSON { valid: boolean, error?: string }.\nExample input: {\"text\":\"{\\\"a\\\":1}\"}\nOn error, includes hin"},{"name":"csv_to_json","description":"Parse CSV text into JSON. Uses the first row as headers unless header=false.\n\nReturns: JSON array of row objects keyed by the header row.\nExample input: {\"text\""},{"name":"json_to_csv","description":"Convert an array of JSON objects to CSV. Columns are inferred from the union of keys.\n\nReturns: CSV string with a header row derived from the first object's key"},{"name":"json_to_yaml","description":"Convert a JSON string to YAML.\n\nReturns: YAML representation of the parsed JSON value.\nExample input: {\"json\":\"{\\\"name\\\":\\\"Ada\\\",\\\"skills\\\":[\\\"math\\\",\\\"logic\\\"]"},{"name":"yaml_to_json","description":"Convert simple YAML (maps, lists, scalars, flow {} / []) to JSON. Anchors, tags, and complex block scalars are not supported.\n\nReturns: Pretty-printed JSON buil"},{"name":"tsv_parse","description":"Parse tab-separated values into JSON. First row is treated as header unless header=false.\n\nReturns: JSON array of row objects derived from the TSV header row.\nE"},{"name":"html_beautify","description":"Pretty-print an HTML fragment.\n\nReturns: Pretty-printed HTML string with normalized indentation.\nExample input: {\"html\":\"<div><p>hi</p><p>there</p></div>\",\"inde"},{"name":"xml_beautify","description":"Pretty-print an XML document.\n\nReturns: Pretty-printed XML string with normalized indentation.\nExample input: {\"xml\":\"<root><a>1</a><b>2</b></root>\",\"indent\":2}"},{"name":"yaml_beautify","description":"Normalize YAML indentation and whitespace.\n\nReturns: Normalized YAML string (2-space indent, collapsed blank lines).\nExample input: {\"yaml\":\"a:    1\\nb:  2\\n\\n\\"},{"name":"sql_beautify","description":"Format a SQL query with keyword uppercasing and line breaks before major clauses.\n\nReturns: Formatted SQL query with keywords on new lines.\nExample input: {\"sql"},{"name":"slugify","description":"Convert text to a URL-safe slug.\n\nReturns: URL-safe slug (lowercase, dashes).\nExample input: {\"text\":\"Hello, World! 2026\"}"},{"name":"case_convert","description":"Convert text between upper, lower, title, camel, pascal, snake, and kebab case.\n\nReturns: String converted to the requested case.\nExample input: {\"text\":\"hello "},{"name":"escape_characters","description":"Escape or unescape a string for JSON, HTML, XML, JavaScript, or SQL.\n\nReturns: Escaped or unescaped string for the chosen format.\nExample input: {\"text\":\"He sai"},{"name":"remove_duplicate_lines","description":"Remove duplicate lines from text while preserving first-occurrence order.\n\nReturns: Text with duplicate lines removed (order preserved).\nExample input: {\"text\":"},{"name":"find_duplicate_entries","description":"Return lines that appear more than once in the input, with their occurrence counts.\n\nReturns: JSON array of { value, count } for lines appearing more than once."},{"name":"remove_extra_spaces","description":"Collapse runs of whitespace inside each line to a single space and trim ends.\n\nReturns: Text with runs of whitespace collapsed to a single space.\nExample input:"},{"name":"remove_empty_lines","description":"Strip blank / whitespace-only lines from the input.\n\nReturns: Text with blank lines removed.\nExample input: {\"text\":\"one\\n\\ntwo\\n\\n\\nthree\"}"},{"name":"lines_to_comma","description":"Join lines with a separator (comma by default). Empty lines are skipped.\n\nReturns: Single-line string with items joined by the chosen separator.\nExample input: "},{"name":"comma_to_lines","description":"Split a delimited string into one item per line.\n\nReturns: Multi-line string, one item per line.\nExample input: {\"text\":\"apple, banana, cherry\",\"separator\":\",\","},{"name":"jwt_decode","description":"Decode a JWT and return its header + payload. Does NOT verify the signature.\n\nReturns: JSON with decoded { header, payload, signature } sections of the JWT.\nExa"},{"name":"hash","description":"Compute a cryptographic hash of a string.\n\nReturns: Hex digest of the input using the requested algorithm.\nExample input: {\"text\":\"hello world\",\"algorithm\":\"sha"},{"name":"hash_compare","description":"Hash two inputs with the same algorithm and compare them in constant time. Useful for verifying file integrity.\n\nReturns: JSON { match: boolean } computed with "},{"name":"uuid_generate","description":"Generate one or more v4 UUIDs.\n\nReturns: JSON array of v4 UUID strings.\nExample input: {\"count\":3}\nOn error, includes hint: `count` must be an integer between 1"},{"name":"password_generate","description":"Generate a cryptographically random password. Choose length and character classes.\n\nReturns: Randomly generated password string.\nExample input: {\"length\":20,\"up"},{"name":"bcrypt_hash","description":"Hash a password with bcrypt.\n\nReturns: Bcrypt hash string (includes cost + salt).\nExample input: {\"password\":\"s3cret!\",\"cost\":10}\nOn error, includes hint: `cost"},{"name":"bcrypt_verify","description":"Check whether a password matches a bcrypt hash.\n\nReturns: JSON { match: boolean }.\nExample input: {\"password\":\"s3cret!\",\"hash\":\"$2a$10$abcdefghijklmnopqrstuv\"}\n"},{"name":"subnet_calculator","description":"Given a CIDR block (e.g. 10.0.0.0/24), return network, broadcast, netmask, first/last host, and host count.\n\nReturns: JSON with network, broadcast, first/last h"},{"name":"ip_convert","description":"Convert an IPv4 address between dotted-decimal, integer, binary, and hex forms. Accepts any of those as input.\n\nReturns: JSON { decimal, integer, hex, binary } "},{"name":"epoch_convert","description":"Convert between Unix epoch seconds/milliseconds and ISO 8601. Pass a number to convert to ISO, or an ISO string to convert to epoch.\n\nReturns: JSON with ISO str"},{"name":"timezone_convert","description":"Convert a timestamp between two IANA timezones. Returns the wall-clock time in the target zone.\n\nReturns: JSON { utc, zone, local } with the timestamp rendered "},{"name":"date_diff","description":"Compute the difference between two ISO 8601 timestamps in days, hours, minutes, and seconds.\n\nReturns: JSON with milliseconds, totalSeconds/Minutes/Hours/Days, "},{"name":"cron_validate","description":"Validate a standard 5-field cron expression (minute hour day month weekday). Returns a human-readable summary and any parse error.\n\nReturns: JSON { valid: boole"},{"name":"regex_test","description":"Test a regular expression against text. Returns all matches and capture groups.\n\nReturns: JSON { matches: string[], count } of matches for the pattern.\nExample "},{"name":"text_diff","description":"Compute a line-level diff between two strings. Returns a unified-style patch and per-line change list.\n\nReturns: JSON line-diff with { added, removed, unchanged"},{"name":"list_compare","description":"Compare two newline-separated lists. Returns union, intersection, only-in-A, and only-in-B.\n\nReturns: JSON { union, intersection, onlyInA, onlyInB } arrays.\nExa"},{"name":"color_convert","description":"Convert a color between hex, rgb, and hsl. Accepts inputs like '#3B82F6', 'rgb(59,130,246)', or 'hsl(217,91%,60%)'.\n\nReturns: JSON with hex, rgb, and hsl repres"},{"name":"contrast_check","description":"Compute the WCAG contrast ratio between two hex colors and report AA/AAA pass/fail for normal and large text.\n\nReturns: JSON { ratio, AA, AAA, AALarge, AAALarge"},{"name":"css_gradient","description":"Build a CSS linear or radial gradient string from color stops.\n\nReturns: CSS gradient string (linear or radial).\nExample input: {\"type\":\"linear\",\"angle\":45,\"sto"},{"name":"random_name","description":"Generate random human names.\n\nReturns: JSON array of random human name strings.\nExample input: {\"count\":3}"},{"name":"random_email","description":"Generate random-looking (non-deliverable) test email addresses.\n\nReturns: JSON array of random email address strings.\nExample input: {\"count\":3,\"domain\":\"exampl"},{"name":"random_number","description":"Generate cryptographically random numbers in a range.\n\nReturns: JSON array of generated numbers.\nExample input: {\"min\":1,\"max\":100,\"count\":5,\"mode\":\"integer\"}"},{"name":"lorem_ipsum","description":"Generate placeholder lorem ipsum text.\n\nReturns: Lorem ipsum text of the requested size.\nExample input: {\"unit\":\"paragraphs\",\"count\":2}"},{"name":"emi_calculate","description":"Compute the equated monthly installment (EMI) for a loan.\n\nReturns: JSON { emi, totalInterest, totalPayment } for the loan.\nExample input: {\"principal\":500000,\""},{"name":"simple_interest","description":"Compute simple interest: I = P × r × t.\n\nReturns: JSON { interest, total } computed as P·r·t.\nExample input: {\"principal\":10000,\"annualRatePercent\":5,\"years\":3}"},{"name":"compound_interest","description":"Compute compound interest: A = P(1 + r/n)^(nt).\n\nReturns: JSON { interest, total } computed as P(1+r/n)^(nt).\nExample input: {\"principal\":10000,\"annualRatePerce"},{"name":"bmi_calculate","description":"Calculate Body Mass Index in metric (kg/cm) or imperial (lb/in) units.\n\nReturns: JSON { bmi, category } (Underweight / Normal / Overweight / Obese).\nExample inp"},{"name":"list_calculators","description":"List the calculators that run_calculator can execute (finance, health, maths, statistics, construction, science, everyday and engineering), with each one's inpu"},{"name":"run_calculator","description":"Run any RedBison calculator by id with named inputs and get the result as JSON: mortgages and loans, savings and investing, pay and tax, body and fitness, maths"},{"name":"ascii_art_text","description":"Render text as a FIGlet ASCII art banner in one of 7 bundled fonts (Standard, Slant, Small, Big, Doom, ANSI Shadow, Mini), optionally wrapped at a column width "},{"name":"barcode_check_digit","description":"Compute or validate the GS1 mod-10 check digit of an EAN-8, UPC-A, EAN-13 or ITF-14 (GTIN-8/12/13/14) number. Give the digits without the check digit to compute"},{"name":"chmod_convert","description":"Convert Unix permissions between octal (755, 4755), symbolic (rwxr-xr-x) and ls -l strings, or apply a chmod expression such as 'go-w,u+x' to a starting mode. E"},{"name":"color_palette","description":"Build a harmonious color palette from one base color (complementary, analogous, triadic, split-complementary, tetradic, square, monochromatic or tints and shade"},{"name":"cron_build","description":"Build a standard five-field cron expression from plain choices (every N minutes, hourly, daily, weekly, monthly, yearly) or explain an existing one. Returns the"},{"name":"css_beautify","description":"Pretty-print or minify CSS, SCSS or Less, optionally sorting declarations alphabetically. Sorting is cascade-safe: a shorthand and its longhands (border / borde"},{"name":"curl_to_code","description":"Convert a curl command (bash/zsh quoting, $'...' strings, \\ line continuations, or Windows cmd ^ escaping from 'Copy as cURL') into JavaScript fetch, Node Axios"},{"name":"docker_run_to_compose","description":"Convert one or more 'docker run' commands into a Compose file (services, ports, volumes, environment, networks, healthcheck, GPUs, limits), or convert a compose"},{"name":"gitignore_generate","description":"Combine .gitignore templates (based on github/gitignore) for languages, frameworks, tools, editors and operating systems into one deduplicated file, optionally "},{"name":"hmac","description":"Compute an HMAC (RFC 2104) with SHA-256, SHA-1, SHA-384 or SHA-512 and return it in hex, Base64 and Base64url. Optionally build a GitHub, Stripe or Slack webhoo"},{"name":"http_status","description":"Look up HTTP status codes: meaning, defining RFC section (RFC 9110 and others from the IANA registry), when to send it and common pitfalls. Pass a code (404), a"},{"name":"js_beautify","description":"Format JavaScript, TypeScript or JSX with js-beautify, or minify JavaScript/TypeScript by removing comments and whitespace (no renaming, no rewriting; line brea"},{"name":"json_schema_validate","description":"Validate a JSON document against a JSON Schema (drafts 06, 07, 2019-09 and 2020-12, via Ajv, all errors reported with JSON Pointer paths and formats such as dat"},{"name":"markdown_table","description":"Turn CSV, TSV (spreadsheet paste) or an existing Markdown table into a GitHub Flavored Markdown table. The first row is the header; pipes are escaped as \\|, lin"},{"name":"mime_lookup","description":"Find the MIME (media) type for a file extension or file name, or the extensions for a MIME type. Returns the type, whether it is IANA-registered, aliases, notes"},{"name":"morse_code","description":"Translate text to International Morse code (ITU-R M.1677-1) or Morse back to text. Letters are separated by spaces and words by ' / '. Wrap prosigns in angle br"},{"name":"nato_phonetic","description":"Spell text with the ICAO/NATO radiotelephony alphabet (Alfa, Bravo, Charlie...), with ICAO number words (Tree, Fower, Fife, Niner) or plain ones, optional Capit"},{"name":"password_strength","description":"Estimate how guessable a password is with zxcvbn pattern matching (dictionary words, common passwords, keyboard walks, sequences, dates, l33t). Returns a 0-4 sc"},{"name":"readability","description":"Score English text with Flesch Reading Ease, Flesch-Kincaid Grade, Gunning Fog, SMOG, Coleman-Liau and the Automated Readability Index, and list hard sentences,"},{"name":"redirect_rules","description":"Generate 301/302/307/308 redirect rules for Apache .htaccess (mod_rewrite), nginx, Netlify _redirects or vercel.json from a list of 'source destination [code]' "},{"name":"toml_convert","description":"Convert between TOML 1.0, JSON and YAML, validating the input. TOML dates become RFC 3339 strings in JSON; nulls are dropped when writing TOML (it has no null) "},{"name":"user_agent_parse","description":"Parse a User-Agent header into browser, engine, OS, device type, vendor, model and CPU (ua-parser-js), and detect search, AI, social, SEO and monitoring bots an"},{"name":"utm_build","description":"Add Google Analytics UTM parameters (utm_source, utm_medium, utm_campaign, utm_id, utm_term, utm_content) to a landing page URL. Keeps existing query parameters"},{"name":"word_count","description":"Count words, characters (with and without spaces), sentences, paragraphs and lines in text, estimate reading and speaking time, list the most frequent words and"},{"name":"help","description":"Explain how to use any RedBison MCP tool, with its input schema, a sample input and the sample output it produces. Call with no arguments for the list of tools;"}],"toolCount":82,"toolsHash":"31611ba2b9a29768a58011fe54eca5d479e840c4f3d186c1451d00eed81cf8cb","serverName":"redbison-mcp","capabilities":["tools"],"serverVersion":"2.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T02:22:29.711Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1979,"error":null,"detail":{"tools":[{"name":"search_tools","description":"Search RedBison's 500+ tools by keyword: developer utilities, file and media converters, and finance, health, math and engineering calculators. Returns a ranked"},{"name":"get_tool","description":"Get full metadata for a specific RedBison tool by its id (slug).\n\nReturns: Full JSON metadata for the tool: { id, name, description, url, category, subcategory?"},{"name":"list_categories","description":"List all tool categories and subcategories available on RedBison.\n\nReturns: JSON array of { category, count } entries covering the full RedBison catalog.\nExampl"},{"name":"health","description":"Return server status, name, version, and uptime info. Use this to monitor the MCP server.\n\nReturns: JSON { status, name, version, startedAt, timestamp }.\nExampl"},{"name":"base64_encode","description":"Base64-encode a UTF-8 string.\n\nReturns: Base64-encoded string (UTF-8 safe).\nExample input: {\"text\":\"hello world\"}"},{"name":"base64_decode","description":"Base64-decode a string back to UTF-8.\n\nReturns: UTF-8 decoded plain text.\nExample input: {\"text\":\"aGVsbG8gd29ybGQ=\"}"},{"name":"url_encode","description":"Percent-encode a string for use in URLs.\n\nReturns: Percent-encoded string suitable for URL query values.\nExample input: {\"text\":\"hello world & friends\"}"},{"name":"url_decode","description":"Percent-decode a URL-encoded string.\n\nReturns: Percent-decoded plain text.\nExample input: {\"text\":\"hello%20world%20%26%20friends\"}"},{"name":"json_format","description":"Pretty-print a JSON string with a chosen indent size.\n\nReturns: Pretty-printed JSON string with the requested indent, or an error message if the input is invali"},{"name":"json_validate","description":"Validate a JSON string. Returns { valid, error? }.\n\nReturns: JSON { valid: boolean, error?: string }.\nExample input: {\"text\":\"{\\\"a\\\":1}\"}\nOn error, includes hin"},{"name":"csv_to_json","description":"Parse CSV text into JSON. Uses the first row as headers unless header=false.\n\nReturns: JSON array of row objects keyed by the header row.\nExample input: {\"text\""},{"name":"json_to_csv","description":"Convert an array of JSON objects to CSV. Columns are inferred from the union of keys.\n\nReturns: CSV string with a header row derived from the first object's key"},{"name":"json_to_yaml","description":"Convert a JSON string to YAML.\n\nReturns: YAML representation of the parsed JSON value.\nExample input: {\"json\":\"{\\\"name\\\":\\\"Ada\\\",\\\"skills\\\":[\\\"math\\\",\\\"logic\\\"]"},{"name":"yaml_to_json","description":"Convert simple YAML (maps, lists, scalars, flow {} / []) to JSON. Anchors, tags, and complex block scalars are not supported.\n\nReturns: Pretty-printed JSON buil"},{"name":"tsv_parse","description":"Parse tab-separated values into JSON. First row is treated as header unless header=false.\n\nReturns: JSON array of row objects derived from the TSV header row.\nE"},{"name":"html_beautify","description":"Pretty-print an HTML fragment.\n\nReturns: Pretty-printed HTML string with normalized indentation.\nExample input: {\"html\":\"<div><p>hi</p><p>there</p></div>\",\"inde"},{"name":"xml_beautify","description":"Pretty-print an XML document.\n\nReturns: Pretty-printed XML string with normalized indentation.\nExample input: {\"xml\":\"<root><a>1</a><b>2</b></root>\",\"indent\":2}"},{"name":"yaml_beautify","description":"Normalize YAML indentation and whitespace.\n\nReturns: Normalized YAML string (2-space indent, collapsed blank lines).\nExample input: {\"yaml\":\"a:    1\\nb:  2\\n\\n\\"},{"name":"sql_beautify","description":"Format a SQL query with keyword uppercasing and line breaks before major clauses.\n\nReturns: Formatted SQL query with keywords on new lines.\nExample input: {\"sql"},{"name":"slugify","description":"Convert text to a URL-safe slug.\n\nReturns: URL-safe slug (lowercase, dashes).\nExample input: {\"text\":\"Hello, World! 2026\"}"},{"name":"case_convert","description":"Convert text between upper, lower, title, camel, pascal, snake, and kebab case.\n\nReturns: String converted to the requested case.\nExample input: {\"text\":\"hello "},{"name":"escape_characters","description":"Escape or unescape a string for JSON, HTML, XML, JavaScript, or SQL.\n\nReturns: Escaped or unescaped string for the chosen format.\nExample input: {\"text\":\"He sai"},{"name":"remove_duplicate_lines","description":"Remove duplicate lines from text while preserving first-occurrence order.\n\nReturns: Text with duplicate lines removed (order preserved).\nExample input: {\"text\":"},{"name":"find_duplicate_entries","description":"Return lines that appear more than once in the input, with their occurrence counts.\n\nReturns: JSON array of { value, count } for lines appearing more than once."},{"name":"remove_extra_spaces","description":"Collapse runs of whitespace inside each line to a single space and trim ends.\n\nReturns: Text with runs of whitespace collapsed to a single space.\nExample input:"},{"name":"remove_empty_lines","description":"Strip blank / whitespace-only lines from the input.\n\nReturns: Text with blank lines removed.\nExample input: {\"text\":\"one\\n\\ntwo\\n\\n\\nthree\"}"},{"name":"lines_to_comma","description":"Join lines with a separator (comma by default). Empty lines are skipped.\n\nReturns: Single-line string with items joined by the chosen separator.\nExample input: "},{"name":"comma_to_lines","description":"Split a delimited string into one item per line.\n\nReturns: Multi-line string, one item per line.\nExample input: {\"text\":\"apple, banana, cherry\",\"separator\":\",\","},{"name":"jwt_decode","description":"Decode a JWT and return its header + payload. Does NOT verify the signature.\n\nReturns: JSON with decoded { header, payload, signature } sections of the JWT.\nExa"},{"name":"hash","description":"Compute a cryptographic hash of a string.\n\nReturns: Hex digest of the input using the requested algorithm.\nExample input: {\"text\":\"hello world\",\"algorithm\":\"sha"},{"name":"hash_compare","description":"Hash two inputs with the same algorithm and compare them in constant time. Useful for verifying file integrity.\n\nReturns: JSON { match: boolean } computed with "},{"name":"uuid_generate","description":"Generate one or more v4 UUIDs.\n\nReturns: JSON array of v4 UUID strings.\nExample input: {\"count\":3}\nOn error, includes hint: `count` must be an integer between 1"},{"name":"password_generate","description":"Generate a cryptographically random password. Choose length and character classes.\n\nReturns: Randomly generated password string.\nExample input: {\"length\":20,\"up"},{"name":"bcrypt_hash","description":"Hash a password with bcrypt.\n\nReturns: Bcrypt hash string (includes cost + salt).\nExample input: {\"password\":\"s3cret!\",\"cost\":10}\nOn error, includes hint: `cost"},{"name":"bcrypt_verify","description":"Check whether a password matches a bcrypt hash.\n\nReturns: JSON { match: boolean }.\nExample input: {\"password\":\"s3cret!\",\"hash\":\"$2a$10$abcdefghijklmnopqrstuv\"}\n"},{"name":"subnet_calculator","description":"Given a CIDR block (e.g. 10.0.0.0/24), return network, broadcast, netmask, first/last host, and host count.\n\nReturns: JSON with network, broadcast, first/last h"},{"name":"ip_convert","description":"Convert an IPv4 address between dotted-decimal, integer, binary, and hex forms. Accepts any of those as input.\n\nReturns: JSON { decimal, integer, hex, binary } "},{"name":"epoch_convert","description":"Convert between Unix epoch seconds/milliseconds and ISO 8601. Pass a number to convert to ISO, or an ISO string to convert to epoch.\n\nReturns: JSON with ISO str"},{"name":"timezone_convert","description":"Convert a timestamp between two IANA timezones. Returns the wall-clock time in the target zone.\n\nReturns: JSON { utc, zone, local } with the timestamp rendered "},{"name":"date_diff","description":"Compute the difference between two ISO 8601 timestamps in days, hours, minutes, and seconds.\n\nReturns: JSON with milliseconds, totalSeconds/Minutes/Hours/Days, "},{"name":"cron_validate","description":"Validate a standard 5-field cron expression (minute hour day month weekday). Returns a human-readable summary and any parse error.\n\nReturns: JSON { valid: boole"},{"name":"regex_test","description":"Test a regular expression against text. Returns all matches and capture groups.\n\nReturns: JSON { matches: string[], count } of matches for the pattern.\nExample "},{"name":"text_diff","description":"Compute a line-level diff between two strings. Returns a unified-style patch and per-line change list.\n\nReturns: JSON line-diff with { added, removed, unchanged"},{"name":"list_compare","description":"Compare two newline-separated lists. Returns union, intersection, only-in-A, and only-in-B.\n\nReturns: JSON { union, intersection, onlyInA, onlyInB } arrays.\nExa"},{"name":"color_convert","description":"Convert a color between hex, rgb, and hsl. Accepts inputs like '#3B82F6', 'rgb(59,130,246)', or 'hsl(217,91%,60%)'.\n\nReturns: JSON with hex, rgb, and hsl repres"},{"name":"contrast_check","description":"Compute the WCAG contrast ratio between two hex colors and report AA/AAA pass/fail for normal and large text.\n\nReturns: JSON { ratio, AA, AAA, AALarge, AAALarge"},{"name":"css_gradient","description":"Build a CSS linear or radial gradient string from color stops.\n\nReturns: CSS gradient string (linear or radial).\nExample input: {\"type\":\"linear\",\"angle\":45,\"sto"},{"name":"random_name","description":"Generate random human names.\n\nReturns: JSON array of random human name strings.\nExample input: {\"count\":3}"},{"name":"random_email","description":"Generate random-looking (non-deliverable) test email addresses.\n\nReturns: JSON array of random email address strings.\nExample input: {\"count\":3,\"domain\":\"exampl"},{"name":"random_number","description":"Generate cryptographically random numbers in a range.\n\nReturns: JSON array of generated numbers.\nExample input: {\"min\":1,\"max\":100,\"count\":5,\"mode\":\"integer\"}"},{"name":"lorem_ipsum","description":"Generate placeholder lorem ipsum text.\n\nReturns: Lorem ipsum text of the requested size.\nExample input: {\"unit\":\"paragraphs\",\"count\":2}"},{"name":"emi_calculate","description":"Compute the equated monthly installment (EMI) for a loan.\n\nReturns: JSON { emi, totalInterest, totalPayment } for the loan.\nExample input: {\"principal\":500000,\""},{"name":"simple_interest","description":"Compute simple interest: I = P × r × t.\n\nReturns: JSON { interest, total } computed as P·r·t.\nExample input: {\"principal\":10000,\"annualRatePercent\":5,\"years\":3}"},{"name":"compound_interest","description":"Compute compound interest: A = P(1 + r/n)^(nt).\n\nReturns: JSON { interest, total } computed as P(1+r/n)^(nt).\nExample input: {\"principal\":10000,\"annualRatePerce"},{"name":"bmi_calculate","description":"Calculate Body Mass Index in metric (kg/cm) or imperial (lb/in) units.\n\nReturns: JSON { bmi, category } (Underweight / Normal / Overweight / Obese).\nExample inp"},{"name":"list_calculators","description":"List the calculators that run_calculator can execute (finance, health, maths, statistics, construction, science, everyday and engineering), with each one's inpu"},{"name":"run_calculator","description":"Run any RedBison calculator by id with named inputs and get the result as JSON: mortgages and loans, savings and investing, pay and tax, body and fitness, maths"},{"name":"ascii_art_text","description":"Render text as a FIGlet ASCII art banner in one of 7 bundled fonts (Standard, Slant, Small, Big, Doom, ANSI Shadow, Mini), optionally wrapped at a column width "},{"name":"barcode_check_digit","description":"Compute or validate the GS1 mod-10 check digit of an EAN-8, UPC-A, EAN-13 or ITF-14 (GTIN-8/12/13/14) number. Give the digits without the check digit to compute"},{"name":"chmod_convert","description":"Convert Unix permissions between octal (755, 4755), symbolic (rwxr-xr-x) and ls -l strings, or apply a chmod expression such as 'go-w,u+x' to a starting mode. E"},{"name":"color_palette","description":"Build a harmonious color palette from one base color (complementary, analogous, triadic, split-complementary, tetradic, square, monochromatic or tints and shade"},{"name":"cron_build","description":"Build a standard five-field cron expression from plain choices (every N minutes, hourly, daily, weekly, monthly, yearly) or explain an existing one. Returns the"},{"name":"css_beautify","description":"Pretty-print or minify CSS, SCSS or Less, optionally sorting declarations alphabetically. Sorting is cascade-safe: a shorthand and its longhands (border / borde"},{"name":"curl_to_code","description":"Convert a curl command (bash/zsh quoting, $'...' strings, \\ line continuations, or Windows cmd ^ escaping from 'Copy as cURL') into JavaScript fetch, Node Axios"},{"name":"docker_run_to_compose","description":"Convert one or more 'docker run' commands into a Compose file (services, ports, volumes, environment, networks, healthcheck, GPUs, limits), or convert a compose"},{"name":"gitignore_generate","description":"Combine .gitignore templates (based on github/gitignore) for languages, frameworks, tools, editors and operating systems into one deduplicated file, optionally "},{"name":"hmac","description":"Compute an HMAC (RFC 2104) with SHA-256, SHA-1, SHA-384 or SHA-512 and return it in hex, Base64 and Base64url. Optionally build a GitHub, Stripe or Slack webhoo"},{"name":"http_status","description":"Look up HTTP status codes: meaning, defining RFC section (RFC 9110 and others from the IANA registry), when to send it and common pitfalls. Pass a code (404), a"},{"name":"js_beautify","description":"Format JavaScript, TypeScript or JSX with js-beautify, or minify JavaScript/TypeScript by removing comments and whitespace (no renaming, no rewriting; line brea"},{"name":"json_schema_validate","description":"Validate a JSON document against a JSON Schema (drafts 06, 07, 2019-09 and 2020-12, via Ajv, all errors reported with JSON Pointer paths and formats such as dat"},{"name":"markdown_table","description":"Turn CSV, TSV (spreadsheet paste) or an existing Markdown table into a GitHub Flavored Markdown table. The first row is the header; pipes are escaped as \\|, lin"},{"name":"mime_lookup","description":"Find the MIME (media) type for a file extension or file name, or the extensions for a MIME type. Returns the type, whether it is IANA-registered, aliases, notes"},{"name":"morse_code","description":"Translate text to International Morse code (ITU-R M.1677-1) or Morse back to text. Letters are separated by spaces and words by ' / '. Wrap prosigns in angle br"},{"name":"nato_phonetic","description":"Spell text with the ICAO/NATO radiotelephony alphabet (Alfa, Bravo, Charlie...), with ICAO number words (Tree, Fower, Fife, Niner) or plain ones, optional Capit"},{"name":"password_strength","description":"Estimate how guessable a password is with zxcvbn pattern matching (dictionary words, common passwords, keyboard walks, sequences, dates, l33t). Returns a 0-4 sc"},{"name":"readability","description":"Score English text with Flesch Reading Ease, Flesch-Kincaid Grade, Gunning Fog, SMOG, Coleman-Liau and the Automated Readability Index, and list hard sentences,"},{"name":"redirect_rules","description":"Generate 301/302/307/308 redirect rules for Apache .htaccess (mod_rewrite), nginx, Netlify _redirects or vercel.json from a list of 'source destination [code]' "},{"name":"toml_convert","description":"Convert between TOML 1.0, JSON and YAML, validating the input. TOML dates become RFC 3339 strings in JSON; nulls are dropped when writing TOML (it has no null) "},{"name":"user_agent_parse","description":"Parse a User-Agent header into browser, engine, OS, device type, vendor, model and CPU (ua-parser-js), and detect search, AI, social, SEO and monitoring bots an"},{"name":"utm_build","description":"Add Google Analytics UTM parameters (utm_source, utm_medium, utm_campaign, utm_id, utm_term, utm_content) to a landing page URL. Keeps existing query parameters"},{"name":"word_count","description":"Count words, characters (with and without spaces), sentences, paragraphs and lines in text, estimate reading and speaking time, list the most frequent words and"},{"name":"help","description":"Explain how to use any RedBison MCP tool, with its input schema, a sample input and the sample output it produces. Call with no arguments for the list of tools;"}],"toolCount":82,"toolsHash":"31611ba2b9a29768a58011fe54eca5d479e840c4f3d186c1451d00eed81cf8cb","serverName":"redbison-mcp","capabilities":["tools"],"serverVersion":"2.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-01T17:31:11.673Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":2090,"error":null,"detail":{"tools":[{"name":"search_tools","description":"Search RedBison's 500+ tools by keyword: developer utilities, file and media converters, and finance, health, math and engineering calculators. Returns a ranked"},{"name":"get_tool","description":"Get full metadata for a specific RedBison tool by its id (slug).\n\nReturns: Full JSON metadata for the tool: { id, name, description, url, category, subcategory?"},{"name":"list_categories","description":"List all tool categories and subcategories available on RedBison.\n\nReturns: JSON array of { category, count } entries covering the full RedBison catalog.\nExampl"},{"name":"health","description":"Return server status, name, version, and uptime info. Use this to monitor the MCP server.\n\nReturns: JSON { status, name, version, startedAt, timestamp }.\nExampl"},{"name":"base64_encode","description":"Base64-encode a UTF-8 string.\n\nReturns: Base64-encoded string (UTF-8 safe).\nExample input: {\"text\":\"hello world\"}"},{"name":"base64_decode","description":"Base64-decode a string back to UTF-8.\n\nReturns: UTF-8 decoded plain text.\nExample input: {\"text\":\"aGVsbG8gd29ybGQ=\"}"},{"name":"url_encode","description":"Percent-encode a string for use in URLs.\n\nReturns: Percent-encoded string suitable for URL query values.\nExample input: {\"text\":\"hello world & friends\"}"},{"name":"url_decode","description":"Percent-decode a URL-encoded string.\n\nReturns: Percent-decoded plain text.\nExample input: {\"text\":\"hello%20world%20%26%20friends\"}"},{"name":"json_format","description":"Pretty-print a JSON string with a chosen indent size.\n\nReturns: Pretty-printed JSON string with the requested indent, or an error message if the input is invali"},{"name":"json_validate","description":"Validate a JSON string. Returns { valid, error? }.\n\nReturns: JSON { valid: boolean, error?: string }.\nExample input: {\"text\":\"{\\\"a\\\":1}\"}\nOn error, includes hin"},{"name":"csv_to_json","description":"Parse CSV text into JSON. Uses the first row as headers unless header=false.\n\nReturns: JSON array of row objects keyed by the header row.\nExample input: {\"text\""},{"name":"json_to_csv","description":"Convert an array of JSON objects to CSV. Columns are inferred from the union of keys.\n\nReturns: CSV string with a header row derived from the first object's key"},{"name":"json_to_yaml","description":"Convert a JSON string to YAML.\n\nReturns: YAML representation of the parsed JSON value.\nExample input: {\"json\":\"{\\\"name\\\":\\\"Ada\\\",\\\"skills\\\":[\\\"math\\\",\\\"logic\\\"]"},{"name":"yaml_to_json","description":"Convert simple YAML (maps, lists, scalars, flow {} / []) to JSON. Anchors, tags, and complex block scalars are not supported.\n\nReturns: Pretty-printed JSON buil"},{"name":"tsv_parse","description":"Parse tab-separated values into JSON. First row is treated as header unless header=false.\n\nReturns: JSON array of row objects derived from the TSV header row.\nE"},{"name":"html_beautify","description":"Pretty-print an HTML fragment.\n\nReturns: Pretty-printed HTML string with normalized indentation.\nExample input: {\"html\":\"<div><p>hi</p><p>there</p></div>\",\"inde"},{"name":"xml_beautify","description":"Pretty-print an XML document.\n\nReturns: Pretty-printed XML string with normalized indentation.\nExample input: {\"xml\":\"<root><a>1</a><b>2</b></root>\",\"indent\":2}"},{"name":"yaml_beautify","description":"Normalize YAML indentation and whitespace.\n\nReturns: Normalized YAML string (2-space indent, collapsed blank lines).\nExample input: {\"yaml\":\"a:    1\\nb:  2\\n\\n\\"},{"name":"sql_beautify","description":"Format a SQL query with keyword uppercasing and line breaks before major clauses.\n\nReturns: Formatted SQL query with keywords on new lines.\nExample input: {\"sql"},{"name":"slugify","description":"Convert text to a URL-safe slug.\n\nReturns: URL-safe slug (lowercase, dashes).\nExample input: {\"text\":\"Hello, World! 2026\"}"},{"name":"case_convert","description":"Convert text between upper, lower, title, camel, pascal, snake, and kebab case.\n\nReturns: String converted to the requested case.\nExample input: {\"text\":\"hello "},{"name":"escape_characters","description":"Escape or unescape a string for JSON, HTML, XML, JavaScript, or SQL.\n\nReturns: Escaped or unescaped string for the chosen format.\nExample input: {\"text\":\"He sai"},{"name":"remove_duplicate_lines","description":"Remove duplicate lines from text while preserving first-occurrence order.\n\nReturns: Text with duplicate lines removed (order preserved).\nExample input: {\"text\":"},{"name":"find_duplicate_entries","description":"Return lines that appear more than once in the input, with their occurrence counts.\n\nReturns: JSON array of { value, count } for lines appearing more than once."},{"name":"remove_extra_spaces","description":"Collapse runs of whitespace inside each line to a single space and trim ends.\n\nReturns: Text with runs of whitespace collapsed to a single space.\nExample input:"},{"name":"remove_empty_lines","description":"Strip blank / whitespace-only lines from the input.\n\nReturns: Text with blank lines removed.\nExample input: {\"text\":\"one\\n\\ntwo\\n\\n\\nthree\"}"},{"name":"lines_to_comma","description":"Join lines with a separator (comma by default). Empty lines are skipped.\n\nReturns: Single-line string with items joined by the chosen separator.\nExample input: "},{"name":"comma_to_lines","description":"Split a delimited string into one item per line.\n\nReturns: Multi-line string, one item per line.\nExample input: {\"text\":\"apple, banana, cherry\",\"separator\":\",\","},{"name":"jwt_decode","description":"Decode a JWT and return its header + payload. Does NOT verify the signature.\n\nReturns: JSON with decoded { header, payload, signature } sections of the JWT.\nExa"},{"name":"hash","description":"Compute a cryptographic hash of a string.\n\nReturns: Hex digest of the input using the requested algorithm.\nExample input: {\"text\":\"hello world\",\"algorithm\":\"sha"},{"name":"hash_compare","description":"Hash two inputs with the same algorithm and compare them in constant time. Useful for verifying file integrity.\n\nReturns: JSON { match: boolean } computed with "},{"name":"uuid_generate","description":"Generate one or more v4 UUIDs.\n\nReturns: JSON array of v4 UUID strings.\nExample input: {\"count\":3}\nOn error, includes hint: `count` must be an integer between 1"},{"name":"password_generate","description":"Generate a cryptographically random password. Choose length and character classes.\n\nReturns: Randomly generated password string.\nExample input: {\"length\":20,\"up"},{"name":"bcrypt_hash","description":"Hash a password with bcrypt.\n\nReturns: Bcrypt hash string (includes cost + salt).\nExample input: {\"password\":\"s3cret!\",\"cost\":10}\nOn error, includes hint: `cost"},{"name":"bcrypt_verify","description":"Check whether a password matches a bcrypt hash.\n\nReturns: JSON { match: boolean }.\nExample input: {\"password\":\"s3cret!\",\"hash\":\"$2a$10$abcdefghijklmnopqrstuv\"}\n"},{"name":"subnet_calculator","description":"Given a CIDR block (e.g. 10.0.0.0/24), return network, broadcast, netmask, first/last host, and host count.\n\nReturns: JSON with network, broadcast, first/last h"},{"name":"ip_convert","description":"Convert an IPv4 address between dotted-decimal, integer, binary, and hex forms. Accepts any of those as input.\n\nReturns: JSON { decimal, integer, hex, binary } "},{"name":"epoch_convert","description":"Convert between Unix epoch seconds/milliseconds and ISO 8601. Pass a number to convert to ISO, or an ISO string to convert to epoch.\n\nReturns: JSON with ISO str"},{"name":"timezone_convert","description":"Convert a timestamp between two IANA timezones. Returns the wall-clock time in the target zone.\n\nReturns: JSON { utc, zone, local } with the timestamp rendered "},{"name":"date_diff","description":"Compute the difference between two ISO 8601 timestamps in days, hours, minutes, and seconds.\n\nReturns: JSON with milliseconds, totalSeconds/Minutes/Hours/Days, "},{"name":"cron_validate","description":"Validate a standard 5-field cron expression (minute hour day month weekday). Returns a human-readable summary and any parse error.\n\nReturns: JSON { valid: boole"},{"name":"regex_test","description":"Test a regular expression against text. Returns all matches and capture groups.\n\nReturns: JSON { matches: string[], count } of matches for the pattern.\nExample "},{"name":"text_diff","description":"Compute a line-level diff between two strings. Returns a unified-style patch and per-line change list.\n\nReturns: JSON line-diff with { added, removed, unchanged"},{"name":"list_compare","description":"Compare two newline-separated lists. Returns union, intersection, only-in-A, and only-in-B.\n\nReturns: JSON { union, intersection, onlyInA, onlyInB } arrays.\nExa"},{"name":"color_convert","description":"Convert a color between hex, rgb, and hsl. Accepts inputs like '#3B82F6', 'rgb(59,130,246)', or 'hsl(217,91%,60%)'.\n\nReturns: JSON with hex, rgb, and hsl repres"},{"name":"contrast_check","description":"Compute the WCAG contrast ratio between two hex colors and report AA/AAA pass/fail for normal and large text.\n\nReturns: JSON { ratio, AA, AAA, AALarge, AAALarge"},{"name":"css_gradient","description":"Build a CSS linear or radial gradient string from color stops.\n\nReturns: CSS gradient string (linear or radial).\nExample input: {\"type\":\"linear\",\"angle\":45,\"sto"},{"name":"random_name","description":"Generate random human names.\n\nReturns: JSON array of random human name strings.\nExample input: {\"count\":3}"},{"name":"random_email","description":"Generate random-looking (non-deliverable) test email addresses.\n\nReturns: JSON array of random email address strings.\nExample input: {\"count\":3,\"domain\":\"exampl"},{"name":"random_number","description":"Generate cryptographically random numbers in a range.\n\nReturns: JSON array of generated numbers.\nExample input: {\"min\":1,\"max\":100,\"count\":5,\"mode\":\"integer\"}"},{"name":"lorem_ipsum","description":"Generate placeholder lorem ipsum text.\n\nReturns: Lorem ipsum text of the requested size.\nExample input: {\"unit\":\"paragraphs\",\"count\":2}"},{"name":"emi_calculate","description":"Compute the equated monthly installment (EMI) for a loan.\n\nReturns: JSON { emi, totalInterest, totalPayment } for the loan.\nExample input: {\"principal\":500000,\""},{"name":"simple_interest","description":"Compute simple interest: I = P × r × t.\n\nReturns: JSON { interest, total } computed as P·r·t.\nExample input: {\"principal\":10000,\"annualRatePercent\":5,\"years\":3}"},{"name":"compound_interest","description":"Compute compound interest: A = P(1 + r/n)^(nt).\n\nReturns: JSON { interest, total } computed as P(1+r/n)^(nt).\nExample input: {\"principal\":10000,\"annualRatePerce"},{"name":"bmi_calculate","description":"Calculate Body Mass Index in metric (kg/cm) or imperial (lb/in) units.\n\nReturns: JSON { bmi, category } (Underweight / Normal / Overweight / Obese).\nExample inp"},{"name":"list_calculators","description":"List the calculators that run_calculator can execute (finance, health, maths, statistics, construction, science, everyday and engineering), with each one's inpu"},{"name":"run_calculator","description":"Run any RedBison calculator by id with named inputs and get the result as JSON: mortgages and loans, savings and investing, pay and tax, body and fitness, maths"},{"name":"ascii_art_text","description":"Render text as a FIGlet ASCII art banner in one of 7 bundled fonts (Standard, Slant, Small, Big, Doom, ANSI Shadow, Mini), optionally wrapped at a column width "},{"name":"barcode_check_digit","description":"Compute or validate the GS1 mod-10 check digit of an EAN-8, UPC-A, EAN-13 or ITF-14 (GTIN-8/12/13/14) number. Give the digits without the check digit to compute"},{"name":"chmod_convert","description":"Convert Unix permissions between octal (755, 4755), symbolic (rwxr-xr-x) and ls -l strings, or apply a chmod expression such as 'go-w,u+x' to a starting mode. E"},{"name":"color_palette","description":"Build a harmonious color palette from one base color (complementary, analogous, triadic, split-complementary, tetradic, square, monochromatic or tints and shade"},{"name":"cron_build","description":"Build a standard five-field cron expression from plain choices (every N minutes, hourly, daily, weekly, monthly, yearly) or explain an existing one. Returns the"},{"name":"css_beautify","description":"Pretty-print or minify CSS, SCSS or Less, optionally sorting declarations alphabetically. Sorting is cascade-safe: a shorthand and its longhands (border / borde"},{"name":"curl_to_code","description":"Convert a curl command (bash/zsh quoting, $'...' strings, \\ line continuations, or Windows cmd ^ escaping from 'Copy as cURL') into JavaScript fetch, Node Axios"},{"name":"docker_run_to_compose","description":"Convert one or more 'docker run' commands into a Compose file (services, ports, volumes, environment, networks, healthcheck, GPUs, limits), or convert a compose"},{"name":"gitignore_generate","description":"Combine .gitignore templates (based on github/gitignore) for languages, frameworks, tools, editors and operating systems into one deduplicated file, optionally "},{"name":"hmac","description":"Compute an HMAC (RFC 2104) with SHA-256, SHA-1, SHA-384 or SHA-512 and return it in hex, Base64 and Base64url. Optionally build a GitHub, Stripe or Slack webhoo"},{"name":"http_status","description":"Look up HTTP status codes: meaning, defining RFC section (RFC 9110 and others from the IANA registry), when to send it and common pitfalls. Pass a code (404), a"},{"name":"js_beautify","description":"Format JavaScript, TypeScript or JSX with js-beautify, or minify JavaScript/TypeScript by removing comments and whitespace (no renaming, no rewriting; line brea"},{"name":"json_schema_validate","description":"Validate a JSON document against a JSON Schema (drafts 06, 07, 2019-09 and 2020-12, via Ajv, all errors reported with JSON Pointer paths and formats such as dat"},{"name":"markdown_table","description":"Turn CSV, TSV (spreadsheet paste) or an existing Markdown table into a GitHub Flavored Markdown table. The first row is the header; pipes are escaped as \\|, lin"},{"name":"mime_lookup","description":"Find the MIME (media) type for a file extension or file name, or the extensions for a MIME type. Returns the type, whether it is IANA-registered, aliases, notes"},{"name":"morse_code","description":"Translate text to International Morse code (ITU-R M.1677-1) or Morse back to text. Letters are separated by spaces and words by ' / '. Wrap prosigns in angle br"},{"name":"nato_phonetic","description":"Spell text with the ICAO/NATO radiotelephony alphabet (Alfa, Bravo, Charlie...), with ICAO number words (Tree, Fower, Fife, Niner) or plain ones, optional Capit"},{"name":"password_strength","description":"Estimate how guessable a password is with zxcvbn pattern matching (dictionary words, common passwords, keyboard walks, sequences, dates, l33t). Returns a 0-4 sc"},{"name":"readability","description":"Score English text with Flesch Reading Ease, Flesch-Kincaid Grade, Gunning Fog, SMOG, Coleman-Liau and the Automated Readability Index, and list hard sentences,"},{"name":"redirect_rules","description":"Generate 301/302/307/308 redirect rules for Apache .htaccess (mod_rewrite), nginx, Netlify _redirects or vercel.json from a list of 'source destination [code]' "},{"name":"toml_convert","description":"Convert between TOML 1.0, JSON and YAML, validating the input. TOML dates become RFC 3339 strings in JSON; nulls are dropped when writing TOML (it has no null) "},{"name":"user_agent_parse","description":"Parse a User-Agent header into browser, engine, OS, device type, vendor, model and CPU (ua-parser-js), and detect search, AI, social, SEO and monitoring bots an"},{"name":"utm_build","description":"Add Google Analytics UTM parameters (utm_source, utm_medium, utm_campaign, utm_id, utm_term, utm_content) to a landing page URL. Keeps existing query parameters"},{"name":"word_count","description":"Count words, characters (with and without spaces), sentences, paragraphs and lines in text, estimate reading and speaking time, list the most frequent words and"},{"name":"help","description":"Explain how to use any RedBison MCP tool, with its input schema, a sample input and the sample output it produces. Call with no arguments for the list of tools;"}],"toolCount":82,"toolsHash":"31611ba2b9a29768a58011fe54eca5d479e840c4f3d186c1451d00eed81cf8cb","serverName":"redbison-mcp","capabilities":["tools"],"serverVersion":"2.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_tools","description":"Search RedBison's 500+ tools by keyword: developer utilities, file and media converters, and finance, health, math and engineering calculators. Returns a ranked"},{"name":"get_tool","description":"Get full metadata for a specific RedBison tool by its id (slug).\n\nReturns: Full JSON metadata for the tool: { id, name, description, url, category, subcategory?"},{"name":"list_categories","description":"List all tool categories and subcategories available on RedBison.\n\nReturns: JSON array of { category, count } entries covering the full RedBison catalog.\nExampl"},{"name":"health","description":"Return server status, name, version, and uptime info. Use this to monitor the MCP server.\n\nReturns: JSON { status, name, version, startedAt, timestamp }.\nExampl"},{"name":"base64_encode","description":"Base64-encode a UTF-8 string.\n\nReturns: Base64-encoded string (UTF-8 safe).\nExample input: {\"text\":\"hello world\"}"},{"name":"base64_decode","description":"Base64-decode a string back to UTF-8.\n\nReturns: UTF-8 decoded plain text.\nExample input: {\"text\":\"aGVsbG8gd29ybGQ=\"}"},{"name":"url_encode","description":"Percent-encode a string for use in URLs.\n\nReturns: Percent-encoded string suitable for URL query values.\nExample input: {\"text\":\"hello world & friends\"}"},{"name":"url_decode","description":"Percent-decode a URL-encoded string.\n\nReturns: Percent-decoded plain text.\nExample input: {\"text\":\"hello%20world%20%26%20friends\"}"},{"name":"json_format","description":"Pretty-print a JSON string with a chosen indent size.\n\nReturns: Pretty-printed JSON string with the requested indent, or an error message if the input is invali"},{"name":"json_validate","description":"Validate a JSON string. Returns { valid, error? }.\n\nReturns: JSON { valid: boolean, error?: string }.\nExample input: {\"text\":\"{\\\"a\\\":1}\"}\nOn error, includes hin"},{"name":"csv_to_json","description":"Parse CSV text into JSON. Uses the first row as headers unless header=false.\n\nReturns: JSON array of row objects keyed by the header row.\nExample input: {\"text\""},{"name":"json_to_csv","description":"Convert an array of JSON objects to CSV. Columns are inferred from the union of keys.\n\nReturns: CSV string with a header row derived from the first object's key"},{"name":"json_to_yaml","description":"Convert a JSON string to YAML.\n\nReturns: YAML representation of the parsed JSON value.\nExample input: {\"json\":\"{\\\"name\\\":\\\"Ada\\\",\\\"skills\\\":[\\\"math\\\",\\\"logic\\\"]"},{"name":"yaml_to_json","description":"Convert simple YAML (maps, lists, scalars, flow {} / []) to JSON. Anchors, tags, and complex block scalars are not supported.\n\nReturns: Pretty-printed JSON buil"},{"name":"tsv_parse","description":"Parse tab-separated values into JSON. First row is treated as header unless header=false.\n\nReturns: JSON array of row objects derived from the TSV header row.\nE"},{"name":"html_beautify","description":"Pretty-print an HTML fragment.\n\nReturns: Pretty-printed HTML string with normalized indentation.\nExample input: {\"html\":\"<div><p>hi</p><p>there</p></div>\",\"inde"},{"name":"xml_beautify","description":"Pretty-print an XML document.\n\nReturns: Pretty-printed XML string with normalized indentation.\nExample input: {\"xml\":\"<root><a>1</a><b>2</b></root>\",\"indent\":2}"},{"name":"yaml_beautify","description":"Normalize YAML indentation and whitespace.\n\nReturns: Normalized YAML string (2-space indent, collapsed blank lines).\nExample input: {\"yaml\":\"a:    1\\nb:  2\\n\\n\\"},{"name":"sql_beautify","description":"Format a SQL query with keyword uppercasing and line breaks before major clauses.\n\nReturns: Formatted SQL query with keywords on new lines.\nExample input: {\"sql"},{"name":"slugify","description":"Convert text to a URL-safe slug.\n\nReturns: URL-safe slug (lowercase, dashes).\nExample input: {\"text\":\"Hello, World! 2026\"}"},{"name":"case_convert","description":"Convert text between upper, lower, title, camel, pascal, snake, and kebab case.\n\nReturns: String converted to the requested case.\nExample input: {\"text\":\"hello "},{"name":"escape_characters","description":"Escape or unescape a string for JSON, HTML, XML, JavaScript, or SQL.\n\nReturns: Escaped or unescaped string for the chosen format.\nExample input: {\"text\":\"He sai"},{"name":"remove_duplicate_lines","description":"Remove duplicate lines from text while preserving first-occurrence order.\n\nReturns: Text with duplicate lines removed (order preserved).\nExample input: {\"text\":"},{"name":"find_duplicate_entries","description":"Return lines that appear more than once in the input, with their occurrence counts.\n\nReturns: JSON array of { value, count } for lines appearing more than once."},{"name":"remove_extra_spaces","description":"Collapse runs of whitespace inside each line to a single space and trim ends.\n\nReturns: Text with runs of whitespace collapsed to a single space.\nExample input:"},{"name":"remove_empty_lines","description":"Strip blank / whitespace-only lines from the input.\n\nReturns: Text with blank lines removed.\nExample input: {\"text\":\"one\\n\\ntwo\\n\\n\\nthree\"}"},{"name":"lines_to_comma","description":"Join lines with a separator (comma by default). Empty lines are skipped.\n\nReturns: Single-line string with items joined by the chosen separator.\nExample input: "},{"name":"comma_to_lines","description":"Split a delimited string into one item per line.\n\nReturns: Multi-line string, one item per line.\nExample input: {\"text\":\"apple, banana, cherry\",\"separator\":\",\","},{"name":"jwt_decode","description":"Decode a JWT and return its header + payload. Does NOT verify the signature.\n\nReturns: JSON with decoded { header, payload, signature } sections of the JWT.\nExa"},{"name":"hash","description":"Compute a cryptographic hash of a string.\n\nReturns: Hex digest of the input using the requested algorithm.\nExample input: {\"text\":\"hello world\",\"algorithm\":\"sha"},{"name":"hash_compare","description":"Hash two inputs with the same algorithm and compare them in constant time. Useful for verifying file integrity.\n\nReturns: JSON { match: boolean } computed with "},{"name":"uuid_generate","description":"Generate one or more v4 UUIDs.\n\nReturns: JSON array of v4 UUID strings.\nExample input: {\"count\":3}\nOn error, includes hint: `count` must be an integer between 1"},{"name":"password_generate","description":"Generate a cryptographically random password. Choose length and character classes.\n\nReturns: Randomly generated password string.\nExample input: {\"length\":20,\"up"},{"name":"bcrypt_hash","description":"Hash a password with bcrypt.\n\nReturns: Bcrypt hash string (includes cost + salt).\nExample input: {\"password\":\"s3cret!\",\"cost\":10}\nOn error, includes hint: `cost"},{"name":"bcrypt_verify","description":"Check whether a password matches a bcrypt hash.\n\nReturns: JSON { match: boolean }.\nExample input: {\"password\":\"s3cret!\",\"hash\":\"$2a$10$abcdefghijklmnopqrstuv\"}\n"},{"name":"subnet_calculator","description":"Given a CIDR block (e.g. 10.0.0.0/24), return network, broadcast, netmask, first/last host, and host count.\n\nReturns: JSON with network, broadcast, first/last h"},{"name":"ip_convert","description":"Convert an IPv4 address between dotted-decimal, integer, binary, and hex forms. Accepts any of those as input.\n\nReturns: JSON { decimal, integer, hex, binary } "},{"name":"epoch_convert","description":"Convert between Unix epoch seconds/milliseconds and ISO 8601. Pass a number to convert to ISO, or an ISO string to convert to epoch.\n\nReturns: JSON with ISO str"},{"name":"timezone_convert","description":"Convert a timestamp between two IANA timezones. Returns the wall-clock time in the target zone.\n\nReturns: JSON { utc, zone, local } with the timestamp rendered "},{"name":"date_diff","description":"Compute the difference between two ISO 8601 timestamps in days, hours, minutes, and seconds.\n\nReturns: JSON with milliseconds, totalSeconds/Minutes/Hours/Days, "},{"name":"cron_validate","description":"Validate a standard 5-field cron expression (minute hour day month weekday). Returns a human-readable summary and any parse error.\n\nReturns: JSON { valid: boole"},{"name":"regex_test","description":"Test a regular expression against text. Returns all matches and capture groups.\n\nReturns: JSON { matches: string[], count } of matches for the pattern.\nExample "},{"name":"text_diff","description":"Compute a line-level diff between two strings. Returns a unified-style patch and per-line change list.\n\nReturns: JSON line-diff with { added, removed, unchanged"},{"name":"list_compare","description":"Compare two newline-separated lists. Returns union, intersection, only-in-A, and only-in-B.\n\nReturns: JSON { union, intersection, onlyInA, onlyInB } arrays.\nExa"},{"name":"color_convert","description":"Convert a color between hex, rgb, and hsl. Accepts inputs like '#3B82F6', 'rgb(59,130,246)', or 'hsl(217,91%,60%)'.\n\nReturns: JSON with hex, rgb, and hsl repres"},{"name":"contrast_check","description":"Compute the WCAG contrast ratio between two hex colors and report AA/AAA pass/fail for normal and large text.\n\nReturns: JSON { ratio, AA, AAA, AALarge, AAALarge"},{"name":"css_gradient","description":"Build a CSS linear or radial gradient string from color stops.\n\nReturns: CSS gradient string (linear or radial).\nExample input: {\"type\":\"linear\",\"angle\":45,\"sto"},{"name":"random_name","description":"Generate random human names.\n\nReturns: JSON array of random human name strings.\nExample input: {\"count\":3}"},{"name":"random_email","description":"Generate random-looking (non-deliverable) test email addresses.\n\nReturns: JSON array of random email address strings.\nExample input: {\"count\":3,\"domain\":\"exampl"},{"name":"random_number","description":"Generate cryptographically random numbers in a range.\n\nReturns: JSON array of generated numbers.\nExample input: {\"min\":1,\"max\":100,\"count\":5,\"mode\":\"integer\"}"},{"name":"lorem_ipsum","description":"Generate placeholder lorem ipsum text.\n\nReturns: Lorem ipsum text of the requested size.\nExample input: {\"unit\":\"paragraphs\",\"count\":2}"},{"name":"emi_calculate","description":"Compute the equated monthly installment (EMI) for a loan.\n\nReturns: JSON { emi, totalInterest, totalPayment } for the loan.\nExample input: {\"principal\":500000,\""},{"name":"simple_interest","description":"Compute simple interest: I = P × r × t.\n\nReturns: JSON { interest, total } computed as P·r·t.\nExample input: {\"principal\":10000,\"annualRatePercent\":5,\"years\":3}"},{"name":"compound_interest","description":"Compute compound interest: A = P(1 + r/n)^(nt).\n\nReturns: JSON { interest, total } computed as P(1+r/n)^(nt).\nExample input: {\"principal\":10000,\"annualRatePerce"},{"name":"bmi_calculate","description":"Calculate Body Mass Index in metric (kg/cm) or imperial (lb/in) units.\n\nReturns: JSON { bmi, category } (Underweight / Normal / Overweight / Obese).\nExample inp"},{"name":"list_calculators","description":"List the calculators that run_calculator can execute (finance, health, maths, statistics, construction, science, everyday and engineering), with each one's inpu"},{"name":"run_calculator","description":"Run any RedBison calculator by id with named inputs and get the result as JSON: mortgages and loans, savings and investing, pay and tax, body and fitness, maths"},{"name":"ascii_art_text","description":"Render text as a FIGlet ASCII art banner in one of 7 bundled fonts (Standard, Slant, Small, Big, Doom, ANSI Shadow, Mini), optionally wrapped at a column width "},{"name":"barcode_check_digit","description":"Compute or validate the GS1 mod-10 check digit of an EAN-8, UPC-A, EAN-13 or ITF-14 (GTIN-8/12/13/14) number. Give the digits without the check digit to compute"},{"name":"chmod_convert","description":"Convert Unix permissions between octal (755, 4755), symbolic (rwxr-xr-x) and ls -l strings, or apply a chmod expression such as 'go-w,u+x' to a starting mode. E"},{"name":"color_palette","description":"Build a harmonious color palette from one base color (complementary, analogous, triadic, split-complementary, tetradic, square, monochromatic or tints and shade"},{"name":"cron_build","description":"Build a standard five-field cron expression from plain choices (every N minutes, hourly, daily, weekly, monthly, yearly) or explain an existing one. Returns the"},{"name":"css_beautify","description":"Pretty-print or minify CSS, SCSS or Less, optionally sorting declarations alphabetically. Sorting is cascade-safe: a shorthand and its longhands (border / borde"},{"name":"curl_to_code","description":"Convert a curl command (bash/zsh quoting, $'...' strings, \\ line continuations, or Windows cmd ^ escaping from 'Copy as cURL') into JavaScript fetch, Node Axios"},{"name":"docker_run_to_compose","description":"Convert one or more 'docker run' commands into a Compose file (services, ports, volumes, environment, networks, healthcheck, GPUs, limits), or convert a compose"},{"name":"gitignore_generate","description":"Combine .gitignore templates (based on github/gitignore) for languages, frameworks, tools, editors and operating systems into one deduplicated file, optionally "},{"name":"hmac","description":"Compute an HMAC (RFC 2104) with SHA-256, SHA-1, SHA-384 or SHA-512 and return it in hex, Base64 and Base64url. Optionally build a GitHub, Stripe or Slack webhoo"},{"name":"http_status","description":"Look up HTTP status codes: meaning, defining RFC section (RFC 9110 and others from the IANA registry), when to send it and common pitfalls. Pass a code (404), a"},{"name":"js_beautify","description":"Format JavaScript, TypeScript or JSX with js-beautify, or minify JavaScript/TypeScript by removing comments and whitespace (no renaming, no rewriting; line brea"},{"name":"json_schema_validate","description":"Validate a JSON document against a JSON Schema (drafts 06, 07, 2019-09 and 2020-12, via Ajv, all errors reported with JSON Pointer paths and formats such as dat"},{"name":"markdown_table","description":"Turn CSV, TSV (spreadsheet paste) or an existing Markdown table into a GitHub Flavored Markdown table. The first row is the header; pipes are escaped as \\|, lin"},{"name":"mime_lookup","description":"Find the MIME (media) type for a file extension or file name, or the extensions for a MIME type. Returns the type, whether it is IANA-registered, aliases, notes"},{"name":"morse_code","description":"Translate text to International Morse code (ITU-R M.1677-1) or Morse back to text. Letters are separated by spaces and words by ' / '. Wrap prosigns in angle br"},{"name":"nato_phonetic","description":"Spell text with the ICAO/NATO radiotelephony alphabet (Alfa, Bravo, Charlie...), with ICAO number words (Tree, Fower, Fife, Niner) or plain ones, optional Capit"},{"name":"password_strength","description":"Estimate how guessable a password is with zxcvbn pattern matching (dictionary words, common passwords, keyboard walks, sequences, dates, l33t). Returns a 0-4 sc"},{"name":"readability","description":"Score English text with Flesch Reading Ease, Flesch-Kincaid Grade, Gunning Fog, SMOG, Coleman-Liau and the Automated Readability Index, and list hard sentences,"},{"name":"redirect_rules","description":"Generate 301/302/307/308 redirect rules for Apache .htaccess (mod_rewrite), nginx, Netlify _redirects or vercel.json from a list of 'source destination [code]' "},{"name":"toml_convert","description":"Convert between TOML 1.0, JSON and YAML, validating the input. TOML dates become RFC 3339 strings in JSON; nulls are dropped when writing TOML (it has no null) "},{"name":"user_agent_parse","description":"Parse a User-Agent header into browser, engine, OS, device type, vendor, model and CPU (ua-parser-js), and detect search, AI, social, SEO and monitoring bots an"},{"name":"utm_build","description":"Add Google Analytics UTM parameters (utm_source, utm_medium, utm_campaign, utm_id, utm_term, utm_content) to a landing page URL. Keeps existing query parameters"},{"name":"word_count","description":"Count words, characters (with and without spaces), sentences, paragraphs and lines in text, estimate reading and speaking time, list the most frequent words and"},{"name":"help","description":"Explain how to use any RedBison MCP tool, with its input schema, a sample input and the sample output it produces. Call with no arguments for the list of tools;"}],"package":null,"toolSurface":{"id":"ts_z3nqgrjnbyus","endpointId":"ep_kcc5v9gqzvwy","hash":"31611ba2b9a29768a58011fe54eca5d479e840c4f3d186c1451d00eed81cf8cb","toolCount":82,"serverName":"redbison-mcp","serverVersion":"2.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-11-01T17:31:11.667Z","lastSeenAt":"2026-11-02T10:24:14.822Z","observations":3,"toolNames":["search_tools","get_tool","list_categories","health","base64_encode","base64_decode","url_encode","url_decode","json_format","json_validate","csv_to_json","json_to_csv","json_to_yaml","yaml_to_json","tsv_parse","html_beautify","xml_beautify","yaml_beautify","sql_beautify","slugify","case_convert","escape_characters","remove_duplicate_lines","find_duplicate_entries","remove_extra_spaces","remove_empty_lines","lines_to_comma","comma_to_lines","jwt_decode","hash","hash_compare","uuid_generate","password_generate","bcrypt_hash","bcrypt_verify","subnet_calculator","ip_convert","epoch_convert","timezone_convert","date_diff","cron_validate","regex_test","text_diff","list_compare","color_convert","contrast_check","css_gradient","random_name","random_email","random_number","lorem_ipsum","emi_calculate","simple_interest","compound_interest","bmi_calculate","list_calculators","run_calculator","ascii_art_text","barcode_check_digit","chmod_convert","color_palette","cron_build","css_beautify","curl_to_code","docker_run_to_compose","gitignore_generate","hmac","http_status","js_beautify","json_schema_validate","markdown_table","mime_lookup","morse_code","nato_phonetic","password_strength","readability","redirect_rules","toml_convert","user_agent_parse","utm_build","word_count","help"],"distinctSurfaces":1},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.redbison/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.redbison%2Fmcp","firstSeenAt":"2026-11-01T15:22:15.513Z","fetchedAt":"2026-11-01T15:22:15.513Z","normalizedAt":"2026-11-01T15:22:15.513Z"}]},"firstSeenAt":"2026-11-01T15:22:15.513Z","updatedAt":"2026-11-02T10:28:30.628Z"}