mcp-grammar-checker
mcp-grammar-checker
Небольшой MCP сервер, который предоставляет проверку грамматики и стиля LanguageTool как инструмент, чтобы MCP-клиент (Claude Code, Claude Desktop или любой другой MCP-совместимый хост) мог напрямую проверять текст на проблемы.
Зачем
Создан для того, чтобы дать ИИ-ассистенту по кодингу реальный, основанный на инструментах способ проверки грамматики/стиля — а не полагаться только на собственное суждение модели — а также для практического изучения MCP для приложения Solution Architect AI.
Related MCP server: estonian-mcp
Примечание о процессе
Сначала создан вручную (напрямую с официальным SDK mcp, изучая его текущий API путем осмотра установленного пакета, а не следуя учебнику). Позже пересобран по руководству официального навыка Anthropic mcp-server-dev:build-mcp-server, который подтвердил выбор развертывания (локальный stdio — это личный инструмент для одного пользователя, не предназначенный для распространения), но изменил фреймворк: он рекомендует FastMCP 3.x (пакет fastmcp на PyPI, автор jlowin) для Python-серверов, а не замороженный FastMCP 1.0, встроенный в SDK mcp. Этот репозиторий теперь отражает этот второй, направляемый проход.
Инструмент
check_grammar(text: str, language: str = "de-DE") -> str
Проверяет заданный текст с помощью публичного API LanguageTool и возвращает отформатированный список найденных проблем (сообщение, предлагаемые замены, окружающий контекст) или подтверждение, что проблемы не найдены.
Установка
Требуется Python 3.12+ и uv.
git clone <this-repo>
cd mcp-grammar-checker
uv syncАвтономный запуск
uv run python server.pyСервер общается через stdio и ожидает запуска MCP-клиентом, а не интерактивного запуска.
Использование с Claude Code / Claude Desktop
Добавьте в ваш MCP-конфиг (например, .claude/settings.json или файл конфигурации Claude Desktop):
{
"mcpServers": {
"grammar-checker": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/mcp-grammar-checker", "python", "server.py"]
}
}
}Перезапустите клиент, и инструмент check_grammar станет доступен.
Примечания
Использует публичный API LanguageTool (
api.languagetool.org), который имеет ограничение по частоте запросов. Для более интенсивного использования LanguageTool можно развернуть самостоятельно.Поддерживает любой язык, который поддерживает LanguageTool (например,
en-US,de-DE,fr) через параметрlanguage.
Available Tools
1 toolcheck_grammarB
Check text for grammar, spelling, and style issues using LanguageTool.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to check. | |
| language | No | Language code, e.g. "de-DE", "en-US". Defaults to "de-DE". | de-DE |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only names the check types and the backend; it does not disclose behavior such as whether the query text is transmitted to an external service (LanguageTool), whether there are length limits, how the result body is structured beyond the output schema, or what happens on an unsupported language. For an unannotated tool this is a meaningful 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?
A single declarative sentence, front-loaded with the verb and object, that wastes no words. It names the three issue categories and the backend in a compact way. Properly sized for the tool's simplicity.
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?
The output schema covers return values and the input schema fully documents parameters, so those are handled. But with no annotations, the description omits usage guidance, external-service disclosure, and any operational limits. Adequate for a simple two-parameter checker, yet with clear gaps around behavioral context.
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 both 'text' and 'language' are already documented in the schema. The description adds the type-of-issues context (grammar, spelling, style) but does not add parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate given the 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?
States a specific verb ('Check'), resource ('text'), and the range of issues covered (grammar, spelling, style), with a named backend ('LanguageTool'). It is clear what the tool does. With no sibling tools to differentiate against, it cannot distinguish itself further, so it stops short of 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 implies usage — the agent uses this tool whenever text needs a language quality check — but it provides no explicit context about when to use it versus alternatives, nor any exclusions or prerequisites. No siblings exist, so the routing burden is low, but the guidance is still only implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
check_grammar
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of ambiguity or misselection. The purpose is clearly singular and distinct.
There is only one tool, so the naming is trivially consistent. The verb-noun pattern ('check_grammar') is clear and follows a predictable convention.
A single tool feels thin for a server, though the scope is narrow (grammar checking). It is borderline per the calibration, likely sufficient for its stated purpose but minimal.
The tool covers grammar, spelling, and style checking, which appears to be the entire domain. There are no obvious missing operations for a grammar-checking service.
Maintenance
Related MCP Connectors
MCP server for Speech-to-Text
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for Text-to-Speech
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGrammar Fix AI - MCP server providing AI-powered tools and automation by MEOK AI Labs4 npm56 PyPIMIT
- AlicenseAqualityAmaintenanceAn MCP server that integrates EstNLTK to provide Estonian language tools (morphology, spell-check, synonyms, etc.) for AI agents, enabling correct Estonian text processing and generation.2825Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server offering text analysis tools for writing improvement, including spellcheck, readability, keyword analysis, passive voice detection, and AI-generated content detection.10MIT
- FlicenseNot gradedqualityDmaintenanceA professional MCP server for analyzing content against the official Microsoft Writing Style Guide, enabling style, grammar, terminology, and accessibility checks via AI tools like VS Code and GitHub Copilot.1-