MCP Hub
Back to servers

mcp-character-tools

A specialized MCP server that provides character-level 'vision' for LLMs, enabling accurate letter counting, frequency analysis, and text manipulation to overcome tokenization limitations.

Stars
3
Tools
14
Updated
Dec 13, 2025
Validated
Jan 11, 2026

MCP Character Tools

NPM Version TypeScript MCP License

The last thing you need for your LLM to work with individual characters or count the number of r's in a word. This is an MCP server providing 14+ comprehensive (and pretty) character and text analysis tools to help LLMs work with individual characters - something they struggle with due to tokenization.

See the Difference

Without MCP (Wrong)With MCP (Correct)
Without MCP - incorrectly claims 2 r's in garlicWith MCP - correctly identifies 1 r in garlic
Claims there are 2 r's in "garlic"Correctly identifies 1 r in "garlic"
Yes, your agent will be able to tell how many r's are in Strawberry/Garlic :)

Why This Exists

First of all, why not? Second, Large Language Models tokenize text into subwords, not individual characters. For example, "strawberry" might become tokens like ["straw", "berry"], so the model never truly "sees" individual letters. This MCP server gives LLMs "character-level vision" through a suite of tools.

Installation

Via npx (recommended)

npx mcp-character-tools

Via npm (global install)

npm install -g mcp-character-tools
mcp-character-tools

From source

git clone https://github.com/Aaryan-Kapoor/mcp-character-tools
cd mcp-character-tools
npm install
npm run build
npm start

Usage with Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "char-tools": {
      "command": "npx",
      "args": ["mcp-character-tools"]
    }
  }
}

All Tools Reference

See sample_outputs.md for complete examples with inputs and outputs for all 14+ tools.

ToolDescription
count_letterCount a specific letter
count_lettersCount multiple letters at once
count_substringCount substring occurrences
letter_frequencyGet frequency distribution
spell_wordBreak into characters
char_atGet character at index
nth_characterGet nth character (1-based)
word_lengthGet exact length
reverse_textReverse text, detect palindromes
compare_textsCompare two texts
analyze_sentenceWord-by-word breakdown
batch_countCount across multiple words
get_tricky_wordsList commonly miscounted words
check_tricky_wordCheck if word is tricky

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Development mode with auto-rebuild
npm run dev

Testing

The project includes comprehensive tests for all tools:

npm test

Test files:

  • tests/counting.test.ts - Counting tools tests
  • tests/spelling.test.ts - Spelling tools tests
  • tests/analysis.test.ts - Analysis tools tests
  • tests/tricky-words.test.ts - Tricky words resource tests
  • tests/visualization.test.ts - Visualization utility tests

License

MIT

Reviews

No reviews yet

Sign in to write a review