SpellChecker MCP Server
Provides syntax-aware spell-checking for JavaScript files, allowing the server to check human-readable text in comments and strings while ignoring code syntax.
Allows for spell-checking within Markdown files while automatically ignoring code blocks, inline code, and URLs.
Provides spell-checking capabilities for MDX files, intelligently handling both Markdown text and JSX components.
Supports syntax-aware spell-checking for Python source code, focusing on comments and docstrings while ignoring programming keywords.
Enables intelligent spell-checking for TypeScript and TSX files, specifically parsing comments, documentation, and JSX content.
Enables spell-checking for XML and HTML files, focusing on text content and comments while ignoring tags and attributes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SpellChecker MCP Servercheck the spelling in src/utils.ts and suggest fixes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository:
git clone https://github.com/yourusername/spellchecker-mcp-server.git
cd spellchecker-mcp-serverInstall dependencies and build:
yarn install
yarn buildThe 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:
Environment variable (recommended for Claude Desktop):
SPELLCHECKER_LANGUAGES="en-US,es,fr" node dist/index.jsConfiguration file:
SPELLCHECKER_CONFIG="/path/to/spellchecker.config.json" node dist/index.jsEdit the default in
src/config.tsbefore 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.jsAvailable Tools
check_spelling
Checks text for spelling errors and returns misspellings with suggestions.
Parameters:
text(required): The text to checklanguage(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 checklanguage(optional): Language code (default: "en-US")
get_suggestions
Gets spelling suggestions for a word.
Parameters:
word(required): The word to get suggestions forlanguage(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 addlanguage(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 checklanguage(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 checklanguage(optional): Language code (default: "en-US")recursive(optional): Check subfolders (default: true)fileTypes(optional): Array of file extensions to checksyntaxAware(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- Spanishfr- Frenchde- Germanpt- Portuguesept-BR- Portuguese (Brazil)it- Italiannl- Dutchpl- Polishru- Russianuk- Ukrainiansv- Swedishda- Danishnb- 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 typecheckUsing Just Commands
If you have just installed:
# Show available commands
just
# Fresh install
just fresh
# Run development server
just dev
# Update dictionaries
just dictionariesArchitecture
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.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Dictionary files from wooorm/dictionaries
Built on the Model Context Protocol
Troubleshooting
Dictionaries not loading
If you see "No dictionaries loaded" error:
yarn run postinstall
# or
just dictionariesServer not starting
Ensure you've built the project:
yarn buildLanguage not available
Check available languages with the list_languages tool or ensure the dictionary files exist in the dictionaries/ folder.
Available Tools
7 toolsadd_to_dictionaryC
Add a word to the personal dictionary
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | The word to add to the dictionary | |
| language | No | Language code (e.g., en-US, es, fr, de, pt) | en-US |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the file to check | |
| language | No | Language code for spell checking | en-US |
| syntaxAware | No | Enable syntax-aware parsing for code files |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| folderPath | Yes | Path to the folder to check | |
| language | No | Language code for spell checking | en-US |
| recursive | No | Check files recursively in subfolders | |
| fileTypes | No | File extensions to check (e.g., [".js", ".md"]) | |
| syntaxAware | No | Enable syntax-aware parsing for code files |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to check for spelling errors | |
| language | No | Language code (e.g., en-US, es, fr, de, pt) | en-US |
| includeLineNumbers | No | Whether to include line and column numbers for each misspelling |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | The word to get suggestions for | |
| language | No | Language code (e.g., en-US, es, fr, de, pt) | en-US |
| limit | No | Maximum number of suggestions to return |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | The word to check | |
| language | No | Language code (e.g., en-US, es, fr, de, pt) | en-US |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Deep security scans of repos you own from your editor: dependency CVEs, SAST, git-history secrets.
Scan configs, files, or text for leaked secrets and obvious misconfigurations. Nothing stored.
Exact text tools for AI agents: unified diff, patch apply, regex testing, grapheme counting.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables 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.3433GPL 3.0
- FlicenseAqualityDmaintenanceEnables automatic discovery and fast searching of translation files in projects, supporting partial/exact key-value matching with file watching and multiple translation file formats.2
- AlicenseNot gradedqualityCmaintenanceOffline 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
- FlicenseAqualityBmaintenanceL1-aware grammar, style, translation & tone tools with 70 local rules. Zero API keys needed.4
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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