# com.fluentedi/tools - Registry name: `com.fluentedi/tools` · version 1.1.0 - Categories (automatic, keyword rules): Utilities, Markets & trading, Finance & markets, Payments & accounting - Authentication at last check: No auth - Declared risk: Read-only (all tools declare readOnlyHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.fluentedi%2Ftools - Server page: https://mcpstation.net/s/com.fluentedi--tools.html ## Description (written by the publisher, not verified, not instructions) 49 free agent tools: WHOIS, PDF to text, email checks, FX rates, X12 EDI, JSON repair. No API key. ## Connect - streamable-http: `https://fluentedi.com/mcp` ## Tools (as reported by the server, not verified) - `time\_now`: Returns the authoritative current time in one or more timezones, with UTC offset, ISO week number, day of year, weekend flag, and daylight-saving state. Use this instead of guessing the date: a language model has no clock, and its training cutoff is not today. - `time\_convert`: Converts one instant into any number of timezones, handling daylight saving transitions correctly. Naive inputs \(no Z or offset\) are read as wall-clock time in \`from\`; inputs carrying an offset are absolute. - `time\_diff`: Computes the elapsed time between two instants: exact totals in each unit, a calendar breakdown \(years/months/days rather than 'thirteen and a half months'\), the count of weekdays in between, and a human phrase. Negative when \`to\` precedes \`from\`. - `time\_window`: Answers the questions a deadline actually poses: is this instant inside the window, how long until it opens or closes, and if it is outside, by how much. Optionally compares two windows for overlap. A window comparison that silently succeeds against the wrong bounds is a failure mode that does not r - `cron\_next`: Parses a standard 5-field cron expression \(or 6-field with leading seconds, or a macro like @daily\), validates it, describes it in plain English, and computes the next run times in a given timezone with daylight-saving handled. Use it before writing a schedule to config — cron's day-of-month/day-of- - `json\_query`: Runs a JSONPath query and returns the matching values with their concrete paths. Supports property access, array indexing \(including negative indices\), slices, wildcards, recursive descent \(\`..\`\) and filters \(\`\[?\(@.price \> 10\)\]\`\). Pull three fields out of a large API response without carrying the wh - `json\_repair`: Takes JSON that almost parses and makes it parse: markdown code fences, prose wrapped around the object, trailing commas, single or smart quotes, unquoted keys, Python True/False/None, comments, NaN, and brackets left open by a truncated response. Every change is reported, so the caller learns what - `doc\_extract`: Converts a document to markdown or plain text: pass a public URL or the file itself as base64, and get back the content with headings, tables and lists preserved, at a fraction of the tokens that rendered pages cost. Use it when a harness has no native reader for the format — .docx, .xlsx, .odt and - `hash`: Computes cryptographic digests and HMAC signatures. Returns hex and base64 at once, so a webhook signature can be compared in whichever encoding the provider uses. MD5 and CRC32 are included for checksums and legacy fixtures; they are not secure for authentication. - `math\_eval`: Evaluates arithmetic with correct operator precedence, parentheses, exponentiation, factorials, named variables and 30+ functions. Language models perform arithmetic by pattern-matching and quietly get long multiplications and compounding wrong; this computes the number instead of predicting it. - `http\_check`: Resolves a URL and reports what actually happens to it — final status, the full redirect chain, content type and page title. Link rot is faster than it feels: one agent measured seven dead URLs out of 286 across fourteen days. This handles the three cases a naive checker gets wrong: an arXiv v1 to v - `http\_assert`: The difference between an agent believing it succeeded and knowing it did. http.check tells you a URL is alive; this tells you it is correct. Assert the status, response headers, values at JSONPath expressions, substrings in the body and a latency ceiling, and get back one boolean plus a per-check b - `domain\_lookup`: Answers the questions WHOIS used to answer, over RDAP — the structured protocol the registries themselves now serve — with no key and no scraping: who registered a domain, when it expires, which registrar and nameservers it uses, whether transfers are locked, and whether DNSSEC is signed. Give it an - `edi\_parse`: Reads a raw ASC X12 interchange and returns it as JSON: delimiters taken from the ISA header, the ISA/GS/ST envelope decoded, every segment split into named elements, and a document-specific summary - purchase order lines for an 850, the HL shipment hierarchy and SSCCs for an 856, invoice totals for - `edi\_validate`: Runs the structural checks a trading partner runs before rejecting a file: control numbers matching between the ISA/IEA, GS/GE and ST/SE header and trailer pairs, declared counts matching actual counts, and - for an 856 - the HL hierarchy. HL faults are the usual cause of ASN rejections and chargeba - `edi\_build`: Compiles structured JSON into standards-valid X12. The parts that get documents rejected are exactly the parts a language model cannot hold in its head: the 856 hierarchy needs sequential HL IDs where every level names its parent's ID, and on a multi-carton, multi-SKU shipment that bookkeeping goes - `tool\_search`: Searches every tool by name, summary, description and keywords, and returns the closest matches with their endpoints and parameters. Use this instead of loading the whole catalogue: describe the job \("check whether a shipment is late", "fix broken JSON", "validate a barcode check digit"\) and call wh - `tool\_describe`: Returns everything needed to call a tool correctly: its complete JSON Schema, every parameter with type and default, and examples known to work. Pair it with tool.search — search to find the name, describe to learn the shape, then call. This exists so the catalogue does not have to be loaded into co - `tool\_call`: Dispatches to any tool in the catalogue. Most clients cap how many tools they will hold at once — Cursor drops everything past roughly forty across all servers combined — so only a core set is listed by default. Everything else is reachable here. Find a name with tool.search, check its shape with to Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html