jibberish-to-hebrew-mcp 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: jibberish-to-hebrew-mcp
3
+ Version: 0.1.0
4
+ Summary: MCP server: convert QWERTY gibberish to Hebrew and vice versa by keyboard layout mapping
5
+ Requires-Python: >=3.10
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: mcp>=1.0.0
8
+
9
+ # jibberish-to-hebrew-mcp
10
+
11
+ MCP server that converts text between “gibberish” English and Hebrew by swapping characters according to the **QWERTY ↔ Hebrew (SI 1452)** keyboard layout.
12
+
13
+ ## Tools
14
+
15
+ - **qwerty_to_hebrew_text** — Converts English-looking gibberish (typed with Hebrew in mind but keyboard set to English) to Hebrew.
16
+ - **hebrew_to_qwerty_text** — Converts Hebrew text to the equivalent QWERTY key sequence.
17
+
18
+ ## Install and run
19
+
20
+ ```bash
21
+ pip install jibberish-to-hebrew-mcp
22
+ jibberish-to-hebrew-mcp
23
+ ```
24
+
25
+ Or with [uv](https://github.com/astral-sh/uv):
26
+
27
+ ```bash
28
+ uvx jibberish-to-hebrew-mcp
29
+ ```
30
+
31
+ ## Cursor / Claude config
32
+
33
+ Add to your MCP config (e.g. `~/.cursor/mcp.json`):
34
+
35
+ ```json
36
+ {
37
+ "mcpServers": {
38
+ "jibberish-to-hebrew": {
39
+ "command": "jibberish-to-hebrew-mcp",
40
+ "args": []
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ If the command is not on PATH, use the full path to the script or `uvx jibberish-to-hebrew-mcp` (with `"command": "uvx"`, `"args": ["jibberish-to-hebrew-mcp"]`).
47
+
48
+ ---
49
+
50
+ ### MCP Registry (optional)
51
+
52
+ To publish this server to the [official MCP Registry](https://modelcontextprotocol.io/registry/quickstart), the README must contain the server name below (used for ownership verification). <!-- mcp-name: io.github.Maor-Ar/jibberish-to-hebrew -->
@@ -0,0 +1,7 @@
1
+ keyboard_map.py,sha256=iZMoneN7fkvdVW4k-GBIKny9yWCGHuzssG2DkBkqLqQ,2261
2
+ server.py,sha256=o6PSkvwZgN3PoZVUeOKIw-cyo-qLyAqyQl6YPT-5boo,1289
3
+ jibberish_to_hebrew_mcp-0.1.0.dist-info/METADATA,sha256=vUdF-potoN4OfbZXcYPVDscUnDyD0qDea9tmiq-uKeo,1575
4
+ jibberish_to_hebrew_mcp-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
5
+ jibberish_to_hebrew_mcp-0.1.0.dist-info/entry_points.txt,sha256=t_WqCXJYSd8JMKvToGRJ2FEAyUlMwrj24-UAU7JTUmc,56
6
+ jibberish_to_hebrew_mcp-0.1.0.dist-info/top_level.txt,sha256=kvjGBdqXCWLpU8j4lP32n2s6FuL78PGrNUVqeWyT3VY,20
7
+ jibberish_to_hebrew_mcp-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ jibberish-to-hebrew-mcp = server:main
@@ -0,0 +1,2 @@
1
+ keyboard_map
2
+ server
keyboard_map.py ADDED
@@ -0,0 +1,72 @@
1
+ # QWERTY (US) <-> Hebrew (SI 1452) keyboard layout mapping
2
+ # Same physical key produces different character depending on layout.
3
+
4
+ # When user intended to type Hebrew but keyboard was set to English, they get QWERTY
5
+ # characters that look like gibberish. We map those QWERTY keys -> Hebrew (SI 1452).
6
+ QWERTY_TO_HEBREW = {
7
+ "q": "/",
8
+ "w": "'",
9
+ "e": "ק",
10
+ "r": "ר",
11
+ "t": "א",
12
+ "y": "ט",
13
+ "u": "ו",
14
+ "i": "ן", # final nun (same key as I)
15
+ "o": "ם", # final mem (same key as O)
16
+ "p": "פ",
17
+ "a": "ש",
18
+ "s": "ד",
19
+ "d": "ג",
20
+ "f": "כ",
21
+ "g": "ע",
22
+ "h": "י",
23
+ "j": "ח",
24
+ "k": "ל",
25
+ "l": "ך", # final kaf
26
+ "z": "ז",
27
+ "x": "ס",
28
+ "c": "ב",
29
+ "v": "ה",
30
+ "b": "נ",
31
+ "n": "מ",
32
+ "m": "צ",
33
+ ";": "ף", # final pe
34
+ "'": ",",
35
+ ",": "ת",
36
+ ".": "ץ", # final tsadi
37
+ "/": ".",
38
+ "[": "[",
39
+ "]": "]",
40
+ "\\": "\\",
41
+ "`": "`",
42
+ "-": "-",
43
+ "=": "=",
44
+ }
45
+
46
+ # Reverse: Hebrew -> QWERTY (for decoding Hebrew typed with Hebrew layout
47
+ # but displayed/captured as if it were English, or for "Hebrew gibberish" -> English)
48
+ HEBREW_TO_QWERTY = {v: k for k, v in QWERTY_TO_HEBREW.items()}
49
+
50
+ # Add common alternate forms so both directions work well
51
+ # (e.g. regular נ/מ vs final ן/ם - same key on keyboard)
52
+ HEBREW_TO_QWERTY["נ"] = "b"
53
+ HEBREW_TO_QWERTY["מ"] = "n"
54
+ HEBREW_TO_QWERTY["כ"] = "f"
55
+ HEBREW_TO_QWERTY["ך"] = "l" # already from ך->l
56
+ HEBREW_TO_QWERTY["פ"] = "p"
57
+ HEBREW_TO_QWERTY["ף"] = ";" # already from ף->;
58
+ HEBREW_TO_QWERTY["צ"] = "m"
59
+ HEBREW_TO_QWERTY["ץ"] = "." # already from ץ->.
60
+ # Comma and period: we have ',' -> ת and '.' -> ץ. So ת -> ',' and . (period) -> '/'
61
+ HEBREW_TO_QWERTY["."] = "/" # period key
62
+ # Don't overwrite ת (already maps to ','). Good.
63
+
64
+
65
+ def qwerty_to_hebrew(text: str) -> str:
66
+ """Convert text that looks like English gibberish (typed on Hebrew layout) to Hebrew."""
67
+ return "".join(QWERTY_TO_HEBREW.get(c.lower(), c) for c in text)
68
+
69
+
70
+ def hebrew_to_qwerty(text: str) -> str:
71
+ """Convert Hebrew (or Hebrew-looking) text to QWERTY as if typed on Hebrew keyboard."""
72
+ return "".join(HEBREW_TO_QWERTY.get(c, c) for c in text)
server.py ADDED
@@ -0,0 +1,42 @@
1
+ """
2
+ MCP server: Jibberish <-> Hebrew keyboard layout converter.
3
+ Converts text that looks like English gibberish (typed with Hebrew layout) to Hebrew,
4
+ and Hebrew text to the equivalent QWERTY key sequence.
5
+ """
6
+ from mcp.server.fastmcp import FastMCP
7
+ from keyboard_map import qwerty_to_hebrew, hebrew_to_qwerty
8
+
9
+ mcp = FastMCP(
10
+ "jibberish-to-hebrew",
11
+ json_response=True,
12
+ )
13
+
14
+
15
+ @mcp.tool()
16
+ def qwerty_to_hebrew_text(text: str) -> dict:
17
+ """
18
+ Convert English-looking gibberish to Hebrew by swapping each character
19
+ from QWERTY keyboard layout to its counterpart on the Hebrew (SI 1452) layout.
20
+ Use when someone typed Hebrew but their keyboard was set to English.
21
+ """
22
+ result = qwerty_to_hebrew(text)
23
+ return {"original": text, "hebrew": result}
24
+
25
+
26
+ @mcp.tool()
27
+ def hebrew_to_qwerty_text(text: str) -> dict:
28
+ """
29
+ Convert Hebrew text to the equivalent QWERTY key sequence by swapping each
30
+ Hebrew character to its counterpart on the US QWERTY keyboard layout.
31
+ Use when someone typed English but their keyboard was set to Hebrew.
32
+ """
33
+ result = hebrew_to_qwerty(text)
34
+ return {"original": text, "qwerty": result}
35
+
36
+
37
+ def main() -> None:
38
+ mcp.run(transport="stdio")
39
+
40
+
41
+ if __name__ == "__main__":
42
+ main()