Skip to main content
Glama
raunakkathuria

LexiLint MCP

README.md
# LexiLint MCP

Spell and grammar checking for AI assistants via [Model Context Protocol (MCP)](https://modelcontextprotocol.io/).

Works with **Claude Desktop**, **Cursor**, **OpenAI Codex** (CLI, IDE extension and ChatGPT desktop app), and other MCP clients that run local (stdio) servers. ChatGPT chat connects only to remote MCP servers, so it cannot run LexiLint MCP.

[![npm version](https://badge.fury.io/js/lexilint-mcp.svg)](https://www.npmjs.com/package/lexilint-mcp)
[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.raunakkathuria/lexilint)

## Features

- **Offline spell checking** — en-US and en-GB are free, local, unlimited, and make no API calls.
- **BYOK grammar checking** — use Gemini, OpenAI, or Anthropic with your own provider key.
- **Eight supported dictionaries** — two free English variants plus six Premium languages: Spanish, French, German, Polish, Russian, and Turkish.
- **Combined checking** — run spelling and optional grammar together with `check_text`.
- **Private provider transport** — grammar text goes directly to the selected provider; LexiLint does not proxy it.

## Install and configure

### Claude Desktop and other JSON-configured clients

Configure one provider key as an environment variable. This keeps the key out of tool calls and conversation context.

```json
{
  "mcpServers": {
    "lexilint": {
      "command": "npx",
      "args": ["-y", "lexilint-mcp"],
      "env": {
        "GEMINI_API_KEY": "your-gemini-api-key"
      }
    }
  }
}
```

Provider environment variables:

| Provider argument | Environment variable | Access |
|---|---|---|
| `gemini` | `GEMINI_API_KEY` | Free for English grammar |
| `openai` | `OPENAI_API_KEY` | LexiLint Premium |
| `anthropic` | `ANTHROPIC_API_KEY` | LexiLint Premium |

Common Claude Desktop config locations:

- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

Restart the client after changing its MCP configuration.

### Run directly

```bash
npx -y lexilint-mcp
```

You can also install it globally with `npm install -g lexilint-mcp`.

## Tools

### `spell_check` — free and offline

Checks spelling without an API key or network request.

```text
text      string   Text to spell-check
language  string   "en-US" or "en-GB" (default: "en-US")
```

### `grammar_check` — BYOK grammar, style, and clarity

```text
text        string   Text to grammar-check
provider    string   "gemini" | "openai" | "anthropic"
api_key     string   Optional per-call override for the provider environment variable
model       string   Optional provider model ID (Premium when custom)
license_key string   LexiLint licence key for Premium providers/languages/models
language    string   Language code (default: "en-US")
```

With `GEMINI_API_KEY` configured, a client can call the tool without putting the provider key in its arguments:

```json
{
  "text": "This are a test.",
  "provider": "gemini",
  "language": "en-US"
}
```

A non-empty per-call `api_key` remains supported as an explicit override and takes precedence over the selected provider environment variable:

```json
{
  "text": "This are a test.",
  "provider": "gemini",
  "api_key": "temporary-override-key",
  "language": "en-US"
}
```

Get a free Gemini key from [Google AI Studio](https://aistudio.google.com). Do not paste real keys into chat messages; prefer your MCP client's local environment configuration.

If the provider's reply is empty or cannot be read, the tool returns an error instead of reporting that no issues were found.

Grammar checks at most 2,000 characters per call. Longer text is cut at the last paragraph, sentence, or word that fits, and the result says how many characters were checked. Send the rest in separate calls.

### `check_text` — combined spelling and optional grammar

Always runs the available spelling check. Add `provider` to request grammar; omit it to skip grammar without requiring a provider key.

```text
text        string   Text to check
language    string   Language code (default: "en-US")
provider    string   Optional; omit to skip grammar
api_key     string   Optional per-call override for the provider environment variable
model       string   Optional provider model ID (Premium when custom)
license_key string   LexiLint licence key for Premium providers/languages/models
```

## Models and Premium access

Default models are `gemini-3.8-flash`, `gpt-5.6-terra`, and `claude-sonnet-5`. A custom model requires LexiLint Premium:

```json
{
  "text": "This are a test.",
  "provider": "gemini",
  "model": "gemini-3.7-flash",
  "license_key": "your-lexilint-license-key"
}
```

| Feature | Free | Premium ($2.99/mo or $29.99 lifetime) |
|---|---|---|
| Spell check | en-US and en-GB, offline | Plus es, fr, de, pl, ru, tr |
| Gemini grammar | English, BYOK | All supported languages and custom models |
| OpenAI grammar | — | BYOK |
| Anthropic grammar | — | BYOK |

Get Premium: https://igniteapp.net/lexilint#premium

Customers provide only their provider key and, for Premium features, their LexiLint licence key. The runtime already contains the public application configuration needed to validate a licence with Polar; customers do not configure a LexiLint signing secret or organisation ID.

## Privacy and repository boundary

- Spell checking is local and sends no text anywhere.
- Grammar text goes directly to Google, OpenAI, or Anthropic according to the provider you select.
- LexiLint does not receive provider keys or grammar text.
- The public `raunakkathuria/lexilint-mcp` repository is a metadata-only registry mirror containing exactly `LICENSE`, `README.md`, `glama.json`, and `server.json`. Private source, builds, tests, source maps, and standalone prompt documentation are not published there.

## Links

- [npm package](https://www.npmjs.com/package/lexilint-mcp)
- [Website and docs](https://igniteapp.net/lexilint/mcp-spell-checker-claude-desktop)
- [Chrome Extension](https://igniteapp.net/lexilint/)
- [MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.raunakkathuria/lexilint)

## Licence

LexiLint MCP is proprietary software distributed under the terms in [`LICENSE`](LICENSE). Installing the package does not open-source the private monorepo or grant redistribution rights.