Twitter/X MCP
Twitter/X MCP
Twitter/X MCP позволяет MCP-клиенту читать публичные посты X, ответы и профили, а также выполнять поиск по X. По умолчанию используется Rettiwt, поэтому план разработчика X не нужен. Если у вас есть доступ, можно переключиться на официальное X API.
Требования
Node.js 22.21.0 или новее в рамках линейки Node 22. Текущий релиз Rettiwt не поддерживает Node 23 или более новые версии.
Необходим ключ
RETTIWT_API_KEY. Учётные данные официального X API работают, если выбран режим API.
Related MCP server: X MCP Server
Быстрый старт
После публикации пакета ваш MCP-клиент сможет запускать его без клонирования репозитория:
npx -y @granitebps/twitter-mcpСервер выбирает Rettiwt, если не указан TWITTER_MODE. Передайте RETTIWT_API_KEY в конфигурации клиента.
Сервер использует stdio. Оставьте stdout свободным для MCP-трафика.
Запуск из клонированного репозитория
Для разработки сервера или использования клона напрямую:
git clone https://github.com/granitebps/twitter-mcp.git
cd twitter-mcp
npm ci
npm run buildНаправьте MCP-клиент на скомпилированную точку входа:
node /absolute/path/to/twitter-mcp/dist/cli.jsВыполняйте npm run build после каждого изменения исходного кода. Не используйте src или npm run dev в качестве stdio-команды клиента. Логи сборки в stdout могут повредить MCP-сообщения.
Конфигурация клиента
Каждый пример начинается с npm-пакета, за которым следует локальный аналог. Замените /absolute/path/to/twitter-mcp на путь к вашему клону и your_key_here — на ваш ключ Rettiwt. Не помещайте в коммит файл конфигурации, содержащий ключ.
Claude
Добавьте npm-пакет в Claude Code:
claude mcp add twitter --env RETTIWT_API_KEY=your_key_here -- npx -y @granitebps/twitter-mcpДля локальной сборки:
claude mcp add twitter --env RETTIWT_API_KEY=your_key_here -- node /absolute/path/to/twitter-mcp/dist/cli.jsClaude Code по умолчанию использует локальную область видимости. Добавьте --scope user перед twitter, чтобы сервер был доступен во всех проектах.
Claude Desktop считывает тот же сервер из claude_desktop_config.json. Перезапустите приложение после изменения файла.
{
"mcpServers": {
"twitter": {
"command": "npx",
"args": ["-y", "@granitebps/twitter-mcp"],
"env": {
"RETTIWT_API_KEY": "your_key_here"
}
}
}
}Для локальной сборки замените command и args на:
{
"command": "node",
"args": ["/absolute/path/to/twitter-mcp/dist/cli.js"]
}Codex
Добавьте npm-пакет в ~/.codex/config.toml или в .codex/config.toml в доверенном проекте:
[mcp_servers.twitter]
command = "npx"
args = ["-y", "@granitebps/twitter-mcp"]
[mcp_servers.twitter.env]
RETTIWT_API_KEY = "your_key_here"Для локальной сборки:
[mcp_servers.twitter]
command = "node"
args = ["/absolute/path/to/twitter-mcp/dist/cli.js"]
[mcp_servers.twitter.env]
RETTIWT_API_KEY = "your_key_here"Перезапустите Codex после изменения файла. CLI, расширение IDE и настольное приложение используют эту конфигурацию на одном компьютере.
OpenCode
Добавьте npm-пакет в opencode.json или opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"twitter": {
"type": "local",
"command": ["npx", "-y", "@granitebps/twitter-mcp"],
"enabled": true,
"environment": {
"RETTIWT_API_KEY": "your_key_here"
}
}
}
}Для локальной сборки замените массив command на:
{
"command": ["node", "/absolute/path/to/twitter-mcp/dist/cli.js"]
}Cursor
Добавьте npm-пакет в .cursor/mcp.json в проекте или в ~/.cursor/mcp.json для глобального использования:
{
"mcpServers": {
"twitter": {
"command": "npx",
"args": ["-y", "@granitebps/twitter-mcp"],
"env": {
"RETTIWT_API_KEY": "your_key_here"
}
}
}
}Для локальной сборки замените command и args на:
{
"command": "node",
"args": ["/absolute/path/to/twitter-mcp/dist/cli.js"]
}Провайдеры
Режим | Выбор | Учётные данные | Примечание |
Rettiwt | По умолчанию или |
| Без платы в X API. Использует неофициальные внутренние конечные точки и может выйти из строя или создать риск для аккаунта. |
Официальное X API |
| Bearer-токен или полные учётные данные OAuth | Использует официальное X API. X контролирует уровни доступа и цены. |
Настройка Rettiwt
На этом сервере Rettiwt требует аутентифицированного пользовательского режима. Гостевой режим не поддерживается.
Сформируйте ключ API по инструкциям по аутентификации Rettiwt.
Сохраните его как
RETTIWT_API_KEYв окружении MCP-клиента.Запустите сервер без
TWITTER_MODEили явно укажитеTWITTER_MODE=rettiwt.
Ключ Rettiwt содержит cookie-сессии X и предоставляет тот же доступ, что и аккаунт. Обращайтесь с ним как с паролем. Не сохраняйте его в коммит, не вставляйте в issue, не записывайте в логи и не передавайте через аргументы командной строки. Используйте ключ только для аккаунта, которым вы владеете или разрешением на доступ к которому обладаете.
Rettiwt — неофициальный сервис. Правила автоматизации X запрещают неофициальную автоматизацию веб-сайта и предупреждают о возможной блокировке аккаунта. Прочтите Правила X, прежде чем использовать этот режим. Вы принимаете риски, связанные с соответствием правилам и аккаунтом.
Настройка официального X API
Используйте Bearer-токен:
TWITTER_MODE=api
TWITTER_BEARER_TOKEN=your_bearer_tokenИли предоставьте полный набор настроек OAuth:
TWITTER_MODE=api
TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_SECRET=your_access_secretУчётные данные создаются в портале разработчика X. X контролирует доступ к API и цены, поэтому перед выбором этого режима изучите актуальные условия.
Конфигурация
Переменная | Обязательность | Описание |
| Нет | По умолчанию |
| Rettiwt-режим | Ключ аутентифицированной сессии Rettiwt. |
| Параметр API-режима | Bearer-токен официального API. |
| Параметр OAuth | Ключ приложения OAuth. |
| Параметр OAuth | Секрет приложения OAuth. |
| Параметр OAuth | Токен доступа OAuth. |
| Параметр OAuth | Секрет доступа OAuth. |
| Нет | Таймаут запроса от 1 000 до 120 000 мс. По умолчанию — 30 000. |
Сервер отклоняет неполную конфигурацию OAuth при запуске. Он читает учётные данные из окружения процесса и никогда не возвращает их через get_server_info.
Инструменты
Инструмент | Входные данные | Результат |
|
| Одна запись. Принимает числовой идентификатор либо URL-адрес статуса |
|
| Ответы и доступные метаданные страницы. |
|
| Один открытый профиль. Допускается ведущий символ |
|
| Подходящие посты и доступные метаданные страницы. Операторы поиска зависят от способа. |
| Нет | Версия, активный провайдер, инструменты, лимиты и возможности. |
max_results по умолчанию равно 10 и принимает значения от 1 до 100. Успешные вызовы возвращают структурированный контент MCP и JSON-текст для устаревших клиентов. Инструменты возврата коллекций отдают элементы как JSON-текст, а курсоры и предупреждения размещают в структурированном контенте.
Ошибки
Вызовы инструментов используют стабильные коды ошибок:
INVALID_INPUTAUTH_REQUIREDAUTH_FAILEDNOT_FOUNDRATE_LIMITEDUPSTREAM_UNAVAILABLETIMEOUTUNSUPPORTED_OPERATIONINTERNAL_ERROR
В ошибках указывается провайдер и сообщается, стоит ли повторить попытку. В них не включаются учётные данные и необработанные тела ответов вышестоящего сервиса.
Архитектура
stdio CLI
-> validated environment configuration
-> MCP server and tool handlers
-> TwitterProvider contract
-> Rettiwt adapter
-> official X API adapterДоменные схемы не зависят от конкретного провайдера. Каждый адаптер провайдера отображает данные вышестоящего сервиса, соблюдает лимиты и тайм-ауты и переводит ошибки. Импорт src/index.ts не запускает сервер.
Разработка
npm ci
npm run checknpm run check проверяет форматирование, стиль кода, типы, покрытие, тесты продакшн-сборки, содержимое npm-пакета и чистую установку из тарбалла. Штатный тестовый набор использует заглушки и не требует учётных данных X.
Полезные точечные команды:
npm test
npm run typecheck
npm run lint
npm run build
npm run check:package
npm run check:install
npx @modelcontextprotocol/inspector node dist/cli.jsЖивой смоук-тест Rettiwt
Живой смоук-тест запускает скомпилированный stdio-сервер и вызывает get_tweet, get_tweet_replies, get_user_profile и search_tweets. Имя пользователя и поисковый запрос берутся из выбранной записи.
RETTIWT_API_KEY=your_key_here \
TWITTER_LIVE_TWEET_ID=1234567890123456789 \
npm run test:liveВыбирайте общедоступную запись, чей профиль автора всё ещё доступен. Если хотя бы одной из переменных нет, команда останавливается до запуска живого сервера или выполнения сетевого запроса. Он не выполняется в рамках npm run check и в обычном CI.
Проверка релиза
Автоматизированный набор охватывает конфигурацию, адаптеры провайдеров, вызовы MCP, скомпилированную stdio-точку входа и установку из npm-тарбалла. Живой смоук-тест Rettiwt необязателен и не выполняется в обычном CI. Версия 1.0.0 была подготовлена без прямой проверки вышестоящего сервиса.
Поддерживающие могут следовать руководству по выпуску для ручного процесса публикации в npm, MCP Registry и GitHub. Живые тесты должны читать учётные данные из секретов репозитория и не должны выполняться для недоверенных pull request.
Устранение неполадок
Отсутствует ключ Rettiwt
Если при запуске выводится RETTIWT_API_KEY is required in rettiwt mode, задайте ключ в конфигурации MCP-клиента. Настольные клиенты не наследуют автоматически файл .env из оболочки.
Неверная аутентификация Rettiwt
При появлении Invalid authentication data или AUTH_FAILED создайте новый ключ Rettiwt и проверьте, что сессия X всё ещё работает. Не размещайте ошибочный ключ в issue.
Ограничение частоты запросов
Прикоде RATE_LIMITED подождите перед повторной попыткой и снизьте частоту запросов. Проверяйте retryAfterSeconds, когда провайдер передаёт это значение.
Официальный API 401 или 403
Проверьте набор учётных данных, разрешения приложения, доступ к конечной точке и актуальный тарифный план X API.
Message: Node engine warning
Предупреждение о версии Node.js
Запускайте Node.js 22.21.0 или более новую версию Node 22. Не используйте Node 23 или новее с текущей зависимостью Rettiwt.
Лицензия
This server cannot be installed
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 gradedqualityDmaintenanceEnables interaction with X (formerly Twitter), allowing for posting tweets, searching content, managing accounts, and organizing lists.123MIT
- FlicenseBqualityDmaintenanceEnables users to interact with X (Twitter) through the X API. Supports posting tweets, retrieving user timelines, searching tweets, and replying to tweets with comprehensive error handling.314
- AlicenseNot gradedqualityDmaintenanceEnables interaction with X (Twitter) to post tweets, threads, and replies while retrieving tweet metrics and account information. It supports core management tasks like deleting tweets and verifying authentication through the Twitter API.MIT
- AlicenseAqualityAmaintenanceEnables reading public X (Twitter) content like profiles, tweets, and search results via a stealth browser, without official API costs.11MIT
Related MCP Connectors
X (formerly Twitter) posts, profiles, and search for AI agents. Free key, self-minted, no signup.
Fetch recent public X/Twitter posts by named handle for monitoring, comparison, OSINT, and research.
128 REST operations. 120 MCP routes; 119 JSON/text ops. OAuth 2.1. Not affiliated with X Corp.
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/granitebps/twitter-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server