UnicodeKit
Server Details
Find Unicode characters by name, codepoint, or meaning, and get their HTML, CSS, and UTF codes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct retrieval pattern: single character details, curated collections, block character pagination, block enumeration, and search. No two tools overlap in purpose.
All names use snake_case with a clear verb_noun structure (get_*, list_*, search_*). The pattern is consistent and predictable across the set.
Five tools is well-scoped for a Unicode lookup server; each tool covers a necessary access path without redundancy.
Core read/search/list operations are covered, but there is no explicit tool to list available collections or fetch block metadata beyond counts. get_collection also exposes only one 'selected' set, making that area feel slightly narrow.
Available Tools
5 toolsget_characterLook up a Unicode characterBRead-onlyInspect
Everything about one character: what it is, its name, block, script, category, HTML, CSS, JavaScript, and UTF-8/UTF-16 codes, aliases, emoji and Han data, and related characters.
| Name | Required | Description | Default |
|---|---|---|---|
| character | Yes | U+2192, 2192, or the character itself (→) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds no further behavioral context such as rate limits, auth needs, or side effects; it only enumerates returned data fields.
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?
A single front-loaded sentence that efficiently lists the data categories. It is list-heavy but has no filler or redundant sentences.
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?
Because there is no output schema, the description usefully enumerates the kinds of data returned (name, block, script, encodings, etc.). Combined with complete parameter documentation and safety annotations, an agent has enough to invoke it correctly, though usage guidance is absent.
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 one parameter and 100% schema description coverage, the schema already documents accepted formats (U+2192, 2192, or the character itself). The description adds no additional meaning about the parameter.
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 resource (a Unicode character) and enumerates the fields returned, making the tool's scope clear. It is distinguishable from list/search siblings by the singular 'one character' framing, though it does not explicitly name alternatives.
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?
There is no guidance on when to use this tool versus search_characters or list_block_characters, nor any exclusions or prerequisites. Usage is only implied by the tool name and single-character scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_collectionGet a collectionCRead-onlyInspect
Hand-picked sets of characters people use most. Collections: selected (Selected characters).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | The collection's slug | selected |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context — no return shape, no pagination, no error behavior, and no note that a default collection is returned when no slug is supplied.
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?
It is short and free of padding, but the two fragments are not front-loaded around the tool's action — the reader learns what a collection is before learning what the tool returns.
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, no annotations beyond the read-only hint, and a vague purpose statement, the description leaves critical gaps: what a returned collection contains and how the default behaves. For a lookup tool this is underspecified.
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 100% and the single 'slug' parameter is fully documented with its default, so the schema carries the load. The description's mention of 'selected (Selected characters)' loosely maps to that default value but adds no format or enumeration detail. Baseline 3 applies.
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 never states a verb or what the tool actually does — it defines what a 'collection' is ('Hand-picked sets of characters people use most') rather than saying it retrieves one. It is a definitional restatement that does not distinguish get_collection from siblings like get_character or list_blocks.
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?
There is no indication of when to call this tool versus get_character, list_blocks, list_block_characters, or search_characters. The trailing list of collection slugs ('selected') hints at available values but provides no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_block_charactersList a block's charactersARead-onlyInspect
A Unicode block's characters in codepoint order, 200 at a time. Pass the returned cursor to get the next ones.
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | Block name, e.g. Box Drawing (see list_blocks) | |
| cursor | No | From the previous call, for the next characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the read-only nature is covered. The description adds genuinely useful pagination behavior (200 per page, cursor-driven continuation), but says nothing about error behavior for invalid block names or what happens at the end of a block.
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, front-loading what is returned (ordered block characters) before how to continue (cursor). Every clause earns its place with no filler.
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 two-param read-only list tool with no output schema, the ordering, page size, and continuation mechanism are all disclosed. Only the shape of a returned character entry is left unspecified, which is minor given the absent output schema.
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 100%, so both parameters are documented in the schema (block name example, cursor provenance). The description reinforces the cursor's continuance role but adds no syntax or format detail beyond what the schema already provides; baseline 3 applies.
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 (list) and resource (a Unicode block's characters) with ordering and batching scope. It is distinguishable from get_character (single char), list_blocks (blocks, not chars), and search_characters (query-driven), though it never names those siblings explicitly.
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?
Usage is only implied: the schema's block param points to list_blocks for naming, and the description explains how to continue with the cursor. No when-to-use vs. search_characters guidance or exclusions are stated in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_blocksList Unicode blocksARead-onlyInspect
Every Unicode block that has characters, in codepoint order, with its character count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral detail beyond that: the result is filtered to non-empty blocks, returned in codepoint order, and each entry carries a character count.
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?
A single sentence that front-loads the resource and adds the two facts that matter (ordering, character count). No filler, no restating of the title.
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 carries the burden of describing the return shape, and it does so reasonably: blocks, counts, codepoint ordering. Only pagination/size limits for a full enumeration are unaddressed, which is a minor gap for a zero-argument read.
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?
The tool takes zero parameters, so the baseline of 4 applies. There is no argument syntax to describe and the description correctly spends no words on inputs.
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?
Clear verb (list) plus specific resource (Unicode blocks) with extra scope: only blocks that contain characters, in codepoint order, with counts. An agent can tell this apart from list_block_characters and search_characters, though the description never names those siblings explicitly.
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?
No statement of when to use this versus the alternatives. Nothing says 'use this to discover block names before calling list_block_characters', and there are no prerequisites or exclusions given. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_charactersSearch Unicode charactersARead-onlyInspect
Find Unicode characters by name, alias, keyword, codepoint, the character itself, or meaning ("tick" finds ✓, "return key" finds ⏎). Best matches first.
| Name | Required | Description | Default |
|---|---|---|---|
| block | No | Only this Unicode block, e.g. Arrows | |
| emoji | No | Only emoji (true) or only non-emoji (false) | |
| limit | No | ||
| query | Yes | What to look for: a name, a description, a codepoint like U+2192, or a character | |
| script | No | Only this script, by name or ISO code, e.g. Greek | |
| category | No | General_Category: S for symbols, Sm for math symbols, L for letters… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. Beyond that, the description usefully discloses that results are relevance-ranked ('Best matches first') and that matching is semantic as well as literal, which an agent would not infer from the schema alone. It doesn't mention the result cap (limit max 50) or output shape, but the added ranking behavior is real value over 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?
A single tight sentence listing the match dimensions plus a short ordering clause – every element earns its place. The most important information (what you can search by) is front-loaded, and the parenthetical examples are compact rather than decorative.
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 6-parameter search tool with no output schema, the description covers the search surface and result ordering well. It stops short of describing the return shape (e.g. characters with codepoints/names) or how multiple filters compose, which leaves a modest gap given there is no output schema to fall back on.
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 83%, so the baseline is 3. The description earns above baseline because it expands the query semantics beyond the schema's 'name, description, codepoint, or character' to include aliases, keywords, and meaning, with worked examples that clarify the fuzzy matching behavior. The filter parameters are left to the schema, which documents them adequately.
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+resource (find Unicode characters) and enumerates the match dimensions: name, alias, keyword, codepoint, the character itself, and meaning. The concrete examples ('tick' finds ✓, 'return key' finds ⏎) make the fuzzy-match behavior unmistakable. It never names the sibling get_character or explains how it differs from a direct lookup, so it falls short of full sibling differentiation.
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?
Usage is only implied by the verb 'find' – an agent can infer this is the discovery tool and get_character is the direct lookup, but nothing states when to prefer one over the other. There is also no guidance on how the filter parameters (block, script, category, emoji) combine or interact with the query. Adequate but with clear gaps.
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.
5 tool updates
- First observed
get_character - First observed
get_collection - First observed
list_block_characters - First observed
list_blocks - First observed
search_characters
Related MCP Connectors
Search and fetch SVG icons from 250,000+ icons across 200+ open-source icon sets.
Find IANA ports, MIME types, HTTP codes/fields, URI schemes, PENs, BCP 47 tags, RFCs, any registry.
Count occurrences of any character in your text instantly. Specify the character and get precise c…
Search 161,000+ free icons; get SVG (single/bulk), PNG, related icons, webfont classes. No API key.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides tools to inspect Unicode characters, escape/unescape strings in various formats (JS, HTML, URL), all offline and keyless.54 npmMIT
- AlicenseNot gradedqualityBmaintenanceOffers emoji lookup and search tools, allowing users to find emoji characters by shortcode or keyword, and reverse lookup from emoji to name, all offline without API keys.23 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables transforming text with 23 Unicode styles and creating ASCII art banners with 322+ fonts, deployed globally on Cloudflare Workers.6MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to over 200,000 open-source vector icons from more than 200 icon sets via the Iconify API. It enables users to browse, search, and retrieve specific icon data along with usage examples for popular web frameworks like React, Vue, and Tailwind CSS.490 npm19GPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.