mcp-hey
mcp-hey
Локальный сервер протокола контекста модели (MCP), который предоставляет Claude доступ на чтение/запись к вашему почтовому ящику Hey.com через реверс-инжиниринг веб-API.
mcp-hey состоит из двух частей: MCP-сервера на Bun/TypeScript, который предоставляет инструменты Hey через stdio, и небольшого вспомогательного скрипта на Python, использующего системный webview для захвата сессионных cookie при входе. Все работает локально — никакого облачного ретранслятора, никаких сохраненных учетных данных, только сессионные cookie на диске.
Внимание — неофициальный API. Hey.com не публикует публичный API; mcp-hey использует реверс-инжиниринг веб-эндпоинтов и имитирует HTTP-запросы браузера. Все может сломаться без предупреждения. Текущая задокументированная поверхность находится в
docs/API.md.
Возможности
Чтение писем из Imbox, Feed, Paper Trail, Set Aside, Reply Later, Drafts, Trash и Spam
Загрузка вложений и разбор приглашений в календарь из писем
Отправка и ответы на цепочки писем
Поиск писем по всем папкам
Организация почты (отложить, ответить позже, пропустить через скринер, поднять в начало)
Локальный кэш SQLite для быстрого повторного чтения и полнотекстового поиска
Легковесность — около 30 МБ оперативной памяти в режиме ожидания
Заголовки и TLS-профиль, идентичные браузерным, для предотвращения обнаружения
Работает полностью на вашем компьютере; транспорт stdio без выхода в сеть
Related MCP server: email-mcp
Настройка
Предварительные требования
Bun 1.1 или новее
Python 3.10 или новее (плюс UV, если вы хотите следовать инструментарию Python в
CLAUDE.md)Учетная запись Hey.com
Платформа: разработано и протестировано на macOS и Linux. Пользователям Windows, скорее всего, потребуется WSL — бэкенд pywebview для Windows в настоящее время не используется.
Установка
Клонируйте этот репозиторий
git clone https://github.com/Sealjay/mcp-hey.git cd mcp-heyУстановите зависимости
bun install uv pip install -r auth/requirements.txtПервый запуск — аутентификация
bun run devОткроется системный webview со страницей входа Hey.com. Войдите в систему как обычно.
Вспомогательный скрипт захватит сессионные cookie в
data/hey-cookies.json(права доступа600) и завершит работу.Нажмите Ctrl+C — с этого момента ваш MCP-клиент будет запускать свой экземпляр сервера.
Последующие запуски будут использовать сохраненную сессию до истечения ее срока действия.
Конфигурация MCP-клиента
Все клиенты ниже используют одинаковую структуру command/args. На macOS вам почти наверняка потребуется абсолютный путь к bun — см. macOS: bun PATH ниже.
Claude Code
Самый быстрый путь — через CLI:
claude mcp add --transport stdio hey --scope user -- bun run /absolute/path/to/mcp-hey/src/index.tsСервер будет доступен сразу в текущей сессии.
Альтернативно, добавьте в .mcp.json в корне вашего проекта (или ~/.claude.json для сервера на уровне пользователя):
{
"mcpServers": {
"hey": {
"type": "stdio",
"command": "bun",
"args": ["run", "/absolute/path/to/mcp-hey/src/index.ts"]
}
}
}Если вы редактируете файл напрямую, перезапустите сессию Claude Code, чтобы изменения вступили в силу.
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"hey": {
"command": "bun",
"args": ["run", "/absolute/path/to/mcp-hey/src/index.ts"]
}
}
}Перезапустите Claude Desktop. Вы должны увидеть hey в списке доступных интеграций.
Cursor
Добавьте в ~/.cursor/mcp.json:
{
"mcpServers": {
"hey": {
"command": "bun",
"args": ["run", "/absolute/path/to/mcp-hey/src/index.ts"]
}
}
}Перезапустите Cursor.
Docker
Dockerfile включен для контейнеризированных развертываний и совместимости с Glama.
Сборка образа:
docker build -t mcp-hey .Проверка работоспособности сервера (должен вернуть JSON-RPC ответ со списком доступных инструментов):
printf '{"jsonrpc":"2.0","id":1,"method":"tools/list"}\n' | docker run -i mcp-heyПримечание: Docker-образ запускает только MCP-сервер. Вспомогательный скрипт аутентификации Python и webview-логин внутри контейнера недоступны. Вы должны предоставить существующие сессионные cookie через монтирование тома в
data/hey-cookies.jsonдля аутентифицированных операций.
macOS: bun PATH
GUI-приложения (Claude Desktop, Cursor) и оболочки, запущенные через Claude Code, не всегда наследуют PATH из вашего интерактивного терминала, поэтому установленный через Homebrew bun может выдавать ошибку spawn bun ENOENT или просто не подключаться. Исправьте это, используя абсолютный путь к bun в command:
Apple Silicon Homebrew —
/opt/homebrew/bin/bunIntel Homebrew —
/usr/local/bin/bunРучная установка — выполните
which bunв терминале, чтобы найти путь
Пример:
{
"mcpServers": {
"hey": {
"command": "/opt/homebrew/bin/bun",
"args": ["run", "/absolute/path/to/mcp-hey/src/index.ts"]
}
}
}Архитектура
Компонент | Описание |
MCP-сервер | Bun/TypeScript, транспорт stdio, ~30 МБ памяти в простое |
Auth helper | Python/pywebview, запускается по требованию для входа через системный webview |
Кэш | Локальное хранилище SQLite для сообщений, цепочек и индекса поиска |
Обмен данными | Файловый обмен сессией через |
Поток данных
MCP-клиент (Claude Code, Claude Desktop, Cursor и т.д.) запускает
bun run src/index.tsчерез stdio.При запуске сервер проверяет
data/hey-cookies.json. Если файл отсутствует или истек срок действия, он запускаетauth/hey-auth.py, который открывает Hey в системном webview и записывает свежие cookie.Вызовы инструментов обращаются к Hey.com напрямую с реалистичными заголовками браузера; ответы парсятся (HTML через
node-html-parser) и кэшируются в SQLite.Операции записи получают свежий CSRF-токен перед отправкой.
Структура проекта
mcp-hey/
src/
index.ts # MCP server entry point
hey-client.ts # HTTP client with cookie injection
session.ts # Session management and validation
errors.ts # Error classes and sanitisation
cache/ # SQLite cache (db, schema, messages, search)
tools/ # MCP tool implementations
read.ts # Reading and listing
send.ts # Send, reply, forward
organise.ts # Triage, labels, bubble up, etc.
http-helpers.ts # Shared CSRF retry and endpoint fallback
attachments.ts # Download attachments, parse calendar invites
__tests__/ # Test suites
auth/
hey-auth.py # Python auth helper (pywebview)
requirements.txt
data/
hey-cookies.json # Session storage (gitignored, chmod 600)
docs/
API.md # Hey.com API surface documentation
TOOLS.md # MCP tool reference (33 tools)
hey-features-doc.md # Hey.com feature mappingДоступные инструменты
33 инструмента, сгруппированных по функциям. См. docs/TOOLS.md для параметров, форматов возвращаемых данных и поведения при ошибках.
Категория | Инструменты |
Чтение |
|
Метки и коллекции |
|
Отправка |
|
Сортировка |
|
Поднятие в начало |
|
Скринер |
|
Поиск |
|
Кэш |
|
Конфиденциальность и безопасность
Учетные данные никогда не сохраняются — только сессионные cookie, записанные с правами доступа
600.Аутентификация происходит полностью внутри собственной страницы входа Hey (системный webview).
Все данные остаются на вашем компьютере. Этот проект не отправляет никакой телеметрии.
MCP использует транспорт stdio — сервер никогда не открывает сетевой порт для прослушивания.
Валидность сессии проверяется при запуске и перед выполнением чувствительных операций.
См. SECURITY.md для информации о том, как сообщать об уязвимостях.
Ограничения
Риск инъекции промптов: как и многие MCP-серверы, этот подвержен смертельному трио. Вредоносное письмо, попавшее в ваш ящик, может попытаться дать Claude команду на кражу других сообщений. Относитесь к поверхности инструментов соответственно и проверяйте рискованные действия перед их одобрением.
Неофициальный API: фронтенд Hey.com может измениться без предупреждения и сломать работу. Ожидайте периодических поломок и проверяйте
docs/API.mdна наличие известных изменений.Нет уведомлений в реальном времени: только опрос (polling).
Загрузка вложений пока не поддерживается.
Одна учетная запись на экземпляр MCP-сервера.
Риск для аккаунта: агрессивные или аномальные паттерны доступа теоретически могут активировать системы защиты Hey от злоупотреблений. Сервер соблюдает заголовки
x-ratelimitи делает экспоненциальные паузы, но гарантий нет.Только английский интерфейс: сервер парсит HTML-ответы Hey.com и ищет строки на английском языке (например, "You ignored this thread", названия меток, текст кнопок). Он не будет работать корректно, если в Hey.com установлена неанглийская локаль.
Устранение неполадок
Webview аутентификации не открывается — убедитесь, что Python 3.10+ находится в
PATHи командаuv pip install -r auth/requirements.txtвыполнена успешно. На Linux убедитесь, что доступен бэкенд webview (командаpython -c "import webview"не должна выдавать ошибок).Ответы
401/403после недель использования — ваша сессия Hey истекла. Удалитеdata/hey-cookies.jsonи снова запуститеbun run devдля повторной аутентификации.Ограничения скорости (
429) — клиент соблюдает заголовкиx-ratelimitи делает паузы. Если вы видите постоянные ошибки 429, уменьшите количество одновременных вызовов инструментов или подождите несколько минут.MCP-клиент не может запустить сервер —
argsдолжен быть абсолютным путем, а не относительным. Если самbunвыдает ошибкуspawn bun ENOENT, см. macOS:bunPATH.Имя cookie изменилось — Hey уже переименовывал сессионные cookie (например,
_hey_session→session_token, см. журнал изменений вdocs/API.md). Если аутентификация молча перестала работать после обновления Hey, захватите свежие cookie и сравните их.
Вклад в проект
Вклад приветствуется через pull request. Пожалуйста:
Используйте conventional commits (
feat,fix,docs,refactor,test,perf,cicd,revert,WIP).Выполняйте
bun run formatиbun run lintперед отправкой (на базе Biome).Убедитесь, что
bun testпроходит успешно.Обновляйте
docs/API.md, если вы обнаружили или изменили поведение API Hey.com.
См. CLAUDE.md для полного описания процесса разработки.
Лицензия
Лицензия MIT — см. LICENCE.
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceEnables semantic search and AI-powered analysis of Outlook emails using RAG-based natural language queries and Vision AI for architectural documents, with specialized support for AEC workflows.MIT
- AlicenseAqualityBmaintenanceLocal MCP server for multi-account IMAP/SMTP email (iCloud + Gmail via app-specific passwords). Never marks mail read. Cross-folder search, idempotent sends, TLS verified.8MIT
- FlicenseNot gradedqualityBmaintenanceA minimal MCP server for reading and sending emails via IMAP/SMTP, supporting multiple accounts in a single instance with zero external dependencies.1
- AlicenseAqualityAmaintenanceAn MCP server that exposes a local notmuch email database to an LLM client such as Claude. It is read-first: searching, reading, and understanding mail is always available; writing anything (drafts, tags, exported files) requires an explicit opt-in flag and is confined to clearly bounded locations.13MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Sealjay/mcp-hey'
If you have feedback or need assistance with the MCP directory API, please join our Discord server