GlyphGuard
by glyphguard.mike-tusa.workers.dev · remote · no sign-in to list tools · v0.1.0 · published by dev.workers.mike-tusa.glyphguard
Find hidden Unicode (zero-width, bidi, tag payloads), homoglyphs and lookalike names in text.
3 tools: 3 only read.
Scanned Oct 22, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads3Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http glyphguard https://glyphguard.mike-tusa.workers.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
3 tools
Only reads 3Claude Code: allow
clean_textReturn the text with invisible characters, bidi controls, tag characters and control characters removed and unusual spaces turned into normal spaces.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Return the text with invisible characters, bidi controls, tag characters and control characters removed and unusual spaces turned into normal spaces. By default ZWJ/ZWNJ/VS16 are kept inside emoji sequences, between letters of joining scripts (Arabic, Persian) and after an Indic virama (keep_joiners=true); strict=true removes them everywhere. Optional: map lookalike letters to Latin (lookalikes) and apply NFKC normalisation (nfkc). Read-only. Same engine as GET /api/clean.
Annotations the server declares
- title: Clean hidden Unicode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
compare_namesCheck whether a name, username, domain label or brand looks the same as any of up to 50 protected names (for example "pаypal" with a Cyrillic а vs "paypal"), using a UTS #39-style …No findings
Why it is in this group
- The name "compare_names" says "compare": a word for reading.
Description, as the server wrote it Check whether a name, username, domain label or brand looks the same as any of up to 50 protected names (for example "pаypal" with a Cyrillic а vs "paypal"), using a UTS #39-style confusable skeleton (curated subset, case and accents ignored). Read-only. Same engine as GET /api/compare.
Annotations the server declares
- title: Compare names for lookalikes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
scan_textFind invisible characters, bidi controls (Trojan Source), hidden Unicode tag payloads (decoded), variation-selector runs, control characters, unusual spaces, mixed-script words and…No findings
Why it is in this group
- The description's first verb is "find": a word for reading.
Description, as the server wrote it Find invisible characters, bidi controls (Trojan Source), hidden Unicode tag payloads (decoded), variation-selector runs, control characters, unusual spaces, mixed-script words and lookalike letters. ZWJ/ZWNJ/VS16 in legitimate context (emoji sequences, Persian/Arabic joining, Indic virama) are reported as info joiner_in_context and do not raise risk; elsewhere they stay medium. Lone surrogates are flagged. Returns a risk level (none/low/medium/high), counts, and findings with UTF-16 offsets and code points. Read-only. Same engine as GET /api/scan.
Annotations the server declares
- title: Scan text for hidden Unicode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http glyphguard https://glyphguard.mike-tusa.workers.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__glyphguard__scan_text",
"mcp__glyphguard__clean_text",
"mcp__glyphguard__compare_names"
],
"ask": [],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as glyphguard. Review it before you use it.