blackmount-nlp-mcp
blackmount-nlp-mcp
NLP для MCP — без тяжелых зависимостей. Создано Blackmount.
45 инструментов для анализа текста в виде сервера FastMCP. Никаких NLTK. Никаких spaCy. Никаких трансформеров. Одна зависимость (mcp[cli]), менее 50 КБ кода NLP, готово к работе за секунды. Требуется Python 3.10+.
Зачем это нужно
blackmount-nlp-mcp | NLTK | spaCy | transformers | |
Размер wheel | 42 КБ | 1.5 МБ | 6 МБ+ (+ модели) | 10 МБ+ (+ модели) |
Прямые зависимости | 1 | много | много | много |
Токенизация | ✅ | ✅ | ✅ | ✅ |
Анализ тональности | ✅ | ✅ | ❌ | ✅ |
Оценка читабельности | ✅ | ❌ | ❌ | ❌ |
Извлечение ключевых слов | ✅ | ✅ | ❌ | ❌ |
Сходство текстов | ✅ | ✅ | ✅ | ✅ |
Определение языка | ✅ (18 языков) | ❌ | ❌ | ❌ |
Все реализовано с нуля на чистом Python — стеммер Портера, TF-IDF, RAKE, расстояние Левенштейна, анализ тональности в стиле VADER, индексы читабельности Флеша / Ганнинга-Фога / Коулмана-Лиау / ARI / SMOG, экстрактивная суммаризация, определение языка — плюс встроенный лексикон тональности из 2000+ слов и список из 500+ стоп-слов, включенные в пакет.
Быстрый старт
pip install blackmount-nlp-mcpClaude Desktop
Добавьте в файл конфигурации:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"nlp": {
"command": "blackmount-nlp-mcp"
}
}
}Cursor
Добавьте в .cursor/mcp.json в корне вашего проекта:
{
"mcpServers": {
"nlp": {
"command": "blackmount-nlp-mcp"
}
}
}Любой MCP-клиент
Сервер работает через stdio. Укажите клиенту команду blackmount-nlp-mcp:
blackmount-nlp-mcpПерезапустите редактор. Все 45 инструментов NLP теперь доступны — просто спросите на естественном языке.
Каталог инструментов
Токенизация (4 инструмента)
Инструмент | Описание | Пример запроса |
| Разбиение текста на слова с учетом сокращений и пунктуации | "Разбей этот абзац на слова" |
| Разбиение на предложения с учетом распространенных аббревиатур | "Раздели этот текст на отдельные предложения" |
| Генерация n-грамм на уровне слов из списка токенов | "Сгенерируй биграммы из этих токенов" |
| Генерация n-грамм на уровне символов | "Получи триграммы символов для этого слова" |
Читабельность (8 инструментов)
Инструмент | Описание | Пример запроса |
| Оценка легкости чтения 0–100 (выше = легче) | "Рассчитай индекс легкости чтения Флеша" |
| Оценка уровня образования в США | "Для какого уровня образования написан этот текст?" |
| Индекс туманности на основе соотношения сложных слов | "Рассчитай индекс туманности для этого текста" |
| Индекс уровня образования Коулмана-Лиау | "Получи оценку по Коулману-Лиау" |
| Индекс уровня образования ARI | "Какой ARI у этого документа?" |
| Индекс SMOG (рекомендуется для медицинских текстов) | "Рассчитай индекс SMOG для этого документа" |
| Оценка количества слогов в любом слове | "Сколько слогов в слове 'extraordinary'?" |
| Все оценки читабельности в одном вызове с текстовой меткой | "Дай мне полный отчет о читабельности этого текста" |
Анализ тональности (4 инструмента)
Инструмент | Описание | Пример запроса |
| Составная оценка тональности от -1.0 до +1.0 | "Какова тональность этого отзыва клиента?" |
| Возвращает | "Этот отзыв положительный или отрицательный?" |
| Анализ тональности по предложениям | "Покажи мне тональность каждого предложения" |
| Тональность по конкретным темам | "Какова тональность отзывов по теме 'цены'?" |
Извлечение ключевых слов (4 инструмента)
Инструмент | Описание | Пример запроса |
| Ранжирование ключевых слов по TF-IDF в корпусе | "Какие ключевые термины в этих документах?" |
| Алгоритм RAKE — извлечение ключевых фраз | "Извлеки ключевые фразы из этой статьи" |
| Топ слов по частоте, исключая стоп-слова | "Какие слова встречаются в этом тексте чаще всего?" |
| Топ n-грамм фраз по частоте | "Какие фразы из двух слов встречаются чаще всего?" |
Сходство текстов (5 инструментов)
Инструмент | Описание | Пример запроса |
| Пересечение множеств слов, 0–1 | "Насколько похожи эти два абзаца?" |
| Косинусное сходство (мешок слов), 0–1 | "Рассчитай косинусное сходство между этими текстами" |
| Расстояние редактирования Левенштейна | "Сколько правок нужно, чтобы превратить 'kitten' в 'sitting'?" |
| Расстояние редактирования, нормализованное до 0–1 | "Насколько отличаются эти две строки?" |
| Длина наибольшей общей подпоследовательности | "Какова длина LCS этих двух строк?" |
Очистка текста (10 инструментов)
Инструмент | Описание | Пример запроса |
| Удаление 500+ английских стоп-слов | "Удали стоп-слова из этого текста" |
| Удаление всей пунктуации | "Удали пунктуацию" |
| Удаление числовых токенов | "Удали все числа из этого текста" |
| Удаление URL-адресов | "Очисти от URL-адресов" |
| Удаление адресов электронной почты | "Удали email-адреса из этого текста" |
| Удаление HTML-тегов | "Удали HTML из этого контента" |
| Сжатие и обрезка пробелов | "Нормализуй пробелы" |
| Приведение к нижнему регистру | "Преобразуй это в нижний регистр" |
| Стеммер Портера (чистый Python, без NLTK) | "Примени стемминг к слову 'running'" |
| Настраиваемая многошаговая очистка в одном вызове | "Очисти этот текст: удали HTML, URL и стоп-слова" |
Детекция (8 инструментов)
Инструмент | Описание | Пример запроса |
| Определение языка из 18 поддерживаемых | "На каком языке написан этот текст?" |
| Определение письменности: ASCII, Latin, Cyrillic, CJK, Arabic | "Какая письменность используется в этом тексте?" |
| Оценка уверенности, что текст на английском, 0–1 | "Этот текст на английском?" |
| Количество слов | "Сколько слов в этом тексте?" |
| Количество предложений | "Посчитай предложения" |
| Количество абзацов | "Сколько здесь абзацев?" |
| Средняя длина слова в символах | "Какова средняя длина слова?" |
| Средняя длина предложения в словах | "Какова средняя длина предложений?" |
Суммаризация (2 инструмента)
Инструмент | Описание | Пример запроса |
| Выбор N наиболее значимых предложений из документа | "Суммаризируй эту статью в 3 предложениях" |
| Полная статистика документа: слова, читабельность, язык, время чтения | "Дай мне статистический профиль этого текста" |
Использование в качестве библиотеки
Подмодули можно импортировать напрямую — MCP-сервер не требуется:
from blackmount_nlp_mcp.sentiment import sentiment_score, sentiment_label
from blackmount_nlp_mcp.readability import reading_level
from blackmount_nlp_mcp.keywords import rake_keywords
text = "This product is absolutely amazing! The quality is excellent."
print(sentiment_score(text))
# 0.9285
print(sentiment_label(text))
# 'positive'
print(reading_level(text))
# {'grade_level': 12.39, 'label': 'college',
# 'flesch_reading_ease': 14.27, 'flesch_kincaid_grade': 12.39,
# 'gunning_fog': 19.58, 'coleman_liau': 10.94,
# 'automated_readability': 7.51, 'smog_grade': 11.21}
print(rake_keywords(text))
# [{'phrase': 'absolutely amazing', 'score': 4.0},
# {'phrase': 'product', 'score': 1.0},
# {'phrase': 'quality', 'score': 1.0},
# {'phrase': 'excellent', 'score': 1.0}]Разработка
git clone https://github.com/BlackMount-ai/blackmount-nlp-mcp
cd blackmount-nlp-mcp
pip install -e .
pytest tests/ -vЭкосистема Blackmount
blackmount-nlp-mcp создано Blackmount — инструменты для тех, кто работает с ИИ.
blackmount-mcp — память браузера, поиск по чатам ИИ и аналитика сессий в виде MCP-сервера. Используйте его вместе с blackmount-nlp-mcp для анализа сохраненных диалогов: извлекайте ключевые слова из истории чатов, оценивайте читабельность ответов ИИ, отслеживайте тренды тональности в сессиях.
app.blackmount.ai — полная платформа Blackmount. Ищите, систематизируйте и анализируйте все, что создают ваши ИИ-инструменты.
Лицензия
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/BlackMount-ai/blackmount-nlp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server