文本转换工具

一个提供文本转换、格式化和分析功能的MCP服务器,可直接集成到开发工作流中。

  • by Cicatriiz
  • TypeScript
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Cicatriiz/text-toolkit

使用说明

TextToolkit MCP Server

A Text Transformation & Formatting MCP Server for the Cline Marketplace that provides developers with common text manipulation functions directly within their workflow.

在不离开AI助手工作流程的情况下转换、格式化和分析文本。

可用工具

工具 说明
case_to_calm 将文本转换为camelCase
case_to_pascal 将文本转换为PascalCase
case_to_snake 将文本转换为snake_case
case_to_kobb 将文本转换为烤肉串大小写
case_to_costant 将文本转换为constant_case
case_to_dot 将文本转换为dot.case
case_to_no 将文本转换为无大小写
case_to_pascal_snake 将文本转换为pascal_snake_case
case_to_path 将文本转换为path/case
case_to_ssentence 将文本转换为句子case
case_to_tain 将文本转换为train case
case_to_capital 将文本转换为大写
encode_base64 将文本编码为base64
decode_base64 将base64解码为文本
encode_url 对url的文本进行编码
decode_url 解码url编码文本
encode_html 对html实体进行编码
decode_html 解码html实体
format_json 格式化和美化json
format_xml 格式化和美化xml
format_sql 格式化和美化sql
format_html 格式化和美化html
count_characters 统计文本中的字符数
count_words 统计文本中的单词
count_lines 计数文本中的行
analyze_readability 计算可读性指标
string_trim 修剪文本中的空格
string_substring 提取子字符串
string_replace 替换文本
string_split 将文本拆分为数组
string_join 将数组连接成文本
generate_uid 生成uuid
validate_uuid 验证uuid
generate_md5 生成md5哈希
generate_sha1 生成SHA-1哈希
generate_sha256 生成SHA-256哈希
generate_sha512 生成SHA-512哈希
generate_hmac 生成hmac哈希
generate_lorem_ipsum。生成lorem-ipsum文本。
regex_test 根据文本测试正则表达式模式
regex_replace 使用正则表达式模式替换文本
regex_extract 使用正则表达式模式提取匹配项
regex_split 使用正则表达式模式拆分文本

🌟 特性

🔠 案例转换

  • 在camelCase、PasclCase、snake_case、烤肉串case之间转换文本
  • 支持CONSTANT_CASE、dot.CASE、无案例、Pascal_Snake_CASE
  • 附加格式:路径/案例、句子案例、训练案例、资本案例
  • 可通过分隔符和区域设置选项进行自定义

🔄 字符串编码/解码

  • Base64编码和解码
  • URL编码和解码
  • HTML实体编码和解码
  • 安全可靠的转换

📝 格式化和美化

  • JSON格式,可定制缩进
  • XML格式化和漂亮的打印
  • SQL查询格式和标准化
  • HTML代码美化

📊 文本分析

  • 字符计数(有空格和无空格)
  • 精确标记的字数统计
  • 多行文本的行计数
  • 可读性评分(Flesch-Kincaid等)

✂️ 字符串操作

  • 修剪空白(开始、结束或两者)
  • 精确控制提取子字符串
  • 用强大的选项替换文本
  • 将文本拆分为数组并将数组连接为文本

🆔 UUID/GUID生成

  • 生成UUID(v1、v4、v5或nil)
  • 验证现有UUID
  • 所有UUID版本的可定制选项

🔒 哈希生成

  • MD5哈希生成
  • SHA-1、SHA-256和SHA-512哈希
  • 使用自定义密钥生成HMAC哈希
  • 安全加密功能

📄 Lorem Ipsum一代

  • 生成占位符文本
  • 可定制的长度和格式
  • 控制段落和句子结构

🔍 正则表达式模式测试

  • 根据文本测试正则表达式模式
  • 使用正则表达式模式替换文本
  • 使用正则表达式模式提取匹配项
  • 使用正则表达式模式拆分文本

💻 安装

先决条件

  • Node.js 16.x或更高版本-TextToolkit MCP服务器需要Node.js 16+才能正常运行。

设置

要使用Node.js npx运行TextToolkit MCP服务器,请使用以下命令:

npx -y @cicatriz/text-toolkit@latest

客户端特定安装

光标

要将此服务器添加到Cursor IDE,请执行以下操作:

  1. 转到光标设置>MCP
  2. 单击+添加新的全局MCP服务器
  3. 将以下配置添加到全局 .cursor/mcp.json 文件:
{
  "mcpServers": {
    "text-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@cicatriz/text-toolkit"
      ]
    }
  }
}

请参阅 光标文档 了解更多详情。

帆板运动

要使用Cascade设置MCP,请导航到Windsurf-设置>高级设置或命令面板>打开Windsurf设置页面。

向下滚动到Cascade部分,并将TextToolkit MCP服务器直接添加到 mcp_config.json:

{
  "mcpServers": {
    "text-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@cicatriz/text-toolkit"
      ]
    }
  }
}

克莱恩

手动将以下JSON添加到您的 cline_mcp_settings.json 通过临床MCP服务器设置:

{
  "mcpServers": {
    "text-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@cicatriz/text-toolkit"
      ]
    }
  }
}

Roo代码

通过单击Roo Code设置中的Edit MCP settings或使用VS Code命令面板中的Roo Code:Open MCP Config命令来访问MCP设置:

{
  "mcpServers": {
    "text-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@cicatriz/text-toolkit"
      ]
    }
  }
}

克劳德

将以下内容添加到您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "text-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "@cicatriz/text-toolkit"
      ]
    }
  }
}

请参阅 Claude桌面文档 了解更多详情。

命令行界面

您还可以通过运行以下命令将其作为CLI运行:

npx -y @cicatriz/text-toolkit@latest

替代安装方法

从npm安装

# Install globally from npm
npm install -g @cicatriz/text-toolkit

# Run the server
text-toolkit

手动安装

# 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

💬 用法

命令行

# Start in stdio mode (default)
text-toolkit

# Start in SSE mode on a specific port
text-toolkit --sse --port=8000

# Display version
text-toolkit --version

MCP检验员测试

您可以使用MCP检查器测试TextToolkit MCP服务器:

# Install the MCP Inspector
npm install -g @modelcontextprotocol/inspector

# Run the inspector against your server
mcp-inspector @cicatriz/text-toolkit

例子

该存储库包括演示如何使用TextToolkit MCP服务器的示例脚本:

# Run the case transformation example
node examples/case-transform-example.js

此示例演示了如何:

  1. 连接到TextToolkit MCP服务器
  2. 列出可用工具
  3. 将文本转换为不同的案例
  4. 使用自定义选项进行转换

🔧 可用工具

1.case_to_tocamel

将文本转换为camelCase格式。

参数:

  • text:要转换的文本
  • delimiter (可选):单词之间使用的字符
  • locale (可选):用于案例转换的区域设置
  • mergeAmbiguousCharacters (可选):是否合并歧义字符

例子:

{
  "text": "hello world test"
}

答复:

{
  "result": "helloWorldTest"
}

2.case_to_pascal

将文本转换为PascalCase。

参数:

  • text:要转换的文本
  • delimiter (可选):单词之间使用的字符
  • locale (可选):用于案例转换的区域设置
  • mergeAmbiguousCharacters (可选):是否合并歧义字符

例子:

{
  "text": "hello world test"
}

答复:

{
  "result": "HelloWorldTest"
}

3.encode_base64

将文本编码为Base64。

参数:

  • text:要编码的文本

例子:

{
  "text": "hello world"
}

答复:

{
  "result": "aGVsbG8gd29ybGQ="
}

4.解码基础64

将Base64解码为文本。

参数:

  • text:要解码的Base64字符串

例子:

{
  "text": "aGVsbG8gd29ybGQ="
}

答复:

{
  "result": "hello world"
}

5.格式_儿子

格式化和美化JSON。

参数:

  • text:要格式化的JSON文本
  • indent_size (可选):缩进的空格数(1-8)。默认为2。

例子:

{
  "text": "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}",
  "indent_size": 4
}

答复:

{
  "result": "{\n    \"name\": \"John\",\n    \"age\": 30,\n    \"city\": \"New York\"\n}"
}

6.计数字符

统计文本中的字符数。

参数:

  • text:要分析的文本

例子:

{
  "text": "hello world"
}

答复:

{
  "total_characters": 11,
  "characters_without_spaces": 10
}

7.字符串替换

替换文本。

参数:

  • text:替换文本
  • search:要搜索的字符串
  • replace:要替换的字符串
  • replace_all (可选):是否替换所有事件。默认为true。

例子:

{
  "text": "hello world",
  "search": "world",
  "replace": "universe"
}

答复:

{
  "result": "hello universe"
}

8.generate_uid

生成UUID。

参数:

  • version (可选):要生成的UUID版本(v1、v4、v5、nil)。默认为v4。
  • namespace (可选):v5 UUID的命名空间(v5需要)
  • name (可选):v5 UUID的名称(v5需要)
  • uppercase (可选):是否返回大写的UUID。默认为false。

例子:

{
  "version": "v4"
}

答复:

{
  "uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}

9.生成lorem-ipsum

发电机正在发短信。

参数:

  • count (可选):要生成的单位数。默认为5。
  • units (可选):要生成的单元类型(单词、句子、段落)。默认为句子。
  • paragraphLowerBound (可选):每段最少句子。默认为3。
  • paragraphUpperBound (可选):每段最多句子数。默认为7。
  • sentenceLowerBound (可选):每句话最少单词数。默认为5。
  • sentenceUpperBound (可选):每句话的最大字数。默认值为15。
  • format (可选):输出格式(纯文本、html)。默认为plain。

例子:

{
  "count": 2,
  "units": "sentences"
}

答复:

{
  "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut hendrerit ipsum in nulla euismod, vel ultrices nisi tincidunt."
}

10.regex_test

针对文本测试正则表达式模式。

参数:

  • text:根据模式测试的文本
  • pattern:要测试的正则表达式模式
  • flags (可选):正则表达式标志(例如“g”、“i”、“gi”)。默认为“g”。

例子:

{
  "text": "hello world",
  "pattern": "\\w+",
  "flags": "g"
}

答复:

{
  "matches": ["hello", "world"],
  "match_count": 2,
  "is_match": true
}

💬 Claude Desktop中的查询示例

  • “将'hello world'转换为camelCase”
  • “将‘hello world’编码为Base64”
  • 格式化此JSON:{“姓名”:“约翰”,“年龄”:30}
  • “统计‘hello world’中的字符数”
  • “将‘hello world’中的‘world’替换为‘universe’”
  • “生成UUID”
  • “生成2个lorem ipsum句子”
  • “测试‘hello world’是否与正则表达式模式‘\w+’匹配”
  • “将‘Hello World’转换为snake_case”
  • “解码此Base64字符串:aGVsbG8gd29ybGQ=”

💻 技术细节

建筑

TextToolkit是使用模型上下文协议(MCP)规范构建的,它允许它与Claude Desktop和其他兼容MCP的客户端无缝集成。服务器使用TypeScript实现,并使用以下架构:

  • 核心服务:实现文本转换、编码/解码和格式化
  • MCP服务器:处理来自客户端的JSON-RPC请求
  • 工具函数:为文本操作提供辅助函数
  • 测试框架:包括用于验证功能的全面测试脚本

依赖项

  • 变更案例 -用于案例转换操作
  • 加密js -用于哈希生成
  • js美化 -用于代码格式化和美化
  • 通用唯一标识符 -用于UUID生成和验证
  • 洛伦·伊普瑟姆 -用于占位符文本生成
  • @模型上下文协议/sdk -用于MCP服务器实施

需求

  • Node.js 16.x或更高版本
  • npm 7.x或更高版本

📝 贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

🔍 测试

TextToolkit包含全面的测试脚本,可用于验证MCP服务器的功能。测试脚本可用于测试stdio和SSE模式。

运行测试

# Test stdio mode
node test-comprehensive.js

# Test SSE mode
node test-sse-comprehensive.js

🔒 隐私和安全

TextToolkit在本地处理所有数据,不向外部服务器发送任何信息。您的文本数据和查询在您的设备上保持私密。

📃 许可证

麻省理工学院

👨‍💻 作者

疤痕