Etincel
Étincel: находит признаки AI-текста в прозе и помогает писать своим голосом
Что умеет
- Проверять текст на признаки AI-стиля с указанием мест и серьёзности
- Обучать голосовой профиль на образцах собственных текстов
- Сверять черновик с сохранённым голосом и с повторами автора
- Хранить и выдавать гайд по стилю перед началом работы
- Настраивать списки запрещённых и разрешённых слов
Какие данные видит
Работает локально без сети в части аудита; сохраняет обучённые голосовые профили на стороне установки, без аккаунта.
Нужен ли аккаунт
Не нужен: сервер работает без входа
Étincel — MCP-сервер для Claude, Cursor и других клиентов, который проверяет черновики на приметы машинного текста и помогает выработать собственный стиль письма. Аудит работает по правилам и статистике ритма на локальных данных, без обращения к другой модели. Можно обучить голос на своих текстах и получать оценку соответствия ему.
Как подключить
Как подключить Etincel к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://etincel.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Etincel к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://etincel.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Etincel к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://etincel.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (20)
Технические названия из tools/list. Нужны только разработчикам.
| list_styles | List every available style: premade emotional-tone presets plus any voices this installer has trained from their own samples. |
| get_style_guide | Fetch the full drafting guide for one style (a preset id like 'direct-warm', or the id of a trained voice). |
| train_style | Analyze one or more of the installer's own writing samples and persist a trained voice profile under that name, scoped to this installer only. Call again with the same name (or the voice's id, from list_styles, if it's been renamed) and new samples to add more training data; the new samples blend into its existing measurements rather than replacing them. |
| create_style_from_dials | Build a style profile from explicit dial values instead of writing samples: 3 persona dials (formality, warmth, directness, 0-10) plus 8 mechanical dials (0-100, including entropy: how much AI-typical structural regularity to break) mapping onto the same measurements train_style extracts from real text. Call again with the same name to overwrite. |
| update_style | Rename a trained voice or adjust its dials in place, keeping its id stable, for this installer only. Persona dials always apply; mechanical dials only take effect if the voice has no writing samples. |
| fork_style | Copy a style into a new trained voice for this installer, seeded with its persona dials and drafting guide. Two kinds of source: a premade preset (e.g. 'pr-review', 'linkedin-post'), or another installer's style published publicly on the gallery, addressed as "handle/slug" (e.g. "jpleblanc/blunt-memo", the same address shown on its public page at etincel.ai/v/handle/slug). The fork is then a normal trained voice: retrain it with train_style, or hand-tune it with update_style, without touching the original. |
| delete_style | Permanently delete a trained voice profile by id, for this installer only. |
| set_default_style | Set which style (preset or trained voice) this installer defaults to. |
| check_voice_match | Compare a piece of drafted text's measured sentence/paragraph rhythm and mechanics against a trained or custom voice's baseline. Returns a verdict ('on rhythm' / 'some drift' / 'off rhythm'), a match score, specific dials that drifted with a plain-language note for each, and a caveat you should relay alongside the verdict: this is a rhythm/mechanics measurement, not an authorship or AI-detection check, so text merely shaped like the voice can come back 'on rhythm' regardless of who wrote it. Confidence comes back "low" on short input; treat a low-confidence verdict as provisional. Only works against trained/custom voices for this installer, not bare presets; fork_style a preset first if you want to check against one. |
| check_self_repetition | Compare a piece of drafted text against a trained voice's own recent training samples for self-repetition: the same opening words, or a characteristic phrase, recurring across several past pieces. Not an AI-writing-tells check; see audit_text for that. Sample history isn't tracked for hosted/remote connections yet, so this currently always reports zero history here; use a local install for this tool to be useful. |
| audit_text | Deterministically scan a piece of non-fiction text for common AI-writing tells, plus this installer's own banned/custom word lists from add_banned_word/add_custom_word (the 'global' list, merged with a style's own list if styleId is given). Returns a tier, score, specific findings, and a strengths signal (specificity, concrete-vs-abstract ratio, sentence-rhythm variation). Weigh strengths against findings so fixes don't flatten the prose. Never a silent rewrite. |
| contribute_corpus_sample | Opt-in only, never call this without the installer explicitly agreeing first: silently contributing a draft is exactly the kind of thing this product exists to not do. Saves a piece of text, labeled human-written or etincel-assisted, toward improving detection for everyone, including the Etincel-processed tier that keeps this tool honest about its own output. Ask after an audit_text call, in the installer's own words ('want to contribute this draft to the corpus?'), and only call this if they say yes. Revocable any time from the Material settings page. |
| add_banned_word | Add a term to this installer's own banned-words list, checked by audit_text alongside the built-in AI-tell corpus. Without styleId, this adds to the global list, which applies to every style. With styleId, it only applies when auditing against that specific style, merged on top of the global list. Use this when the user says something like 'add [word] to my banned words list' or 'never let me use [word] again'. |
| remove_banned_word | Remove a term from this installer's banned-words list (global, or a specific style's list). |
| add_custom_word | Add a term to this installer's own allowed-words list, so audit_text never flags it even if it matches the built-in corpus or a banned word: the 'corporate dictionary' case, e.g. an org's own acronyms or house terms. Without styleId, this adds to the global list. With styleId, it only applies to that specific style, merged on top of the global list. Use this when the user says something like 'add [word] to my custom words list' or 'stop flagging [word], it's one of ours'. |
| remove_custom_word | Remove a term from this installer's allowed-words list (global, or a specific style's list). |
| list_dictionary | Show the banned-words and custom (allowed) words lists for a scope: the global list (default), or a specific style's list, for this installer. For a style, also returns the effective merged list (that style's words plus the global ones): what audit_text actually applies when that style is selected. |
| set_style_instructions | Save free-text drafting rules layered on top of a style's voice, for this installer: required elements ('always include a CTA'), audience notes, forbidden topics, format constraints, anything that isn't about sentence rhythm or tone. Overwrites whatever was saved for this scope. Without styleId, this sets the global instructions, which apply to every style. With styleId, it only applies to that specific style, merged after the global instructions (get_style_guide returns the merged result automatically). Use this when the user says something like 'for this style, always end with a CTA' or 'remember: never mention pricing in emails'. |
| clear_style_instructions | Remove the saved instructions for a scope (global, or a specific style), for this installer. |
| get_style_instructions | Show the saved instructions for a scope, for this installer: the global instructions (default), or a specific style's own. For a style, also returns the effective merged text (global plus that style's own) that get_style_guide already folds in automatically. |