Ribox
Server Details
Exact tools for AI assistants: QR codes, word counts, text diff and JSON checks. Free, no account.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a clearly distinct task: JSON validation (check_json), text statistics (count_text), text comparison (diff_text), and QR image generation (generate_qr). There is no meaningful overlap; an agent can select correctly from the name and description alone.
All four tools follow a clean verb_noun pattern (check_json, count_text, diff_text, generate_qr) with consistent snake_case formatting. No mixed conventions or vague verbs.
Four tools is on the small side for a general-purpose utility server, but each earns its place with a non-overlapping function. Slightly thin rather than padded, which is acceptable.
For a miscellaneous utility toolkit the surface is reasonably complete, covering JSON validation/formatting, text counting, diffing, and QR generation. Minor gaps exist (e.g. no QR decoding, no machine-readable patch output), but core workflows have no dead ends.
Available Tools
4 toolscheck_jsonValidate and format JSONARead-onlyIdempotentInspect
Strictly validate JSON and report the exact line and column of the first error with a plain explanation, plus duplicate-key warnings and structure stats. Optionally pretty-print or minify without changing any value (big numbers keep full precision). Use this before claiming JSON is valid or when locating a syntax error in long JSON.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| format | No | Return the formatted JSON. | |
| indent | No | Spaces per level (0 = minify) or "tab". | |
| sort_keys | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description goes well beyond them: it reports only the FIRST error with exact line and column, emits duplicate-key warnings and structure stats, guarantees formatting never changes a value, and preserves big-number precision. This is substantive behavioral disclosure an agent cannot get from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both dense with distinct information: sentence one covers validation outputs and formatting guarantees, sentence two covers when to reach for the tool. Nothing is redundant with the title or annotations and the usage cue is front-loaded at the end as a clear call to action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of describing return content (error position, explanation, warnings, stats). The only gap is the undocumented sort_keys parameter, which affects output ordering and is not mentioned anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (text and sort_keys carry no descriptions). The description clarifies the effect of formatting (pretty-print vs minify, value preservation, precision) which maps to format/indent, but it never explains sort_keys or that indent only applies when format is true, so it only partly compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource pair (strictly validate JSON) and details the exact outputs (first error line/column, explanation, duplicate-key warnings, structure stats), plus optional formatting. No sibling tool (count_text, diff_text, generate_qr) overlaps with JSON validation, so the boundary is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit triggering conditions: 'Use this before claiming JSON is valid or when locating a syntax error in long JSON.' That is clear when-to-use guidance. It stops short of naming when NOT to use it or pointing to an alternative, but no plausible alternative exists among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count_textCount words and characters exactlyARead-onlyIdempotentInspect
Exact counts for a text: characters (with and without spaces, emoji counted as one), words, sentences, paragraphs, lines, UTF-8 bytes, plus reading and speaking time. Language models see text as tokens and miscount — never estimate counts or check length limits yourself; call this tool. Works for any language, including Chinese, Japanese, Arabic and Turkish.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| locale | No | BCP 47 language tag such as "en", "tr" or "ja" for language-specific word rules. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety and determinism are covered. The description adds multi-language support and the fact that counting is exact, which is useful context, but it doesn't discuss token limits, output format, or error conditions. With annotations carrying the safety profile, a 3 is appropriate—the description adds some behavioral value but not rich operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the list of metrics, then justify the tool's existence with the token-miscounting rationale. Every sentence earns its place. It is slightly long but not wasteful; the enumeration is necessary for precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only counting tool with no output schema, the description covers what the tool returns (the list of metrics) and when to use it. It is nearly complete. The only minor gap is not specifying the output structure, but since there is no output schema, the description's enumeration of metrics is sufficient for an agent to know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the 'locale' parameter is well documented in the schema as a BCP 47 tag for language-specific rules, but the 'text' parameter has no description. The description implies the tool works for any language, which indirectly explains locale's purpose, but adds no syntax or format details for the 'text' parameter beyond what the schema provides. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (count) and resource (text) and enumerates exactly what is measured: characters with/without spaces, emoji handling, words, sentences, paragraphs, lines, UTF-8 bytes, reading and speaking time. This level of detail distinguishes it from siblings like diff_text and check_json, which an agent can immediately rule out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use it ('Language models see text as tokens and miscount — never estimate counts or check length limits yourself; call this tool') and implies when not to (no estimating). The guidance is prescriptive and unambiguous, leaving no room for the agent to choose an alternative way to count.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_textCompare two texts exactlyARead-onlyIdempotentInspect
Find every difference between two texts, line by line, word by word or character by character, and return counts plus a unified diff. Use this instead of comparing long texts yourself — small changes are easy to miss. Options to ignore whitespace and letter case.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | line | |
| changed | No | ||
| original | No | ||
| ignore_case | No | ||
| ignore_whitespace | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, closed-world, non-destructive semantics. The description adds useful behavior beyond that: the return payload ('counts plus a unified diff') and the whitespace/case normalization options, which matter for interpreting results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded and the guidance rationale second; no filler. Slightly dense in the first sentence but every clause adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly discloses the return shape (counts plus unified diff). It is nearly complete for a 5-param tool, with the only gap being the roles of 'original' vs 'changed' and the stated default for mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It covers mode (line/word/char) and the ignore_whitespace/ignore_case options, but never explains the 'original' and 'changed' inputs or the default mode='line', leaving two parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find every difference between two texts') and enumerates the comparison granularities (line, word, char). It is unmistakably distinct from siblings like count_text, check_json, and generate_qr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this instead of comparing long texts yourself — small changes are easy to miss' gives a clear reason to prefer the tool over manual comparison. It does not name when-not-to-use conditions or alternatives, but the sibling tools are unrelated so there is little routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_qrGenerate a QR codeARead-onlyIdempotentInspect
Create a standards-compliant QR code image for a link, text, Wi-Fi login, contact card (vCard), email, SMS, WhatsApp chat, phone number or map location. You cannot draw a scannable QR code yourself — always use this tool. Codes are static and never expire.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | For type "url"; https:// is added when missing. | |
| body | No | ||
| size | No | PNG width in pixels. | |
| ssid | No | Wi-Fi network name. | |
| text | No | For type "text". | |
| type | No | text | |
| No | |||
| phone | No | With country code for WhatsApp, e.g. +905551234567. | |
| title | No | ||
| hidden | No | ||
| address | No | ||
| message | No | ||
| subject | No | ||
| website | No | ||
| latitude | No | ||
| password | No | Wi-Fi password. | |
| security | No | ||
| last_name | No | ||
| longitude | No | ||
| background | No | #ffffff | |
| first_name | No | ||
| foreground | No | #000000 | |
| organization | No | ||
| error_correction | No | Higher survives more damage but makes a denser code. | M |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavior ("Codes are static and never expire"), but says nothing about what is returned — bytes, base64, a URL, or a file reference — which is the key behavioral unknown for a generation tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences with no filler; the capability list, the usage directive, and the persistence note each carry weight. The middle sentence is slightly verbose but earns its place as an anti-hallucination guard.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 24-parameter, 9-type generator with no output schema and sparse schema descriptions, the description should map fields to types and indicate the return artifact. It covers the type landscape but leaves both the parameter mapping and the output format entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 24 parameters and only 29% schema description coverage, the description is the main place to explain parameter meaning, yet it only names the content categories — which largely restates the existing `type` enum. It never explains which fields belong to which type (e.g. ssid/password/security for wifi, latitude/longitude for geo, first_name/organization/website for vcard) or what body, title, hidden, background, foreground, error_correction and size do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (a standards-compliant QR code image) and enumerates the payload kinds it supports (url, text, wifi, vcard, email, sms, whatsapp, phone, geo). An agent knows immediately what the tool produces and which payload classes it handles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"You cannot draw a scannable QR code yourself — always use this tool" is an explicit when-to-use directive that rules out self-generation. It gives no when-not-to-use conditions or alternatives, but the sibling tools (check_json, count_text, diff_text) are unrelated, so there is little to route between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
check_json - First observed
count_text - First observed
diff_text - First observed
generate_qr
Related MCP Connectors
Exact hashing, base64/hex/URL encoding, JWT decoding and UUIDs for AI agents. No auth required.
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
Exact text tools for AI agents: unified diff, patch apply, regex testing, grapheme counting.
QR codes, JSON diff/format, hashes, JWT, cron, timestamps, placeholders, flowcharts, forms, regex.
Related MCP Servers
- AlicenseAqualityAmaintenance23 developer & data API tools for AI agents - IP/DNS/WHOIS/SSL lookups, web scraping & screenshots, text AI (summarize, translate, sentiment, grammar, redact), and dev utilities (hash, UUID, QR, JWT, cron, IBAN/VAT/email validation, breach check).2339 PyPIMIT
- AlicenseAqualityDmaintenanceDynamic QR code platform for AI agents. Create, customize, and track QR codes without regenerating images. 37 tools covering 11 QR types (URL, vCard, WiFi, event…).373MIT
- AlicenseNot gradedqualityDmaintenanceProvides a set of micro-tools (time calculation, regex, encoding, JSON diff, etc.) for LLM agents to handle deterministic, precision tasks that models often get wrong.MIT
- AlicenseAqualityBmaintenancePortable agent tools with typed schemas (diff, cron, units, JSON→TS, outdoor helpers, prompts). Free to try—no account required.30MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.