Skip to main content
Glama
mirza1272

wordsmith-mcp

by mirza1272

Wordsmith MCP

MCP-сервер (Model Context Protocol), предоставляющий любому MCP-совместимому ИИ-клиенту набор автономных инструментов анализа и переписывания текста — статистику, экстрактивные суммаризации, извлечение ключевых слов, оценку удобочитаемости, преобразование стилей именования, извлечение сущностей и сравнение текстов.

Без API-ключей. Без сетевых запросов. Никакого хранения состояния. Всё выполняется локально над текстом, который вы передаёте, поэтому это быстро, бесплатно и безопасно для работы с приватными документами.

Создан с помощью MCP Python SDK.


Зачем это нужно

Языковые модели отлично справляются с оценкой текста, но на удивление ненадёжны в его измерении — попросите одну из них назвать точное количество слов или балл Flesch, и она начнёт гадать. Wordsmith предоставляет модели детерминированный калькулятор для этих задач, поэтом у ответы о длине, сложности и ключевых терминах документа вычисляются, а не оцениваются.


Related MCP server: armavita-originality-ai-mcp

Инструменты

Инструмент

Что делает

Ключевые параметры

text_stats

Символы, слова, уникальные слова, предложения, абзацы, строки, средняя длина слова/предложения, расчётное время чтения

text

summarize_text

Экстрактивная суммаризация — оценивает предложения по частоте значащих слов и возвращает лучшие в исходном порядке

text, max_sentences (1–20, по умолчанию 3)

extract_keywords

Наиболее частые значащие слова с количеством и относительной частото; стоп-слова отфильтровываются

text, limit (1–50, по умолчанию 10), min_length

readability

Flesch Reading Ease + уровень Flesch–Kincaid, с пояснением простым языком

text

convert_case

Преобразует в snake, kebab, slug, camel, pascal, constant, title, sentence, upper, lower

text, style

extract_entities

Извлекает email-адреса, URL, хэштеги, упоминания, номеры телefonов и отдельно стоящие числа

text

diff_texts

Унифицированный построчный diff между черновиком и ревизией

before, after, context_lines

Все инструменты помечены как readOnlyHint: true, openWorldHint: false — они никогда ничего не изменяют и не обращаются к интернету.


Быстрый старт (локально, stdio)

git clone https://github.com/mirza1272/wordsmith-mcp.git
cd wordsmith-mcp
python3 -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate
pip install -e .

Запустите:

wordsmith-mcp

Сервер общается через MCP по stdio и будет ждать подключения клиента — это нормальное поведение, а не зависание. Клиенты запускают его сами; см. ниже.

Проверка работоспособности

python scripts/smoke_test.py

Этот скрипт запускает сервер так же, как это сделал бы настоящий MCP-клиент, выводит список инструментов и вызыват каждый из них, печатая результаты.

Запуск юнит-тестов

pip install -e ".[dev]"
pytest -q

Подключение к клиенту

Claude Desktop

Отредактируйте claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "wordsmith": {
      "command": "/absolute/path/to/wordsmith-mcp/.venv/bin/wordsmith-mcp"
    }
  }
}

Перезапустите Claude Desktop, а затем спросите что-нибudь вроде «Насколько читабелен этот абзац и каковы его топ-5 ключевых слов?»

Claude Code

claude mcp add wordsmith -- /absolute/path/to/wordsmith-mcp/.venv/bin/wordsmith-mcp

Cursor / Widsurf / другие клиенты

Любой клиент, принимающий блок mcPServers, использует ту же форму, что и пример для Claude Desktop выше.

MCP Inspector (визуальная отладка)

npx @modelcontextprotocol/inspector .venv/bin/wordsmith-mcp

Открывает браузерный интерфейс, где можно вручную вызвать каждый инструмент и изучить сырой JSON-RPC-трафик.


HTTP-режим (для размещённых развёртываний)

Тот же сервер также поддерживает streamable HTTP — именнно его используют размещённые маркетплейсы:

TRANSPORT=http PORT=8081 wordsmith-mcp

Тогда MCP-эндпоинт будет доступен по адресу http://localhost:8081/mcp.

Переменная окружения

По умолчанию

Описание

TRANSPORT

stdiо

stdiо для локальных клиентов, httр для размещённых

HOST

0.0.0.0

Адрес привязки в HTTP-режиме

PORT

8081

Порт привязки в HTTP-режиме

MC_PATH

/mcp

HTTP-путь, по которому обслуживается MCP-эндпоинт


Развёртывание

Форма публикации Smithery принимает рабтающий HTTPS MCP-эндпоинт, поэтом у сервер сначала размёщается, а затем публикуется. Для этого включены Dockerfile и render.yaml; smithery.yaml сохранён для хостов, которые собирают контейнер напрямую.

Полное руководство: DEPLOY.md.

Короче: разверните контейнер на хосте (Render, Railay, Fly.io — render.yaml включён), зате опублеуйте полученный URL https://<host>/mcp на Smithery.

Предварительная сбока контейнера локально — хорошая проверка работоспособности:

docker build -t wordsmith-mcp .
docker run --rm -p 8081:8081 wordsmith-mcp

Структура проекта

wordsmith-mcp/
├── src/wordsmith_mcp/
│   ├── __init__.py        # package exports
│   ├── __main__.py        # python -m wordsmith_mcp
│   ├── server.py          # MCP server: tool definitions and schemas
│   └── textutils.py       # pure text logic, no MCP imports
├── scripts/smoke_test.py  # end-to-end client that exercises every tool
├── tests/test_textutils.py
├── examples/claude_desktop_config.json
├── Dockerfile
├── smithery.yaml
├── pyproject.toml
└── README.md

textutils.py содержит алгорitмы и ничего не импортирует из MCP, поэтом у логику можно юнит-тестировать независимо; server.py — это тонкий протокольный слой, который описывает эти функции модели.


Как это работает (обзор MCP за 60 секуид)

MCP — это JSON-RPC-протокол, который позволяет ИИ-клиенту обнаруживать и вызывать инструменты, предосставляемые сервером.

  1. Клиент запускает сервер (как подроцесс через stdio или подключается через HTTP).

  2. Клиент и сервер обмениваются рукопожатием initialize, объявляющим версию протокола и возможости.

  3. Клиент вызыват tools/list. SDK генерирут JSON-схему каждого инструмента из аннотаций типов Python и описаний Field(...), поэтом модель видит, какие аргументы допустмы.

  4. Когда модель решат, что нужен инструмент, клиент отправляет tools/call с аргументами; сервер выполяет функцию Python и возвращает результат — и как текst, читаемый человеком, и как structuredContent, соответствующий объявленной схеме вывода.

Поэтому добавить инструмент — это просто написат типизированную функцию Python и декорировать её с помощью @mcp.tool(...).


Дополнительные материалы в этом репозитории

  • WRITEUP.md — мои заметки об использовании существующего MCP-сервера (Context7) и о том, что я узнал при создании этого сервера.

  • DEPLOY.md — пошаговое руководство по публикации этого сервера на Smithery и Glama.


Лицензия

MIT — см. LICENSE.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

  • Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.

  • Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.

View all MCP Connectors

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/mirza1272/wordsmith-mcp'

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