TextToolkit
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TextToolkit convert 'hello world' to camelCase"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Transform, format, and analyze text without leaving your AI assistant workflow.
Available Tools
Tool | Description |
case_to_camel | Convert text to camelCase |
case_to_pascal | Convert text to PascalCase |
case_to_snake | Convert text to snake_case |
case_to_kebab | Convert text to kebab-case |
case_to_constant | Convert text to CONSTANT_CASE |
case_to_dot | Convert text to dot.case |
case_to_no | Convert text to no case |
case_to_pascal_snake | Convert text to Pascal_Snake_Case |
case_to_path | Convert text to path/case |
case_to_sentence | Convert text to Sentence case |
case_to_train | Convert text to Train-Case |
case_to_capital | Convert text to Capital Case |
encode_base64 | Encode text to Base64 |
decode_base64 | Decode Base64 to text |
encode_url | Encode text for URLs |
decode_url | Decode URL-encoded text |
encode_html | Encode HTML entities |
decode_html | Decode HTML entities |
format_json | Format and beautify JSON |
format_xml | Format and beautify XML |
format_sql | Format and beautify SQL |
format_html | Format and beautify HTML |
count_characters | Count characters in text |
count_words | Count words in text |
count_lines | Count lines in text |
analyze_readability | Calculate readability metrics |
string_trim | Trim whitespace from text |
string_substring | Extract a substring |
string_replace | Replace text |
string_split | Split text into an array |
string_join | Join an array into text |
generate_uuid | Generate a UUID |
validate_uuid | Validate a UUID |
generate_md5 | Generate MD5 hash |
generate_sha1 | Generate SHA-1 hash |
generate_sha256 | Generate SHA-256 hash |
generate_sha512 | Generate SHA-512 hash |
generate_hmac | Generate HMAC hash |
generate_lorem_ipsum | Generate lorem ipsum text |
regex_test | Test a regex pattern against text |
regex_replace | Replace text using a regex pattern |
regex_extract | Extract matches using a regex pattern |
regex_split | Split text using a regex pattern |
Related MCP server: agent-utils-mcp
π Features
π Case Transformations
Convert text between camelCase, PascalCase, snake_case, kebab-case
Support for CONSTANT_CASE, dot.case, no case, Pascal_Snake_Case
Additional formats: path/case, Sentence case, Train-Case, Capital Case
Customizable with delimiter and locale options
π String Encoding/Decoding
Base64 encoding and decoding
URL encoding and decoding
HTML entity encoding and decoding
Secure and reliable conversions
π Formatting and Beautification
JSON formatting with customizable indentation
XML formatting and pretty-printing
SQL query formatting and standardization
HTML code beautification
π Text Analysis
Character counting (with and without spaces)
Word counting with accurate tokenization
Line counting for multi-line text
Readability scoring (Flesch-Kincaid, etc.)
βοΈ String Manipulation
Trim whitespace (start, end, or both)
Extract substrings with precise control
Replace text with powerful options
Split text into arrays and join arrays into text
π UUID/GUID Generation
Generate UUIDs (v1, v4, v5, or nil)
Validate existing UUIDs
Customizable options for all UUID versions
π Hash Generation
MD5 hash generation
SHA-1, SHA-256, and SHA-512 hashing
HMAC hash generation with custom keys
Secure cryptographic functions
π Lorem Ipsum Generation
Generate placeholder text
Customizable length and format
Control paragraph and sentence structure
π Regex Pattern Testing
Test regex patterns against text
Replace text using regex patterns
Extract matches using regex patterns
Split text using regex patterns
π» Installation
Prerequisites
Node.js 16.x or higher - The TextToolkit MCP server requires Node.js 16+ to run properly.
Setup
To run the TextToolkit MCP server using Node.js npx, use the following command:
npx -y @cicatriz/text-toolkit@latestClient-Specific Installation
Cursor
To add this server to Cursor IDE:
Go to Cursor Settings > MCP
Click + Add new Global MCP Server
Add the following configuration to your global
.cursor/mcp.jsonfile:
{
"mcpServers": {
"text-toolkit": {
"command": "npx",
"args": [
"-y",
"@cicatriz/text-toolkit"
]
}
}
}See the Cursor documentation for more details.
Windsurf
To set up MCP with Cascade, navigate to Windsurf - Settings > Advanced Settings or Command Palette > Open Windsurf Settings Page.
Scroll down to the Cascade section and add the TextToolkit MCP server directly in mcp_config.json:
{
"mcpServers": {
"text-toolkit": {
"command": "npx",
"args": [
"-y",
"@cicatriz/text-toolkit"
]
}
}
}Cline
Add the following JSON manually to your cline_mcp_settings.json via Cline MCP Server setting:
{
"mcpServers": {
"text-toolkit": {
"command": "npx",
"args": [
"-y",
"@cicatriz/text-toolkit"
]
}
}
}Roo Code
Access the MCP settings by clicking Edit MCP Settings in Roo Code settings or using the Roo Code: Open MCP Config command in VS Code's command palette:
{
"mcpServers": {
"text-toolkit": {
"command": "npx",
"args": [
"-y",
"@cicatriz/text-toolkit"
]
}
}
}Claude
Add the following to your claude_desktop_config.json file:
{
"mcpServers": {
"text-toolkit": {
"command": "npx",
"args": [
"-y",
"@cicatriz/text-toolkit"
]
}
}
}See the Claude Desktop documentation for more details.
CLI
You can also run it as CLI by running the following command:
npx -y @cicatriz/text-toolkit@latestAlternative Installation Methods
Install from npm
# Install globally from npm
npm install -g @cicatriz/text-toolkit
# Run the server
text-toolkitManual Installation
# Clone the repository
git clone https://github.com/Cicatriiz/text-toolkit.git
cd text-toolkit
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
node dist/index.js㪠Usage
Command Line
# Start in stdio mode (default)
text-toolkit
# Start in SSE mode on a specific port
text-toolkit --sse --port=8000
# Display version
text-toolkit --versionTesting with MCP Inspector
You can test the TextToolkit MCP server using the MCP Inspector:
# Install the MCP Inspector
npm install -g @modelcontextprotocol/inspector
# Run the inspector against your server
mcp-inspector @cicatriz/text-toolkitExamples
The repository includes example scripts demonstrating how to use the TextToolkit MCP server:
# Run the case transformation example
node examples/case-transform-example.jsThis example demonstrates how to:
Connect to the TextToolkit MCP server
List available tools
Transform text to different cases
Use custom options for transformations
π§ Available Tools
1. case_to_camel
Converts text to camelCase.
Parameters:
text: The text to transformdelimiter(optional): The character to use between wordslocale(optional): Locale for case conversionmergeAmbiguousCharacters(optional): Whether to merge ambiguous characters
Example:
{
"text": "hello world test"
}Response:
{
"result": "helloWorldTest"
}2. case_to_pascal
Converts text to PascalCase.
Parameters:
text: The text to transformdelimiter(optional): The character to use between wordslocale(optional): Locale for case conversionmergeAmbiguousCharacters(optional): Whether to merge ambiguous characters
Example:
{
"text": "hello world test"
}Response:
{
"result": "HelloWorldTest"
}3. encode_base64
Encodes text to Base64.
Parameters:
text: The text to encode
Example:
{
"text": "hello world"
}Response:
{
"result": "aGVsbG8gd29ybGQ="
}4. decode_base64
Decodes Base64 to text.
Parameters:
text: The Base64 string to decode
Example:
{
"text": "aGVsbG8gd29ybGQ="
}Response:
{
"result": "hello world"
}5. format_json
Formats and beautifies JSON.
Parameters:
text: The JSON text to formatindent_size(optional): Number of spaces for indentation (1-8). Defaults to 2.
Example:
{
"text": "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}",
"indent_size": 4
}Response:
{
"result": "{\n \"name\": \"John\",\n \"age\": 30,\n \"city\": \"New York\"\n}"
}6. count_characters
Counts characters in text.
Parameters:
text: The text to analyze
Example:
{
"text": "hello world"
}Response:
{
"total_characters": 11,
"characters_without_spaces": 10
}7. string_replace
Replaces text.
Parameters:
text: The text to perform replacements onsearch: The string to search forreplace: The string to replace withreplace_all(optional): Whether to replace all occurrences. Defaults to true.
Example:
{
"text": "hello world",
"search": "world",
"replace": "universe"
}Response:
{
"result": "hello universe"
}8. generate_uuid
Generates a UUID.
Parameters:
version(optional): UUID version to generate (v1, v4, v5, nil). Defaults to v4.namespace(optional): Namespace for v5 UUID (required for v5)name(optional): Name for v5 UUID (required for v5)uppercase(optional): Whether to return the UUID in uppercase. Defaults to false.
Example:
{
"version": "v4"
}Response:
{
"uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}9. generate_lorem_ipsum
Generates lorem ipsum text.
Parameters:
count(optional): Number of units to generate. Defaults to 5.units(optional): Type of units to generate (words, sentences, paragraphs). Defaults to sentences.paragraphLowerBound(optional): Minimum sentences per paragraph. Defaults to 3.paragraphUpperBound(optional): Maximum sentences per paragraph. Defaults to 7.sentenceLowerBound(optional): Minimum words per sentence. Defaults to 5.sentenceUpperBound(optional): Maximum words per sentence. Defaults to 15.format(optional): Output format (plain, html). Defaults to plain.
Example:
{
"count": 2,
"units": "sentences"
}Response:
{
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut hendrerit ipsum in nulla euismod, vel ultrices nisi tincidunt."
}10. regex_test
Tests a regex pattern against text.
Parameters:
text: The text to test against the patternpattern: The regex pattern to testflags(optional): Regex flags (e.g., 'g', 'i', 'gi'). Defaults to 'g'.
Example:
{
"text": "hello world",
"pattern": "\\w+",
"flags": "g"
}Response:
{
"matches": ["hello", "world"],
"match_count": 2,
"is_match": true
}π¬ Example Queries in Claude Desktop
"Convert 'hello world' to camelCase"
"Encode 'hello world' to Base64"
"Format this JSON: {"name":"John","age":30}"
"Count the characters in 'hello world'"
"Replace 'world' with 'universe' in 'hello world'"
"Generate a UUID"
"Generate 2 sentences of lorem ipsum"
"Test if 'hello world' matches the regex pattern '\w+'"
"Convert 'Hello World' to snake_case"
"Decode this Base64 string: aGVsbG8gd29ybGQ="
π» Technical Details
Architecture
TextToolkit is built using the Model Context Protocol (MCP) specification, which allows it to integrate seamlessly with Claude Desktop and other MCP-compatible clients. The server is implemented in TypeScript and uses the following architecture:
Core Services: Implements text transformation, encoding/decoding, and formatting
MCP Server: Handles JSON-RPC requests from clients
Utility Functions: Provides helper functions for text operations
Testing Framework: Includes comprehensive test scripts for verifying functionality
Dependencies
change-case - For case transformation operations
crypto-js - For hash generation
js-beautify - For code formatting and beautification
uuid - For UUID generation and validation
lorem-ipsum - For placeholder text generation
@modelcontextprotocol/sdk - For MCP server implementation
Requirements
Node.js 16.x or higher
npm 7.x or higher
π Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
π Testing
TextToolkit includes comprehensive test scripts that can be used to verify the functionality of the MCP server. The test scripts can be used to test both stdio and SSE modes.
Running Tests
# Test stdio mode
node test-comprehensive.js
# Test SSE mode
node test-sse-comprehensive.jsπ Privacy & Security
TextToolkit processes all data locally and does not send any information to external servers. Your text data and queries remain private on your device.
π License
MIT
π¨βπ» Author
Cicatriz
Available Tools
43 toolsanalyze_readabilityC
Calculate readability metrics
Inputs: text (required).
case_to_camelB
Convert text to camelCase
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_capitalB
Convert text to Capital Case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_constantB
Convert text to CONSTANT_CASE
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_dotC
Convert text to dot.case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_kebabC
Convert text to kebab-case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_noC
Convert text to no case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_pascalB
Convert text to PascalCase
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_pascal_snakeB
Convert text to Pascal_Snake_Case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_pathC
Convert text to path/case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_sentenceB
Convert text to Sentence case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_snakeC
Convert text to snake_case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
case_to_trainC
Convert text to Train-Case
Inputs: text (required), delimiter, locale, mergeAmbiguousCharacters.
count_charactersC
Count characters in text
Inputs: text (required).
count_linesB
Count lines in text
Inputs: text (required).
count_wordsC
Count words in text
Inputs: text (required).
decode_base64B
Decode Base64 to text
Inputs: text (required).
decode_htmlC
Decode HTML entities
Inputs: text (required).
decode_urlB
Decode URL-encoded text
Inputs: text (required).
encode_base64B
Encode text to Base64
Inputs: text (required).
encode_htmlC
Encode HTML entities
Inputs: text (required).
encode_urlA
Encode text for URLs
Inputs: text (required).
format_htmlC
Format and beautify HTML
Inputs: text (required), indent_size.
format_jsonC
Format and beautify JSON
Inputs: text (required), indent_size.
format_sqlB
Format and beautify SQL
Inputs: text (required), indent_size.
format_xmlC
Format and beautify XML
Inputs: text (required), indent_size.
generate_hmacA
Generate HMAC hash
Inputs: text (required), key (required), algorithm.
generate_lorem_ipsumC
Generate lorem ipsum text
Inputs: count, units, paragraphLowerBound, paragraphUpperBound, +3 more.
generate_md5C
Generate MD5 hash
Inputs: text (required).
generate_sha1B
Generate SHA-1 hash
Inputs: text (required).
generate_sha256B
Generate SHA-256 hash
Inputs: text (required).
generate_sha512C
Generate SHA-512 hash
Inputs: text (required).
generate_uuidC
Generate a UUID
Inputs: version, namespace, name, uppercase.
regex_extractB
Extract matches using a regex pattern
Inputs: text (required), pattern (required), flags.
regex_replaceB
Replace text using a regex pattern
Inputs: text (required), pattern (required), replacement (required), flags.
regex_splitB
Split text using a regex pattern
Inputs: text (required), pattern (required), flags.
regex_testB
Test a regex pattern against text
Inputs: text (required), pattern (required), flags.
string_joinC
Join an array into text
Inputs: parts (required), delimiter.
string_replaceC
Replace text
Inputs: text (required), search (required), replace (required), replace_all.
string_splitB
Split text into an array
Inputs: text (required), delimiter, limit.
string_substringC
Extract a substring
Inputs: text (required), start, end.
string_trimB
Trim whitespace from text
Inputs: text (required), trim_type.
validate_uuidA
Validate a UUID
Inputs: uuid (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 43 tools
Each tool has a clearly distinct purpose: case conversions target different formats, encoding/decoding are separate, regex tools cover distinct operations, etc. There is no ambiguity between them.
Names follow predictable patterns like case_to_* for case conversions, verb_noun for most others (count_, encode_, generate_), but there is a mix of verb-first (analyze_readability) and noun-first (regex_extract, string_join) patterns. Overall consistent but not perfectly uniform.
With 43 tools, the server is overloaded for a text utility toolkit. While each tool is justified, the sheer number exceeds typical MCP server scope, making navigation and selection harder than necessary.
The toolset covers a wide range of text operations: case conversion, encoding, formatting, regex, string manipulation, hashing, and validation. Minor gaps exist (e.g., no text diff, line sorting), but core workflows are well-covered.
Maintenance
Related MCP Connectors
Five text and JSON utilities. Paid execution: 0.01 USDC standard or 0.05 USDC priority on Base.
Text generation over MCP: prose, emails, blog outlines, SQL, humanizing, text diffs, fake data.
Remote MCP for JSON repair, hashing, formatting, IDs, dates, units, and other small tools.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA text processing workbench and MCP server that provides 22 tools for cleaning, transforming, and extracting data from text. It enables AI assistants to perform complex operations like regex extraction, log normalization, and encoding through a unified interface.80 npm39 PyPI4MIT
- FlicenseAqualityCmaintenanceSwiss-army-knife utility MCP server for AI agents. 18 tools for JSON validation/formatting, base64 encode/decode, hash generation, UUID generation, URL parsing, regex testing, markdownβHTML conversion, text stats, slug generation, datetime conversion, cron parsing, text diffing, CSVβJSON conversion, and JWT decoding. Zero API Key required185-
- AlicenseNot gradedqualityDmaintenanceProvides a suite of regex and text processing tools for AI agents, including pattern testing, extraction, and replacement with capture group support. It also enables various text transformations like case conversion, line sorting, and deduplication through the Model Context Protocol.38 npmMIT
- AlicenseNot gradedqualityDmaintenanceModular MCP server providing text preprocessing and NLP tools for AI agent ecosystems.MIT