Teletype MCP
by shaekhx
README.md
# Teletype MCP
Локальный MCP-сервер для управления публикациями на `teletype.in`. Он запускается на компьютере пользователя и не требует Vercel, другого хостинга или постоянно работающего внешнего сервера.
## Как это работает
```text
ChatGPT / Claude / Cursor / другой MCP-клиент
│ stdio
▼
локальный server.js
│ HTTPS
▼
teletype.in
```
Сервер работает только пока запущен MCP-клиент. Токены и настройки хранятся в локальном `.env` и не отправляются в GitHub.
## Два режима
- `DRAFT_ONLY` — агент может создавать и редактировать только скрытые материалы. Открытая публикация заблокирована кодом.
- `AUTO_PUBLISH` — агент может создать материал и сразу опубликовать его открыто.
По умолчанию используется `DRAFT_ONLY`.
## Установка для Windows — рекомендуемый вариант
Нужен Node.js 20 или новее.
1. Установи Node.js 20+ с официального сайта: https://nodejs.org/
2. Скачай репозиторий через **Code → Download ZIP** или клонируй его через Git.
3. Распакуй архив и открой папку `teletype-mcp`.
4. Дважды запусти файл **`install.cmd`**.
5. Установщик проверит Node.js, установит зависимости, задаст вопросы для `.env` и создаст файлы запуска.
Если Windows показывает предупреждение SmartScreen, выбери «Подробнее → Выполнить в любом случае»: скрипт работает только внутри папки проекта и не отправляет секреты наружу.
### Если запускаешь из PowerShell
```powershell
.install.ps1
```
Если PowerShell блокирует `.ps1`, используй `install.cmd` или выполни:
```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.install.ps1
```
### Ручной вариант
```powershell
npm.cmd install
node setup.mjs
```
На macOS/Linux:
```bash
chmod +x install.sh
./install.sh
```
Установщик создаёт `.env`, `mcp-config.json`, `start-teletype-mcp.cmd`, `start-teletype-mcp.ps1` и, на macOS/Linux, `start-teletype-mcp.sh`. Реальные значения `.env` остаются только на компьютере пользователя.
## Запуск после установки
На Windows просто запусти **`start-teletype-mcp.cmd`** двойным щелчком. Для PowerShell:
```powershell
.\start-teletype-mcp.ps1
```
В macOS/Linux запусти `./start-teletype-mcp.sh`. Пустое окно терминала — нормальное поведение: сервер ждёт команды от MCP-клиента. Не закрывай его, если клиент не запускает сервер самостоятельно.
## Подключение к MCP-клиенту
Установщик создаёт файл `mcp-config.json` с уже подставленными абсолютными путями. Скопируй его содержимое в конфигурацию MCP-клиента, который поддерживает локальные серверы через `stdio`:
```json
{
"mcpServers": {
"teletype": {
"command": "C:/Program Files/nodejs/node.exe",
"args": ["C:/путь/к/teletype-mcp/server.js"]
}
}
}
```
На Windows укажи полный путь к `server.js`. На macOS/Linux пример выглядит так:
```json
{
"mcpServers": {
"teletype": {
"command": "node",
"args": ["/полный/путь/к/teletype-mcp/server.js"]
}
}
}
```
После перезапуска MCP-клиента появятся инструменты `check_connection`, `get_profile`, `create_article`, `update_article`, `publish_article`, `list_articles` и `get_article`. Первой командой попроси агента выполнить `check_connection`.
Важно: не каждый веб-чат поддерживает подключение локального `stdio` MCP. Если в ChatGPT нет раздела для локальных MCP-серверов, используй MCP-клиент с такой поддержкой, например Claude Desktop, Cursor или другой совместимый клиент. Сам MCP при этом уже работает локально и не зависит от Vercel.
## Безопасность
Не добавляй в GitHub, сообщения или Notion:
- токены, cookies, session ID и CSRF;
- содержимое `.env`;
- личные URL и идентификаторы аккаунта;
- логи с приватными данными.
Перед включением `AUTO_PUBLISH` рекомендуется проверить работу в `DRAFT_ONLY`.
## Проверка
```bash
npm run check
npm test
```
В Windows PowerShell используй `npm.cmd run check` и `npm.cmd test`, если команда `npm` блокируется политикой выполнения сценариев.
## Частые ошибки
### `npm.ps1 cannot be loaded` / выполнение сценариев отключено
Это ограничение PowerShell, а не ошибка проекта. Используй `npm.cmd ...`, запусти `install.cmd` или временно разреши скрипты только для текущего окна:
```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
```
### `node is not recognized`
Node.js не установлен или PowerShell открыт до его установки. Установи Node.js 20+, закрой все окна терминала и открой новое.
### MCP подключился, но `check_connection` выдаёт 401/403
Проверь локальный `.env`: токен, `TELETYPE_CLIENT_ID`, `TELETYPE_SESSION_ID`, `TELETYPE_LID` и `TELETYPE_CSRF` должны относиться к одной актуальной сессии Teletype. Не отправляй их в чат.
### `TELETYPE_BLOG_ID` не задан
Заполни идентификатор блога в `.env` или передай `blog_id` инструменту MCP. Пустой `TELETYPE_BLOG_URI` допустим.
### Агент не видит инструменты
Проверь путь в `mcp-config.json`, перезапусти MCP-клиент и убедись, что используется полный путь к `node.exe` и `server.js`. Локальный сервер должен запускаться из папки проекта.
### Статья создаётся скрытой
Это ожидаемо в `DRAFT_ONLY`. Для открытой автопубликации повторно запусти `setup.mjs` и выбери режим 2, но сначала протестируй соединение и создание скрытой статьи.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing