About Parseltongue MCP
Parseltongue MCP is an MCP server published by joaodunas in the Developer Tools category: mCP server: Parseltongue MCP.
The repository has 26 stars and 5 forks, with the last commit 4 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/joaodunas/parseltongue_mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Parseltongue MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 6 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Parseltongue MCP Server 🐍
A Model Context Protocol (MCP) server providing direct text encoding tools plus a consumer bridge for the current P4RS3LT0NGV3 transform catalog.
Features
🧬 P4RS3LT0NGV3 Consumer Bridge
- list_p4rs_transforms: Discover transforms from the local
P4RS3LT0NGV3/src/transformerstree. - apply_p4rs_transform: Apply any discovered P4RS transform by id or display name.
- decode_p4rs_transform: Decode/reverse any discovered reversible transform.
- Set
P4RS3LT0NGV3_PATHif the repo is not at~/git/P4RS3LT0NGV3.
🔤 Custom Spelling Alphabets
- encode_spelling_alphabet: Encode text with a custom ICAO-style A-Z alphabet JSON map.
- decode_spelling_alphabet: Decode spelling-alphabet text back to letters.
🔳 QR Codes & Barcodes
- generate_qr_code_svg and generate_qr_code_data_uri for QR code generation.
- generate_barcode_svg for Code 128, Code 39, and EAN-13 SVG generation.
📦 Basic Encodings (22 tools)
- Base64: Encode/decode Base64
- Base64URL: Encode/decode Base64 URL-safe format
- Base32: Encode/decode Base32
- Base58: Encode/decode Base58 (Bitcoin-style)
- Base62: Encode/decode Base62
- Base45: Encode/decode Base45
- ASCII85: Encode/decode ASCII85
- Hexadecimal: Encode/decode hex
- Binary: Encode/decode 8-bit binary
- URL Encoding: Percent encoding for URLs
- HTML Entities: Encode/decode HTML entities
🔐 Ciphers (8 tools)
- ROT13: Classic rotation cipher (encode/decode)
- Caesar Cipher: Custom shift cipher (encode/decode)
- Atbash: Reverse alphabet substitution (encode/decode)
- Morse Code: Encode/decode to Morse code
🎨 Unicode Transformations (6 tools)
- Zalgo Text: Glitch effect with combining marks
- Upside Down: Flip text using Unicode
- Bubble Text: Circle-enclosed letters (Ⓐⓑⓒ)
- Full Width: Vaporwave aesthetic (full width)
- Strikethrough: S̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶
- Underline: U̲n̲d̲e̲r̲l̲i̲n̲e̲d̲
🕵️ Steganography (3 tools)
- Zero-Width Encoding: Hide text using invisible Unicode characters (encode/decode)
- Invisible Ink: Hide messages within cover text
🔧 Utilities (2 tools)
- Reverse Text: Simple string reversal
- Pig Latin: Classic word game transformation
Installation
# Clone the repository
git clone <your-repo-url>
cd parseltongue_mcp
# Install dependencies using uv
uv sync
# Or using pip
pip install -e .
Usage
As an MCP Server
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"parseltongue": {
"command": "uv",
"args": [
"--directory",
"(Full path)/parseltongue_mcp",
"run",
"parseltongue-mcp"
]
}
}
}
Running Directly
# Using uv
uv run parseltongue-mcp
# Or with python
python main.py
Available Tools
Encoding Examples
# Base64
encode_base64(text="Hello World")
# Returns: "SGVsbG8gV29ybGQ="
# Base64URL (URL-safe)
encode_base64url(text="Hello World")
# Returns: "SGVsbG8gV29ybGQ="
# Base58 (Bitcoin-style)
encode_base58(text="Hello")
# Returns: "9Ajdvzr"
# Base62
encode_base62(text="Hello")
# Returns: "5TP3P3v"
# Base45
encode_base45(text="Hello")
# Returns: "JBSWY3DP"
# ASCII85
encode_ascii85(text="Hello")
# Returns: "87cURD]i"
# Morse Code
encode_morse(text="SOS")
# Returns: "... --- ..."
# Binary
encode_binary(text="Hi")
# Returns: "01001000 01101001"
# Hexadecimal
encode_hex(text="Hi")
# Returns: "4869"
# Zero-Width (Steganography)
encode_zero_width(text="secret")
# Returns invisible Unicode characters
Cipher Examples
# ROT13
encode_rot13(text="Hello World")
# Returns: "Uryyb Jbeyq"
# Caesar Cipher with custom shift
encode_caesar(text="Attack at dawn", shift=5)
# Returns: "Fyyfhp fy ifbs"
# Atbash
encode_atbash(text="SECRET")
# Returns: "HVXIVG"
Unicode Transformation Examples
# Zalgo Text
encode_zalgo(text="Chaos", intensity="high")
# Returns: C̴̢̛͇̽h̵͎̓a̸̰͊ö̶́̚s̸̰̈
# Upside Down
encode_upside_down(text="Hello")
# Returns: "olləH"
# Bubble Text
encode_bubble_text(text="Hello")
# Returns: "Ⓗⓔⓛⓛⓞ"
# Full Width
encode_fullwidth(text="Wave")
# Returns: "Wave"
# Strikethrough
encode_strikethrough(text="Cancelled")
# Returns: "C̶a̶n̶c̶e̶l̶l̶e̶d̶"
# Underline
encode_underline(text="Important")
# Returns: "I̲m̲p̲o̲r̲t̲a̲n̲t̲"
Tool Categories
All tools are exposed as MCP tools with detailed descriptions and type hints:
| Category | Count | Examples |
|---|---|---|
| Basic Encodings | 22 | Base64, Base58, Base62, Base45, ASCII85, Hex, Binary, URL |
| Ciphers | 8 | ROT13, Caesar, Atbash, Morse |
| Unicode Transformations | 6 | Zalgo, Upside Down, Bubble, Full Width, Strikethrough, Underline |
| Steganography | 3 | Zero-Width, Invisible Ink |
| Utilities | 2 | Reverse, Pig Latin |
| P4RS Bridge | 3 | List/apply/decode transforms from the P4RS3LT0NGV3 transformer tree |
| Spelling Alphabet | 2 | Encode/decode custom alphabets |
| Codes | 3 | Generate QR codes and barcodes |
Development
# Install development dependencies
uv sync
# Run the server in development mode
uv run python main.py
# Test with MCP inspector
npx @modelcontextprotocol/inspector uv run python main.py
Technical Details
- Framework: FastMCP (MCP Python SDK)
- Python Version: 3.12+
- Dependencies:
mcp[cli]>=1.16.0- MCP server frameworkhttpx>=0.28.1- HTTP client (for potential future features)qrcode[pil]>=8.0andpillow>=10.0.0- QR PNG/SVG generationpython-barcode>=0.15.1- Code 128, Code 39, and EAN-13 SVG generation
Credits
Inspired by P4RS3LT0NGV3.
License
Open source. See LICENSE file for details.
Contributing
Contributions welcome. Useful areas to expand:
- Native wrappers for high-use P4RS bridge transforms.
- QR/barcode image decoding parity with the browser app.
- More structured batch transform chains.
- Better diagnostics when the local P4RS checkout is stale relative to the hosted app.
Examples in Action
Hiding Messages
# Create invisible message
hidden = encode_zero_width(text="TOP SECRET")
visible = f"This is a normal message{hidden}"
# Looks like: "This is a normal message"
# But contains hidden text!
# Decode it
decode_zero_width(encoded_text=hidden)
# Returns: "TOP SECRET"
Text Styling
# Create stylized text for social media
normal = "AWESOME"
bubble = encode_bubble_text(text=normal) # ⒶⓌⒺⓈⓄⓂⒺ
wide = encode_fullwidth(text=normal) # AWESOME
zalgo = encode_zalgo(text=normal) # A̴W̸E̵S̶O̴M̵E̸
strike = encode_strikethrough(text=normal) # A̶W̶E̶S̶O̶M̶E̶
underline = encode_underline(text=normal) # A̲W̲E̲S̲O̲M̲E̲
upside = encode_upside_down(text=normal) # ƎWOSƎפ∀
Classic Ciphers
# Encode a message with Caesar cipher
message = "Meet at the park"
encoded = encode_caesar(text=message, shift=7)
# Returns: "Tlla ha aol whyr"
# Decode it
decode_caesar(text=encoded, shift=7)
# Returns: "Meet at the park"
Made with 🐍 and MCP
README fetched from the repository 6 days ago. The original is authoritative.