Exact character/word counting, reversal, palindrome checks, indexing, sorting; Unicode-safe.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns the 0-indexed character (rune) at index in text.
0-indexed
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Returns the 0-indexed character (rune) at index in text.
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| index* | integer | 0-indexed |
{
"type": "object",
"required": [
"text",
"index"
],
"properties": {
"text": {
"type": "string"
},
"index": {
"type": "integer",
"description": "0-indexed"
}
},
"additionalProperties": false
}Counts non-overlapping occurrences of substring in text (rune-safe, not byte-based).
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| substring* | string | must be non-empty |
{
"type": "object",
"required": [
"text",
"substring"
],
"properties": {
"text": {
"type": "string"
},
"substring": {
"type": "string",
"description": "must be non-empty"
}
},
"additionalProperties": false
}Checks whether text reads the same forwards and backwards. ignoreCase/ignoreNonAlnum default false (strict, literal comparison); set both true for phrase-style palindromes like "A man, a plan, a canal: Panama".
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| ignoreCase | boolean | |
| ignoreNonAlnum | boolean |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"ignoreCase": {
"type": "boolean"
},
"ignoreNonAlnum": {
"type": "boolean"
}
},
"additionalProperties": false
}Reverses text by Unicode code point (rune), not grapheme cluster.
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}Sorts text's characters or words alphabetically. by: "chars" (default, sorts runes, no separator) or "words" (splits on whitespace, rejoins with a single space).
| Argument | Type | Description |
|---|---|---|
| by | string | chars (default) or words |
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"by": {
"type": "string",
"description": "chars (default) or words"
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}Descriptive statistics for text: rune/byte/word/line counts, a unique-rune count, a letters/digits/spaces/punctuation/other breakdown, an exact per-character frequency table, and word-length min/max/average plus the actual shortest/longest word (ties resolve to the first occurrence).
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}Counts whitespace-delimited words in text.
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}