Koskamo

LetterLab Word Solver MCP

LetterLab Word Solver is an MCP server that unscrambles letters, solves crossword patterns, and assists with 5-letter word guessing games using the ENABLE English word list. It supports filtering by length, tile points, and pattern matching, and ranks next guesses by expected information.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

LetterLab Word Solver MCP logo, by ZovoCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Zovo
MCP endpoint (Streamable HTTP)
https://word-solver.zovo.one/mcp
Vendor documentation

What you can do with it

  • Unscramble a rack of letters with blanks
  • Find crossword answers from a pattern
  • Count remaining answers in a guessing game
  • Rank next guesses by expected information

Source and maintenance

Community listingRegistry 1.0.1

Protocol and capabilities

Server
word-solver 1.0.1
MCP protocol
2025-06-18
Tools
3 advertised
Resources
1 advertised
Resource templates
1 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

LetterLab Word Solver looks words up in the ENABLE English word list (172,569 words). solve_anagram unscrambles letters (with ? blanks) and scores them in tile points; solve_word_pattern finds words matching a crossword-style pattern like C?T; solve_word_guess narrows a 5-letter guessing game from color feedback and suggests the next guess. Report the words exactly as returned; do not add words that are not in the results.

Tools

3 advertised

solve_anagram — Unscramble letters
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user wants to unscramble letters or find all words that can be made from a set of letters (word unscrambler, anagram solver, letter-tile word finder), optionally with blank tiles (? or *) and filters for length, starts with, ends with, or contains. Returns dictionary matches grouped by length with counts (every match is counted; up to 25 words are listed per length) and tile points (standard letter values, no board bonuses). Does not check board placement or define words. Do not use for crossword patterns with known letter positions (use solve_word_pattern).

solve_anagram input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "letters"
  ],
  "properties": {
    "length": {
      "type": "integer",
      "maximum": 20,
      "minimum": 2,
      "description": "Only words of exactly this many letters, e.g. 5."
    },
    "letters": {
      "type": "string",
      "maxLength": 60,
      "description": "The letters to unscramble, e.g. RETAINS. Use ? or * for each blank (wildcard) tile, e.g. QUIZ?ES. Spaces and case are ignored; 2-20 tiles, at most 3 blanks."
    },
    "contains": {
      "type": "string",
      "maxLength": 20,
      "description": "Only words that contain this run of letters, e.g. QU."
    },
    "ends_with": {
      "type": "string",
      "maxLength": 20,
      "description": "Only words that end with these letters, e.g. ING."
    },
    "min_length": {
      "type": "integer",
      "maximum": 20,
      "minimum": 2,
      "description": "Shortest word length to include, e.g. 3 (default 2)."
    },
    "starts_with": {
      "type": "string",
      "maxLength": 20,
      "description": "Only words that start with these letters, e.g. RE."
    },
    "use_all_letters": {
      "type": "boolean",
      "description": "true to list only words that use every tile (full anagrams), e.g. true for 'what words use all of LISTEN'."
    }
  }
}
solve_anagram output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mode",
    "letters",
    "blanks",
    "total",
    "common_total",
    "filters",
    "full_anagrams",
    "top_scoring",
    "groups",
    "shown",
    "note"
  ],
  "properties": {
    "mode": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "shown": {
      "type": "number"
    },
    "total": {
      "type": "number"
    },
    "blanks": {
      "type": "number"
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "length",
          "count",
          "words"
        ],
        "properties": {
          "count": {
            "type": "number"
          },
          "words": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "length": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "filters": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "letters": {
      "type": "string"
    },
    "top_scoring": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "word",
          "points"
        ],
        "properties": {
          "word": {
            "type": "string"
          },
          "points": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "common_total": {
      "type": "number"
    },
    "full_anagrams": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
solve_anagram annotations
{
  "title": "Unscramble letters",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
solve_word_pattern — Find words by pattern
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user needs words that fit a pattern of known and unknown letters, such as a crossword answer (C?T, _A_E, 7 letters ending in ING), with optional letters that must or must not appear. Counts every matching dictionary word and lists up to 120 of them, common words first. Does not solve clues by meaning or look up definitions. Do not use for unscrambling a set of letters (use solve_anagram).

solve_word_pattern input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "length": {
      "type": "integer",
      "maximum": 28,
      "minimum": 2,
      "description": "Word length when there is no pattern, or to check it, e.g. 7 for a 7-letter crossword answer."
    },
    "pattern": {
      "type": "string",
      "maxLength": 40,
      "description": "Known letters with ? (or _ or .) for each unknown letter and * for any run of letters, e.g. C?T, _A_E, ??ANGE, or S*ING. Spaces are ignored."
    },
    "exclude_letters": {
      "type": "string",
      "maxLength": 26,
      "description": "Letters that must not appear anywhere, e.g. AEIO."
    },
    "include_letters": {
      "type": "string",
      "maxLength": 20,
      "description": "Letters that must appear somewhere (repeat a letter to require it twice), e.g. RS."
    }
  }
}
solve_word_pattern output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mode",
    "pattern",
    "total",
    "common_total",
    "words",
    "more",
    "by_length",
    "filters",
    "note"
  ],
  "properties": {
    "mode": {
      "type": "string"
    },
    "more": {
      "type": "number"
    },
    "note": {
      "type": "string"
    },
    "total": {
      "type": "number"
    },
    "words": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filters": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "pattern": {
      "type": "string"
    },
    "by_length": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "length",
          "count"
        ],
        "properties": {
          "count": {
            "type": "number"
          },
          "length": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "common_total": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
solve_word_pattern annotations
{
  "title": "Find words by pattern",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
solve_word_guess — Narrow down a word guess
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this when the user plays a 5-letter word guessing game with green/yellow/gray feedback and wants the remaining possible answers or a strong next guess (word game solver, guess helper). Takes previous guesses with their color feedback (G/Y/-), applies the standard repeated-letter rules, counts the words still possible and lists up to 60 of them, and ranks next guesses by expected information. Supports 4-8 letter variants and hard mode. Does not know today's answer and does not play the game. Do not use for unscrambling letters or crossword patterns.

solve_word_guess input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "guesses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "word",
          "feedback"
        ],
        "properties": {
          "word": {
            "type": "string",
            "maxLength": 12,
            "description": "The guessed word, e.g. CRANE."
          },
          "feedback": {
            "type": "string",
            "maxLength": 60,
            "description": "One mark per letter: G = green (right letter, right spot), Y = yellow (in the word, wrong spot), - = gray (not in the word), e.g. GY--G. Colored squares like 🟩🟨⬛ also work."
          }
        }
      },
      "maxItems": 12,
      "description": "Guesses made so far with their color feedback, in order, e.g. [{\"word\":\"CRANE\",\"feedback\":\"-Y--G\"}]. Leave empty for a suggested opening guess."
    },
    "hard_mode": {
      "type": "boolean",
      "description": "true if every next guess must use all revealed clues (hard mode); then only words that could still be the answer are suggested."
    },
    "word_length": {
      "type": "integer",
      "maximum": 8,
      "minimum": 4,
      "description": "Letters in the hidden word, e.g. 5 (default: length of the guesses, else 5)."
    }
  }
}
solve_word_guess output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "mode",
    "word_length",
    "guesses",
    "solved",
    "total",
    "common_total",
    "candidates",
    "more",
    "best_guesses",
    "scored_against",
    "guesses_scored",
    "clues",
    "note"
  ],
  "properties": {
    "mode": {
      "type": "string"
    },
    "more": {
      "type": "number"
    },
    "note": {
      "type": "string"
    },
    "clues": {
      "type": "object",
      "required": [
        "known",
        "present",
        "absent"
      ],
      "properties": {
        "known": {
          "type": "string"
        },
        "absent": {
          "type": "string"
        },
        "present": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "total": {
      "type": "number"
    },
    "solved": {
      "type": "boolean"
    },
    "guesses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "word",
          "feedback"
        ],
        "properties": {
          "word": {
            "type": "string"
          },
          "feedback": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "candidates": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "word_length": {
      "type": "number"
    },
    "best_guesses": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "word",
          "bits",
          "expected_left",
          "worst_case",
          "could_be_answer"
        ],
        "properties": {
          "bits": {
            "type": "number"
          },
          "word": {
            "type": "string"
          },
          "worst_case": {
            "type": "number"
          },
          "expected_left": {
            "type": "number"
          },
          "could_be_answer": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "common_total": {
      "type": "number"
    },
    "guesses_scored": {
      "type": "number"
    },
    "scored_against": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
solve_word_guess annotations
{
  "title": "Narrow down a word guess",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

word-solver-widget — LetterLab Word Solver view

Advertised by the server during the last successful anonymous check.

Interactive view for LetterLab Word Solver.

word-solver-widget URI
ui://widget/word-solver-v3-1.0.1-d7532f41aec9634bdbb85813de72867486027069449b668497aa635f777a4b98.html

MIME type: text/html;profile=mcp-app

word-solver-widget-legacy — LetterLab Word Solver view (previous versions)

Advertised by the server during the last successful anonymous check.

word-solver-widget-legacy URI template
ui://widget/word-solver-{version}.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
450 ms
95th percentile latency
450 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 450 ms · metadata changed · 3 tool(s), 1 resource(s), 1 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http letterlab-word-solver-mcp https://word-solver.zovo.one/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add letterlab-word-solver-mcp --url https://word-solver.zovo.one/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable letterlab-word-solver-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "letterlab-word-solver-mcp": {
      "url": "https://word-solver.zovo.one/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "letterlab-word-solver-mcp": {
      "type": "streamableHttp",
      "url": "https://word-solver.zovo.one/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start letterlab-word-solver-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "letterlab-word-solver-mcp": {
      "type": "http",
      "url": "https://word-solver.zovo.one/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http letterlab-word-solver-mcp https://word-solver.zovo.one/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "letterlab-word-solver-mcp": {
      "url": "https://word-solver.zovo.one/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "letterlab-word-solver-mcp": {
      "serverUrl": "https://word-solver.zovo.one/mcp"
    }
  }
}

Let your agent find its tools

Find servers like LetterLab Word Solver MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.