Lettras word search
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Word searches, crosswords, sudoku and Unicode text styles in 6 languages, accents kept.
| Author | org.lettras |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 296 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Lettras word search": {
"url": "https://mcp.lettras.org/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
generate_word_searchCreate a word-search puzzle (sopa de letras) from a list of words. Puzzles up to 10x10 with at most 10 words are free and unlimited; bigger ones use the free puzzles each client gets. Keeps native letters (Ñ, Ç, Ã, Ä, ẞ, È…) as one cell each. Returns the grid, where every word is hidden, and any words that did not fit. Empty cells are marked "-": call fill_word_search with the grid to complete it with random letters. The same seed always gives the same puzzle.
Parameters:
words(required) — array — Words to hide, in their normal spelling (accents kept).rows(required) — integer — Grid height.cols(required) — integer — Grid width. May differ from rows for a rectangular grid.lang— string — Language of the words. Default es.seed— integer — Repeatable puzzles: same input and seed, same grid.position— string — horizontal = left to right only, vertical = top to bottom only, mixed = all 8 directions including diagonals.clustering— number — 0 keeps words apart, 1 makes them cross. Default 0.5.difficulty— integer — Used when position is not set: 1 easy (right, down) to 4 expert (all 8 directions).classicMode— boolean — Strip accents in the grid (ñ becomes N).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
fill_word_searchCompletes a word search: takes the grid from generate_word_search (empty cells are "-") and fills them with random letters in the chosen language, with accents on or off. Letters follow how common they are in that language. Pass the puzzle's words so the filler never creates an extra copy of one.
Parameters:
grid(required) — array — The grid from generate_word_search: rows of one-letter strings, "-" for empty cells.lang— string — Language of the letters. Default es.seed— integer — Repeatable filler. Omit for a different filler every time.empty— string — What marks an empty cell. Default "-".words— array — The hidden words, so the filler cannot create an extra copy of one.accents— boolean — true (default): use the language's accented/native letters (Ñ, Ç, Ã, Ä, ẞ…). false: plain A-Z only.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
stylize_textTurns text into Unicode styles for social media bios and posts: bold, italic, script, fraktur, monospace, circled, squared, fullwidth, small caps, strikethrough, underline and more (22 styles). Accents are kept: an accented letter becomes its styled base letter plus the combining accent (ñ, ç, ü, ß work). Not every style can draw every character: letters such as ß, Æ, Œ, Ø or non-Latin scripts stay plain, and accented letters rely on a combining mark that some fonts draw badly. Those characters are listed in notNative for each style, and parts with missing: true mark them, so you can warn the user or show an empty box. Set classic to strip accents first. Pass one style id, several, or none for all styles (see list_styles). Runs locally and has no usage limit.
Parameters:
text(required) — string — The text to style, in its normal spelling (accents kept).style— Which style(s) to use. Omit for all 22. Ids come from list_styles.classic— boolean — Strip accents first (ñ becomes n), for places that render combining accents badly.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_stylesThe Unicode text styles stylize_text offers, with the id to pass, an English name and a category (bold-italic, sans, script, gothic, mono, enclosed, decoration, other).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
crosswordLays out a crossword from words with clues. Returns two matrices of the same size: puzzle (the game position: "-" is a blank cell, a word's number is on its first cell, "0" marks the other cells where a letter goes, and "a/d" such as "3/4" appears when an across word and a down word start in the same cell) and solution (the same matrix with the correct letters, one grapheme per cell). placements lists every word with its number, clue, direction (across/down) and start cell; unplaced lists words that did not fit. Offer more words than you need: the engine keeps the best layout it finds. Native letters (Ñ, Ç, ẞ…) stay one cell each. Free, no usage limit. The same seed gives the same crossword.
Parameters:
entries(required) — array — Words with their clues.rows(required) — integer — Largest height; the result is cropped to what it uses.cols— integer — Largest width. Default: rows.open— string — Marker of letter cells that do not start a word in puzzle. Default "0".seed— integer — Repeatable crossword.block— string — Marker of blank cells. Default "-".attempts— integer — Layouts to try (default 30); more attempts, denser crossword.classicMode— boolean — Strip accents (ñ becomes N).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
sudokuCreates a sudoku with exactly one solution. Returns puzzle (0 = empty cell) and solution. Sizes 4, 6, 9 (default), 12 and 16; difficulty 1 easy (most clues) to 4 expert. Free, no usage limit. The same seed gives the same sudoku.
Parameters:
seed— integer — Repeatable sudoku.size— integer — Side of the grid. Default 9.difficulty— integer — 1 easy to 4 expert. Default 2.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
solve_sudokuSolves a sudoku grid (0 = empty cell; sizes 4, 6, 9, 12, 16) and says whether the solution is the only one. Free, no usage limit.
Parameters:
puzzle(required) — array — Rows of numbers, 0 for empty cells.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_languagesLanguages Lettras supports, with the native letters each one adds to its grid alphabet.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.