Skip to main content
Glama
morahan

SpellChecker MCP Server

by morahan

SpellChecker MCP Server

A fast, multilingual Model Context Protocol (MCP) server that provides spell-checking capabilities to Large Language Models. This server enables LLMs to check spelling in text, files, and entire projects with syntax-aware parsing for code files.

Features

  • Multi-language support: 15+ languages including English, Spanish, French, German, Portuguese, Italian, Dutch, Polish, Russian, Ukrainian, Swedish, Danish, and Norwegian

  • Syntax-aware checking: Intelligently checks only comments, strings, and documentation in code files

  • File and folder scanning: Check individual files or entire project directories

  • Modular language activation: Enable only the languages you need

  • Fast spell checking: Powered by nspell for efficient processing

  • Custom dictionary management: Add words to personal dictionaries

  • Smart code parsing: Understands HTML, JavaScript, TypeScript, Python, and more

  • MCP-compliant: Works with any MCP-compatible client

Related MCP server: Translations MCP Server

Installation

As an MCP Server

  1. Clone the repository:

git clone https://github.com/yourusername/spellchecker-mcp-server.git
cd spellchecker-mcp-server
  1. Install dependencies and build:

yarn install
yarn build

The post-install script will automatically download the required dictionary files.

Using with Claude Desktop

Add the server to your Claude Desktop configuration file:

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

{
  "mcpServers": {
    "spellchecker": {
      "command": "node",
      "args": ["/path/to/spellchecker-mcp-server/dist/index.js"],
      "env": {
        "SPELLCHECKER_LANGUAGES": "en-US,es,fr"
      }
    }
  }
}

Configuring Languages

You can configure which languages to enable in three ways:

  1. Environment variable (recommended for Claude Desktop):

    SPELLCHECKER_LANGUAGES="en-US,es,fr" node dist/index.js
  2. Configuration file:

    SPELLCHECKER_CONFIG="/path/to/spellchecker.config.json" node dist/index.js
  3. Edit the default in src/config.ts before building

Using with Other MCP Clients

The server runs on stdio and can be integrated with any MCP-compatible client:

node /path/to/spellchecker-mcp-server/dist/index.js

Available Tools

check_spelling

Checks text for spelling errors and returns misspellings with suggestions.

Parameters:

  • text (required): The text to check

  • language (optional): Language code (default: "en-US")

  • includeLineNumbers (optional): Include line/column positions (default: false)

Example:

{
  "text": "This is a tset of the speling checker",
  "language": "en-US",
  "includeLineNumbers": true
}

is_correct

Checks if a single word is spelled correctly.

Parameters:

  • word (required): The word to check

  • language (optional): Language code (default: "en-US")

get_suggestions

Gets spelling suggestions for a word.

Parameters:

  • word (required): The word to get suggestions for

  • language (optional): Language code (default: "en-US")

  • limit (optional): Maximum suggestions to return (default: 5)

add_to_dictionary

Adds a word to the personal dictionary for a language.

Parameters:

  • word (required): The word to add

  • language (optional): Language code (default: "en-US")

list_languages

Lists all available languages for spell checking.

check_file

Checks spelling in a single file with syntax-aware parsing.

Parameters:

  • filePath (required): Path to the file to check

  • language (optional): Language code (default: "en-US")

  • syntaxAware (optional): Enable syntax-aware parsing (default: true)

Example:

{
  "filePath": "/path/to/app.tsx",
  "language": "en-US",
  "syntaxAware": true
}

check_folder

Checks spelling in all files within a folder.

Parameters:

  • folderPath (required): Path to the folder to check

  • language (optional): Language code (default: "en-US")

  • recursive (optional): Check subfolders (default: true)

  • fileTypes (optional): Array of file extensions to check

  • syntaxAware (optional): Enable syntax-aware parsing (default: true)

Example:

{
  "folderPath": "/path/to/project",
  "language": "en-US",
  "recursive": true,
  "fileTypes": [".js", ".tsx", ".md"],
  "syntaxAware": true
}

Supported Languages

The server supports 15+ languages. Enable only what you need:

  • en-US - English (United States)

  • en-GB - English (United Kingdom)

  • es - Spanish

  • fr - French

  • de - German

  • pt - Portuguese

  • pt-BR - Portuguese (Brazil)

  • it - Italian

  • nl - Dutch

  • pl - Polish

  • ru - Russian

  • uk - Ukrainian

  • sv - Swedish

  • da - Danish

  • nb - Norwegian Bokmål

Syntax-Aware Features

When syntaxAware is enabled, the spell checker intelligently parses:

  • Comments: Single-line and multi-line comments in all major languages

  • String literals: Only checks strings that look like human-readable text

  • JSX/TSX content: Text between JSX tags

  • Documentation: Docstrings, JSDoc comments, etc.

  • Markdown: Ignores code blocks and inline code

  • HTML/XML: Checks text content and comments

The checker automatically ignores:

  • Variable names and identifiers

  • Programming keywords

  • URLs and file paths

  • Hex colors and numbers

  • Code within backticks in Markdown

Development

Prerequisites

  • Node.js >= 16.0.0

  • Yarn package manager

Setup

# Install dependencies
yarn install

# Run in development mode
yarn dev

# Build for production
yarn build

# Type check
yarn typecheck

Using Just Commands

If you have just installed:

# Show available commands
just

# Fresh install
just fresh

# Run development server
just dev

# Update dictionaries
just dictionaries

Architecture

The server uses:

  • @modelcontextprotocol/sdk: MCP protocol implementation

  • nspell: Hunspell-compatible spell checker

  • glob: File pattern matching for directory scanning

  • TypeScript: Type-safe development

  • Dictionary files: From the wooorm/dictionaries project

Configuration File

Create a spellchecker.config.json file:

{
  "languages": ["en-US", "es", "fr"],
  "defaultLanguage": "en-US",
  "scanOptions": {
    "syntaxAware": true,
    "recursive": true,
    "fileTypes": [
      ".txt", ".md", ".mdx",
      ".js", ".jsx", ".ts", ".tsx",
      ".py", ".java", ".go"
    ],
    "ignorePaths": [
      "node_modules",
      ".git",
      "dist",
      "build"
    ]
  }
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Troubleshooting

Dictionaries not loading

If you see "No dictionaries loaded" error:

yarn run postinstall
# or
just dictionaries

Server not starting

Ensure you've built the project:

yarn build

Language not available

Check available languages with the list_languages tool or ensure the dictionary files exist in the dictionaries/ folder.

Available Tools

7 tools
add_to_dictionaryC

Add a word to the personal dictionary

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYesThe word to add to the dictionary
languageNoLanguage code (e.g., en-US, es, fr, de, pt)en-US

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Add' implies a mutation operation, it doesn't specify whether this requires authentication, what happens on duplicate entries, if changes are permanent, or what the response looks like. For a write operation with zero annotation coverage, this is inadequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a simple tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after adding (success/failure indicators), doesn't address behavioral aspects like permissions or side effects, and provides minimal context beyond the basic action. The 100% schema coverage helps with parameters but doesn't compensate for other gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter semantics beyond what's in the schema - it mentions 'word' but not 'language', and provides no additional context about format, constraints, or usage. Baseline 3 is appropriate when schema does all the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add') and resource ('personal dictionary'), making the purpose immediately understandable. It doesn't distinguish from sibling tools like 'check_spelling' or 'get_suggestions', but the verb+resource combination is specific enough for basic understanding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'check_spelling' or 'is_correct'. There's no mention of prerequisites, use cases, or exclusions, leaving the agent to infer usage context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_fileC

Check spelling in a file with syntax-aware parsing

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file to check
languageNoLanguage code for spell checkingen-US
syntaxAwareNoEnable syntax-aware parsing for code files

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'syntax-aware parsing for code files', which adds some context about handling code, but doesn't cover other critical aspects like whether this is a read-only operation, what the output format is (e.g., list of errors), error handling, or performance implications. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Check spelling in a file') and adds a key feature ('with syntax-aware parsing'). There is no wasted text, and it's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks details on output format, error conditions, or how results are presented (e.g., as a list or report). Without annotations or an output schema, the description should compensate more to ensure the agent understands what to expect from the tool's operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so parameters are well-documented in the schema itself. The description adds minimal value beyond the schema by implying 'syntax-aware parsing' relates to the 'syntaxAware' parameter, but doesn't provide additional semantics like examples or edge cases. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check spelling in a file with syntax-aware parsing'. It specifies the verb ('check spelling'), resource ('a file'), and a key feature ('syntax-aware parsing'). However, it doesn't explicitly differentiate from sibling tools like 'check_spelling' or 'check_folder', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'check_folder' (for folders), 'check_spelling' (possibly for text), or 'get_suggestions' (for corrections), leaving the agent to infer usage context without explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_folderC

Check spelling in all files in a folder

ParametersJSON Schema
NameRequiredDescriptionDefault
folderPathYesPath to the folder to check
languageNoLanguage code for spell checkingen-US
recursiveNoCheck files recursively in subfolders
fileTypesNoFile extensions to check (e.g., [".js", ".md"])
syntaxAwareNoEnable syntax-aware parsing for code files

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool's function but doesn't describe what it returns (e.g., a list of errors, a summary report), error handling, performance implications, or side effects like logging or resource usage. This is inadequate for a tool with 5 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for its complexity, with every word contributing to understanding the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain the return value, error conditions, or behavioral nuances like how it handles different file types or large folders. The agent lacks critical context for effective use without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema fully documents all 5 parameters with clear descriptions. The description adds no additional parameter information beyond implying folder-based operation, which is already covered by the 'folderPath' parameter. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('check spelling') and target ('all files in a folder'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'check_file' or 'check_spelling', which likely perform similar functions on different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'check_file' or 'check_spelling'. It lacks context about prerequisites, exclusions, or comparisons with sibling tools, leaving the agent to infer usage based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_spellingC

Check spelling in the provided text and return misspellings with suggestions

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe text to check for spelling errors
languageNoLanguage code (e.g., en-US, es, fr, de, pt)en-US
includeLineNumbersNoWhether to include line and column numbers for each misspelling

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool returns misspellings with suggestions but lacks details on format, error handling, rate limits, or authentication needs. For a tool with zero annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose and outcome. Every word earns its place, with no redundancy or unnecessary elaboration, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a spelling-check tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like response format, error cases, or how suggestions are generated, leaving gaps for the agent to operate effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, meaning all parameters are documented in the schema. The description doesn't add any semantic details beyond what the schema provides (e.g., it doesn't explain how 'language' affects checking or what 'includeLineNumbers' entails). With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Check spelling in the provided text and return misspellings with suggestions.' It specifies the verb ('check'), resource ('spelling in the provided text'), and outcome ('return misspellings with suggestions'). However, it doesn't explicitly differentiate from siblings like 'check_file' or 'is_correct', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings such as 'check_file' for file-based spelling checks or 'is_correct' for simple correctness verification. Without any context on usage scenarios or exclusions, the agent must infer based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_suggestionsC

Get spelling suggestions for a word

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYesThe word to get suggestions for
languageNoLanguage code (e.g., en-US, es, fr, de, pt)en-US
limitNoMaximum number of suggestions to return

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get spelling suggestions') but doesn't cover aspects like whether this is a read-only operation, potential rate limits, authentication needs, or what the output format might be (e.g., list of strings). For a tool with zero annotation coverage, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded with a single, clear sentence: 'Get spelling suggestions for a word'. Every word earns its place, making it easy to parse without unnecessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks information on behavioral traits, usage context relative to siblings, and output expectations, which are crucial for an AI agent to invoke it correctly without structured support.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter semantics beyond what the input schema provides. Since schema description coverage is 100%, the baseline score is 3. The schema already documents 'word', 'language', and 'limit' with descriptions and defaults, so the description doesn't need to compensate but also doesn't add extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get spelling suggestions for a word' specifies the verb ('Get') and resource ('spelling suggestions'), making it immediately understandable. However, it doesn't differentiate from sibling tools like 'check_spelling' or 'is_correct', which likely have related but distinct functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With sibling tools such as 'check_spelling' and 'is_correct', there's no indication of whether this tool is for correction, verification, or other contexts, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

is_correctA

Check if a single word is spelled correctly

ParametersJSON Schema
NameRequiredDescriptionDefault
wordYesThe word to check
languageNoLanguage code (e.g., en-US, es, fr, de, pt)en-US

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the tool's function but lacks details on error handling, rate limits, authentication needs, or response format. This is a significant gap for a tool with no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste, clearly front-loaded with the tool's purpose. Every word earns its place, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., boolean, error details) or behavioral aspects like performance or limitations, leaving gaps for an AI agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond implying the 'word' parameter is for spelling checks, but does not explain parameter interactions or usage nuances. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('a single word is spelled correctly'), distinguishing it from siblings like 'check_file', 'check_folder', and 'get_suggestions' which handle different scopes or outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for single-word spelling checks, providing clear context, but does not explicitly state when to use alternatives like 'check_file' for files or 'get_suggestions' for corrections. No exclusions or detailed comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_languagesB

List all available languages for spell checking

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions listing languages but doesn't describe the return format (e.g., list of strings, JSON objects), pagination, rate limits, or error conditions. This leaves significant gaps for a tool that presumably returns data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema), the description is minimal but adequate for basic understanding. However, without annotations or output schema, it lacks details on return format, error handling, or behavioral traits, which are important for an AI agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't discuss parameters, making it complete in this regard. A baseline of 4 is applied for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('all available languages for spell checking'), making the purpose immediately understandable. It doesn't differentiate from sibling tools like 'check_spelling' or 'get_suggestions', but the core function is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'check_spelling' or 'get_suggestions'. It states what the tool does but offers no context about prerequisites, typical use cases, or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: dictionary management (add_to_dictionary), file/folder checking (check_file, check_folder), text checking (check_spelling), word-level operations (get_suggestions, is_correct), and configuration (list_languages). The descriptions make it easy to differentiate between checking text vs. files vs. folders vs. single words.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., add_to_dictionary, check_spelling, get_suggestions, list_languages). The verbs are clear and descriptive (add, check, get, is, list), and the snake_case style is applied uniformly throughout the set without any deviations.

Tool Count5/5

With 7 tools, this server is well-scoped for a spell-checking domain. Each tool earns its place by covering distinct aspects: dictionary management, text/file checking, suggestions, correctness verification, and language support. The count is neither too thin nor bloated, fitting typical use cases effectively.

Completeness4/5

The tool set provides comprehensive coverage for core spell-checking workflows, including checking text/files/folders, getting suggestions, verifying correctness, managing dictionaries, and listing languages. A minor gap is the lack of tools for removing words from the dictionary or managing language settings, but agents can work around this with the existing tools.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables fast semantic code search and analysis across 15+ programming languages. Supports searching for functions and classes, tracing code usage, detecting syntax errors, and analyzing code quality and structure.
    34
    33
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Offline spell check and BYOK grammar checking for AI assistants. 100% offline spell check via nspell (zero tokens, zero API calls). BYOK grammar checking with your own Gemini, OpenAI, or Claude API key. Works with Claude Desktop, Cursor, ChatGPT, and any MCP-compatible tool. 8 languages supported.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/morahan/SpellChecker-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server