STE Dictionary MCP Server
STE Dictionary MCP Server
MCP-сервер, который проверяет текст на соответствие ASD-STE100 Simple Technical English (STE): какие слова одобрены, какие нет и какое слово STE заменяет каждое нарушение. Работает полностью офлайн на основе статического снимка словаря в data/ — без сетевых обращений во время выполнения. Полный дизайн см. в docs/superpowers/specs/2026-08-21-ste-mcp-design.md.
Установка
pip install -r requirements.txt
python scripts/download_nltk_data.py
pytestИнструменту check_structure нужны два небольших пакета данных NLTK (токенизатор предложений/слов punkt_tab и теггер частей речи averaged_perceptron_tagger_eng — классические статистические модели, не глубокое обучение). Одноразовый запуск python scripts/download_nltk_data.py после установки зависимостей загружает их и удаляет неанглийские языки токенизатора, которые загрузчик NLTK тянет по умолчанию, сокращая занимаемое место на диске до нескольких МБ вместо ~58МБ. Повторный запуск безопасен. Если пропустить этот шаг, check_structure возбуждает RuntimeError, сообщающий, что нужно его выполнить.
Сервер читает свой снимок словаря из переменной окружения STE_DATA_DIR, по умолчанию — ./data (относительно рабочего каталога, в котором запущен сервер). Снимок в data/ включён в этот репозиторий, так что отдельный шаг загрузки не нужен.
Related MCP server: mcp-textstats
Запуск автономно
python -m ste_mcp.serverВзаимодействует по MCP через stdio.
Установка в Claude Code
Зарегистрируйте сервер в CLI Claude Code. Используйте абсолютный путь к вашему интерпретатору Python, если python в вашем PATH не содержит пакет mcp.
Локальная область (доступен только при запуске Claude Code из этого репозитория):
cd /absolute/path/to/ste-dictionary-mcp
claude mcp add --transport stdio --env STE_DATA_DIR=/absolute/path/to/ste-dictionary-mcp/data ste-dictionary -- python -m ste_mcp.serverПользовательская область (доступна из любого каталога). Так как серверы пользовательской области запускаются без этого репозитория в качестве рабочего каталога, оберните запуск в небольшой скрипт, который сначала делает cd в репозиторий, например ~/.claude/ste-launcher.sh:
#!/bin/sh
cd /absolute/path/to/ste-dictionary-mcp
exec python -m ste_mcp.serverЗатем зарегистрируйте его:
chmod +x ~/.claude/ste-launcher.sh
claude mcp add --transport stdio --scope user --env STE_DATA_DIR=/absolute/path/to/ste-dictionary-mcp/data ste-dictionary -- ~/.claude/ste-launcher.shПроверьте с помощью claude mcp list или команды /mcp внутри сеанса.
Конфигурация Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"ste-dictionary": {
"command": "python",
"args": ["-m", "ste_mcp.server"],
"cwd": "/absolute/path/to/ste-dictionary-mcp",
"env": {
"STE_DATA_DIR": "/absolute/path/to/ste-dictionary-mcp/data"
}
}
}
}Инструменты
Инструмент | Назначение |
| Является ли это слово/словосочетание STE и чем оно заменяется? |
| Поиск по документу не-STE, неоднозначных, неизвестных и технических слов с позициями. |
| Сканирование документа на структурные нарушения STE: слишком длинные предложения, пассивный залог, неизъявительное наклонение, кластеры существительных от 4 элементов, слишком длинные абзацы, герундий вместо существительного. |
| Поиск одобренного технического термина или сокращения. |
| Источник словаря, свежесть данных и статистика по покрытию. |
check_word/check_text основаны на списке слов, а не на грамматическом анализаторе: они проверяют лексику, а не структуру предложения. check_structure добавляет лёгкие структурные проверки (через небольшой статистический теггер частей речи, а не полноценный грамматический движок) для тех правил ASD-STE100, которые список слов не способен уловить — см. docstring в ste_mcp/structure.py с точными правилами и их эвристическими ограничениями. Инструмент лишь диагностический (без предложений по переписыванию); за переписывание отвечает агент, использующий эти инструменты.
Некоторые слова имеют одновременно STE-одобренное значение и значение, не отвечающее STE (например, «long» как просто прилагательное отвечает STE, а «as long as»/«no longer» — нет). Для таких слов check_word возвращает status: "ambiguous" (вместо "non_ste") вместе с note, сообщающим вызывающему коду, что нужно проверить, какой смысл применим в контексте, а check_text сообщает о них в отдельном блоке/счётчике итогов ambiguous, а не в non_ste. status: "non_ste" зарезервировано для слов, у которых каждое подходящее совпадение несёт недопустимость STE.# STE Dictionary MCP Server
MCP-сервер, который проверяет текст на соответствие ASD-STE100 Simple Technical English (STE): какие слова одобрены, какие нет, и какое слово STE заменяет каждое нарушение. Работает полностью автономно на базе статического снимка словаря в data/ — без обращения к сети во время выполнения. Полное описание архитектуры: docs/superpowers/specs/2026-08-21-ste-mcp-design.md.
Установка
pip install -r requirements.txt
python scripts/download_nltk_data.py
pytestИнструменту check_structure нужны два небольших пакета данных NLTK (токенизатор предложений/слов punkt_tab и теггер частей речи averaged_perceptron_tagger_eng — классические статистические модели, не глубокое обучение). Однократный запуск python scripts/download_nltk_data.py после установки зависимостей загружает их и убирает неанглийские языки токенизации, которые загрузчик NLTK по умолчанию тянет вместе с пакетом, — это снижает размер на диске с ~58 МБ до пары мегабайт. Запускать скрипт можно повторно. Если пропустить этот шаг, check_structure вызовет RuntimeError с инструкцией выполнить скрипт.
Сервер читает снимок словаря из переменной окружения STE_DATA_DIR, по умолчанию — ./data (относительно рабочего каталога, из которого запущен сервер). Снимок в data/ закоммичен в репозиторий, так что отдельная загрузка не нужна.
Автономный запуск
python -m ste_mcp.serverИспользует MCP через stdio.
Установка в Claude Code
Зарегистрируйте сервер в Claude Code CLI. Если python из вашего PATH не содержит пакет mcp, используйте абсолютный путь к вашему интерпретатору Python.
Локальная область действия (доступен только при запуске Claude Code из этого репозитория):
cd /absolute/path/to/ste-dictionary-mcp
claude mcp add --transport stdio --env STE_DATA_DIR=/absolute/path/to/ste-dictionary-mcp/data ste-dictionary -- python -m ste_mcp.serverОбласть действия пользователя (доступен из любого каталога). Поскольку серверы в области действия пользователя запускаются без этого репозитория в качестве рабочего каталога, оберните запуск в небольшой скрипт, который сначала делает cd в репозиторий, например ~/.claude/ste-launcher.sh:
#!/bin/sh
cd /absolute/path/to/ste-dictionary-mcp
exec python -m ste_mcp.serverЗатем зарегистрируйте его:
chmod +x ~/.claude/ste-launcher.sh
claude mcp add --transport stdio --scope user --env STE_DATA_DIR=/absolute/path/to/ste-dictionary-mcp/data ste-dictionary -- ~/.claude/ste-launcher.shПроверьте через claude mcp list или /mcp в сеансе.
Конфигурация Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"ste-dictionary": {
"command": "python",
"args": ["-m", "ste_mcp.server"],
"cwd": "/absolute/path/to/ste-dictionary-mcp",
"env": {
"STE_DATA_DIR": "/absolute/path/to/ste-dictionary-mcp/data"
}
}
}
}Инструменты
Инструмент | Назначение |
| Является ли это слово или фраза STE, и какая замена предложена? |
| Сканирование документа на не-STE, неоднозначные, неизвестные и технические слова с указанием позиций. |
| Сканирование документа на структурные нарушения STE: слишком длинные предложения, пассивный залог, неизъявительное наклонение, группы существительных из более чем 4 слов, слишком длинные абзацы, герундий в роли существительного. |
| Поиск одобренного технического термина или сокращения. |
| Источник словаря, актуальность данных и статистика покрытия. |
check_word/check_text основаны на списках слов, а не на грамматике: они проверяют лексику, а не структуру предложений. check_structure добавляет лёгкие структурные проверки (через небольшой статистический теггер частей речи, а не полный грамматический движок)для правил ASD-STE100, которые не могут быть охвачены списком слов; точные правила и их эвристические ограничения — в docstring в ste_mcp/structure.py. Инструмент носит только диагностический характер (подсказок для замен нет); ответственность за переписывание лежит на агенте, использующем эти инструменты.
Некоторые слова имеют как одобренное STE значение, так и неодобренные значения (например, "long" в роли простого прилагательного — STE, но "as long as"/"no longer" — нет). Для них check_word возвращает status: "ambiguous" (вместо "non_ste"), а с помощью note указывает проверить, какое значение применимо в контексте, а check_text включает их в отдельный блок/сводку ambiguous, а не non_ste. status: "non_ste" зарезервирован для слов, в которых каждая из соответствующих значений является однозначно не STE.
This server cannot be deployed
Maintenance
Related MCP Connectors
DraftCheck: flags AI-writing patterns in prose with fix hints. Deterministic linter, not a detector.
English readability scores (Flesch, Flesch-Kincaid, Fog, SMOG) and text stats. Text never stored.
Prose linter + AI-slop detector: weasel words, passive voice, hedging, and research-cited AI tells
Scan manuscript text for AI-slop prose patterns before publishing to Amazon KDP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.-
- AlicenseNot gradedqualityBmaintenanceProvides text statistics and readability scores (Flesch Reading Ease, Flesch-Kincaid Grade Level) via offline, keyless tools.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables automated agents and writers to check Norwegian and English prose before sending, returning concrete style findings, revision hints, and verdicts instead of authorship claims, with a no-judgment band, positive quality checks, a private local mode, and phrase-bank memory.MIT
- AlicenseAqualityBmaintenanceEnables deterministic, LLM-free checking of text against a prose editorial standard, returning violations with rule IDs, locations, severity, confidence, and suggested fixes, while also supporting safe fixes and writing measurements.5304 npmMIT