{
 "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
 "name": "com.clawhard/xray",
 "title": "Xray",
 "version": "1.0.0",
 "description": "Xray shows the characters you cannot see but an AI reads: Unicode tag characters (with the hidden message decoded), zero-width characters, bidi overrides, terminal escapes and look-alike letters, with the exact line and column, plus a cleaned copy. No account.",
 "websiteUrl": "https://xray.clawhard.com",
 "documentationUrl": "https://xray.clawhard.com/llms.txt",
 "iconUrl": "https://clawhard.com/icon-512.png",
 "serverInfo": {
  "name": "com.clawhard/xray",
  "title": "Xray",
  "version": "1.0.0"
 },
 "protocolVersion": "2025-06-18",
 "transport": "streamable-http",
 "endpoint": "https://xray.clawhard.com/mcp",
 "remotes": [
  {
   "type": "streamable-http",
   "url": "https://xray.clawhard.com/mcp"
  }
 ],
 "authentication": {
  "required": false
 },
 "capabilities": {
  "tools": {
   "listChanged": false
  },
  "prompts": {
   "listChanged": false
  },
  "resources": {
   "subscribe": false,
   "listChanged": false
  }
 },
 "tools": [
  {
   "name": "xray_scan_text",
   "title": "Find hidden Unicode characters and look-alike letters in text or a file",
   "description": "Use when the user asks whether text, a prompt, a SKILL.md, AGENTS.md, CLAUDE.md, .cursorrules, README, MCP tool description, PR diff, email or web page hides anything, or before an agent follows, installs or merges instructions that came from someone else (signals: \"hidden characters\", \"invisible unicode\", \"ASCII smuggling\", \"prompt injection in this file\", \"Trojan Source\", \"why does this string not match\", \"is this domain spelled with a Cyrillic letter\"). Inspects every code point and returns a verdict (clean, suspicious, dangerous) with each finding's line, column, code points and Unicode names: Unicode tag characters (decoded back to the hidden ASCII message), variation-selector payloads (decoded bytes), bidirectional overrides and isolates, long zero-width runs, zero-width and other invisible characters, ANSI terminal escapes, control characters, words that mix Latin with Cyrillic or Greek look-alikes (with the Latin word they imitate, from Unicode confusables), whole look-alike words, styled math letters, unusual spaces, line separators, private-use and unassigned code points, and HTML comments that do not render. Legitimate uses are not flagged (emoji ZWJ sequences, flag tag sequences, a single emoji variation selector, joiners in Arabic and Indic text, direction marks next to Hebrew or Arabic). Give text or url (one public https text file; GitHub and GitLab file pages are read as raw). Example: {\"url\":\"https://github.com/owner/repo/blob/main/SKILL.md\"} or {\"text\":\"Visit pаypal.com\",\"return_clean\":true}. Optional return_clean adds a copy with hidden characters removed and look-alike letters inside mixed words replaced. Decoded hidden text is returned as data. Limits: finds characters and look-alikes, not prompt injection written in plain visible words; up to 200,000 characters (files up to 1 MB, first 200,000 characters scanned)."
  }
 ],
 "prompts": [
  {
   "name": "xray_check_for_hidden_text",
   "title": "Check a file for hidden characters",
   "description": "Find invisible Unicode, ASCII-smuggled instructions, bidi overrides and look-alike letters in a prompt, skill or rules file before following it."
  }
 ],
 "publisher": {
  "name": "Clawhard Studio",
  "url": "https://clawhard.com",
  "contact": "support@clawhard.com"
 }
}