X API MCP (xmcp)
X API FastMCP Server
Локальный MCP-сервер на FastMCP превращает спецификацию OpenAPI платформы X в инструменты: поиск и публикация постов, сообщения, списки, закладки
- 864 ★ репозитория
- Последний коммит
Широкий доступ
Почему такой уровень
- Агент публикует и удаляет посты, ставит отметки, подписывается и пишет сообщения от имени аккаунта: инструменты записи включены, пока не задан список разрешенных
- Ключ, секрет и токен приложения лежат в `.env`, а флаги отладки могут напечатать токены пользователя
- Сервер слушает локальный порт 8000, и любой подключенный к нему клиент MCP получает все включенные инструменты
Установка
- Работает в
Ручная установка
python server.pyЗапуск сервера. Клиент подключается к `http://127.0.0.1:8000/mcp`. При старте откроется браузер для согласия OAuth1.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Агент публикует и удаляет посты, ставит отметки, подписывается и пишет сообщения от имени аккаунта: инструменты записи включены, пока не задан список разрешенных
- Ключ, секрет и токен приложения лежат в `.env`, а флаги отладки могут напечатать токены пользователя
- Сервер слушает локальный порт 8000, и любой подключенный к нему клиент MCP получает все включенные инструменты
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер от организации X Developer Platform — небольшой скрипт `server.py` на Python с библиотекой FastMCP. При запуске он скачивает спецификацию OpenAPI со страницы `https://api.twitter.com/2/openapi.json`, отбрасывает операции потоковой передачи и вебхуков и превращает остальные в MCP-инструменты. В документации перечислено 119 имен: `searchPostsRecent`, `getUsersByUsername`, `createPosts`, `deletePosts`, `likePost`, `followUser`, `sendChatMessage`, `createDirectMessagesByConversationId`, списки, закладки, метрики постов, пространства, новости и другие. Для работы нужны токены приложения на X Developer Platform: `X_OAUTH_CONSUMER_KEY`, `X_OAUTH_CONSUMER_SECRET` и `X_BEARER_TOKEN`. При старте сервер открывает в браузере согласие OAuth1 и ждет ответа на локальном адресе `http://127.0.0.1:8976/oauth/callback`, который нужно зарегистрировать в приложении. Токены пользователя живут только в памяти процесса. MCP-конечная точка доступна по адресу `http://127.0.0.1:8000/mcp`. Набор инструментов можно сузить: переменная `X_API_TOOL_ALLOWLIST` принимает имена через запятую, например `getUsersByUsername,createPosts,searchPostsRecent`. Фильтр применяется при запуске, после правки сервер нужно перезапустить. В репозитории есть и необязательный тестовый клиент `test_grok_mcp.py`, который подключает к серверу модель Grok через ключ `XAI_API_KEY`.
Для кого. Для разработчиков и аналитиков с приложением на X Developer Platform, которые хотят дать агенту работу с постами, сообщениями и списками аккаунта.
Подходит, если
- Агенту нужно искать свежие посты командой уровня `searchPostsRecent` и читать профили через `getUsersByUsername`
- Нужны метрики постов и аккаунта: в списке есть `getPostsAnalytics`, `getMediaAnalytics` и `getInsights28Hr`
- Агент должен публиковать посты, ставить отметки и подписываться, но только по списку: `X_API_TOOL_ALLOWLIST` оставит нужные инструменты
- Нужно управлять списками и закладками аккаунта: есть `createLists`, `addListsMember`, `createUsersBookmark` и обратные операции
- Интеграцию нужно проверить на модели Grok: в репозитории лежит клиент `test_grok_mcp.py`
Не подходит, если
- Нет приложения на X Developer Platform: без токенов приложения сервер не запустится
- Нужны потоковые данные и вебхуки: сервер исключает все операции с `/stream` и `/webhooks`
- Нужна работа только на чтение с минимальным доступом: сервер по умолчанию отдает и инструменты записи, их придется убрать списком `X_API_TOOL_ALLOWLIST`
- Нужна ясность с правами на код: в репозитории нет файла лицензии
Пример запроса к агенту
Найди последние посты со словами Claude Code и покажи топ по лайкам, ничего не публикуйMCP
- Транспорт
- http
- Авторизация
- OAuth
Переменные окружения
X_OAUTH_CONSUMER_KEYобязательная- Ключ приложения на X Developer Platform.
X_OAUTH_CONSUMER_SECRETобязательная, секрет- Секрет приложения.
X_BEARER_TOKENобязательная, секрет- Токен приложения, обязателен даже при входе через OAuth1.
X_API_TOOL_ALLOWLIST- Имена инструментов через запятую, которые нужно загрузить.
Ограничения
- Автор не указал лицензию, права на использование и копирование не определены, уточните у автора.
- В документации указаны три обязательных значения: ключ и секрет приложения плюс `X_BEARER_TOKEN`. Последний нужен, даже если вы входите через OAuth1.
- При запуске сервер открывает браузер для согласия OAuth1 и ждет ответа 300 секунд по умолчанию (`X_OAUTH_CALLBACK_TIMEOUT`), без согласия инструменты от лица пользователя недоступны.
- Отладка включена по умолчанию (`X_API_DEBUG=1`). Флаги `X_OAUTH_PRINT_TOKENS` и `X_OAUTH_PRINT_AUTH_HEADER` печатают токены и заголовки авторизации, включать их стоит только для диагностики.
- Скрипт `generate_authtoken.py` для токена OAuth2 описан в документации, но в дереве репозитория его нет.
- Для удаленного клиента документация предлагает туннель ngrok и не описывает защиту адреса сервера.
Как отключить. Остановите процесс `python server.py` и удалите запись сервера из конфигурации MCP-клиента. Файл `.env` с ключами приложения удалите или очистите. Права приложения можно отозвать в кабинете X Developer Platform.
Частые вопросы
Откуда берутся инструменты сервера?
Из спецификации OpenAPI, которую сервер скачивает при каждом запуске с `https://api.twitter.com/2/openapi.json`. Операции с `/stream`, `/webhooks` и теги `Stream` и `Webhooks` исключаются. Набор инструментов следует за актуальной спецификацией, поэтому список в документации может отставать.
Как оставить только безопасные инструменты чтения?
Задайте в `.env` переменную `X_API_TOOL_ALLOWLIST` с именами, например `getUsersByUsername,searchPostsRecent`, и перезапустите сервер. Пока список пуст, загружаются все инструменты, включая `createPosts` и `deletePosts`.
Что нужно зарегистрировать в приложении X?
Адрес обратного вызова вида `http://<X_OAUTH_CALLBACK_HOST>:<X_OAUTH_CALLBACK_PORT><X_OAUTH_CALLBACK_PATH>`. По умолчанию это `http://127.0.0.1:8976/oauth/callback`.
Где хранятся токены пользователя?
Только в памяти процесса сервера, пока он работает. На диск OAuth1-токены не записываются. Для OAuth2 в `.env` можно вручную положить `X_OAUTH_ACCESS_TOKEN`.
Как подключить удаленный клиент?
Документация предлагает пробросить локальный порт через туннель, например `ngrok http 8000`, и использовать публичный адрес, оканчивающийся на `/mcp`. Прежде чем так делать, учтите, что описания защиты этого адреса в документации нет.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер планировщика соцсетей OpenPost: агент смотрит календарь и аккаунты, готовит черновики, планирует и публикует посты, разбирает комментарии
Self-hosted MCP-сервер для xiaohongshu: публикация заметок и видео, поиск, лента, комментарии, лайки и избранное от лица агента
Instagram MCP
instagram-mcp
MCP-сервер для Instagram Graph API: агент публикует посты, карусели и reels, отвечает на комментарии и читает аналитику бизнес-аккаунта
MCP автопостинга в Telegram, VK и TenChat
Customer MCP Autoposting
MCP-сервер публикует один текст сразу в Telegram, ВКонтакте (группа и личная стена) и TenChat одним вызовом publish_all
Telegram API MCP
telegram-api-mcp
MCP-сервер для Telegram Bot API: сообщения, каналы, форумы, платежи и длинные посты от имени бота с учетом лимитов Telegram
Официальный удаленный MCP-сервер Metricool: агент публикует посты, смотрит аналитику соцсетей и ведет рекламные кампании
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| X API MCP (xmcp) (эта запись) | да | OAuth | 864 | |
| x-research | нет | 1 240 | скилл с командой на Bun для поиска постов, тредов и профилей через X API, с кэшем и оценкой стоимости; xmcp отдает весь API инструментами MCP, включая запись | |
| Agent Reach | нет | 101 004 | читает и ищет в Twitter, Reddit, YouTube и других сетях без платных API; xmcp работает только с X и через официальный API |
Коротко о README
Документация разбита на предварительные требования, локальную установку с таблицей переменных окружения, регистрацию адреса обратного вызова, запуск и подключение клиента. Затем идут фильтр инструментов, описание старта OAuth1, полный список имен инструментов для копирования в разрешенный перечень, получение токена OAuth2, тестовый клиент Grok и примечания об исключениях. В репозитории пять файлов: сам сервер, тестовый клиент, список зависимостей, образец `.env` и документация. Тестов нет.