pimenov.ai

База знаний

X MCP — официальные MCP-серверы X для X API и документации

Официальные MCP-серверы X: X MCP для вызова X API через мост xurl и Docs MCP для поиска по документации. Как подключить к Grok, Cursor, Claude и VS Code.

Опубликовано

X MCP — официальные серверы Model Context Protocol от X (бывший Twitter), которые подключают ИИ-инструменты напрямую к X API и к документации платформы. Запущены 30 июня 2026 командой X Developer Platform.

📌
Коротко: серверов два. X MCP (https://api.x.com/mcp) даёт модели вызывать X API: поиск по архиву, пользователи, закладки, тренды, новости и Articles. Docs MCP (https://docs.x.com/mcp) ищет и читает документацию X API. Подключение к X MCP идёт через опенсорс-мост xurl, который берёт на себя OAuth и подставляет свежий токен на каждый вызов.

Что это такое

X MCP — это два хостящихся сервера Model Context Protocol от самой X. Через них любой MCP-совместимый клиент (Grok Build, Cursor, Claude, Codex, VS Code и другие) получает доступ к X API под правами вашего аккаунта.

💡
MCP (Model Context Protocol) — открытый стандарт, по которому ИИ-приложения подключаются к внешним данным и инструментам. Подробнее — в справке MCP — стандарт подключения ИИ к внешним системам.

Важно не путать официальные серверы с двумя соседними вещами:

  • Сторонние комьюнити-серверы (mbelinky/x-mcp-server, rafaljanicki/x-twitter-mcp-server и десятки других). Они появились раньше, живут на чужих ключах и не поддерживаются X.
  • Bring Your Own MCP от Grok — механизм xAI, который подключает к Grok произвольный внешний MCP-сервер. Это механизм на стороне клиента; X MCP же — сервер самой платформы.

Два сервера

СерверЧто делаетURL
X MCPВызовы X API: поиск постов, пользователи, закладки, тренды, новости, Articleshttps://api.x.com/mcp (hosted, через xurl mcp)
Docs MCPПоиск и чтение документации X APIhttps://docs.x.com/mcp (hosted)

Технически X MCP — это Streamable HTTP-сервер (протокол 2025-06-18, serverInfo: xmcp), который отдаёт 200+ эндпоинтов X API как вызываемые инструменты. Стриминговые и webhook-эндпоинты в набор не входят.

Что умеет X MCP

КатегорияЧто может модель
ПостыЧитать посты, смотреть лайкнувших / репостнувших / цитирующих, счётчики за период
ПоискПоиск по полному архиву постов, поиск пользователей, поиск новостей
ПользователиОпределять текущего пользователя, искать по id / хэндлу, читать посты, ленту и упоминания
ЗакладкиСмотреть, добавлять и удалять закладки, управлять папками закладок
Новости и трендыПолучать новостные сюжеты и тренды по локации (WOEID)
ArticlesСоздавать черновики Articles и публиковать их

Как устроено подключение

X API работает на OAuth, требующем вашего собственного приложения. Динамической регистрации клиента нет, и api.x.com/mcp не отдаёт нативное MCP OAuth-обнаружение. Поэтому клиент подключают через маленький локальный мост xurl. Мост держит идентичность приложения, проводит разовый логин и сам обновляет токен.

flowchart LR
    A["MCP-клиент<br>Grok Build, Cursor, …"] -- "stdio JSON-RPC" --> B["xurl mcp<br>локальный мост"]
    B -- "HTTPS + Bearer" --> C["api.x.com/mcp"]
    B <-- "OAuth2 PKCE + авто-refresh" --> D["X OAuth"]

Как это работает на практике:

  • Мост запускается через npm-лаунчер (npx), отдельная установка не нужна.
  • При первом запуске без токена он открывает браузер для разового входа OAuth 2.0, кэширует токен и дальше обновляет его сам.
  • Вся диагностика идёт в stderr, а stdout остаётся чистым JSON-RPC-каналом.

Два способа авторизации

СпособКогда подходитОграничения
App-only BearerБыстрый старт, только чтение. Токен приложения в заголовке Authorization, без моста и без браузераНет пользовательского контекста (не действует от вашего имени), нет авто-refresh
Мост xurl (OAuth 2.0)Полный доступ. Мост проводит PKCE-логин и обновляет токены, модель действует в рамках прав вашего аккаунтаНужен первый вход через браузер; требуется для записи (закладки, Articles)
⚖️
Компромисс: App-only проще и не требует логина, но работает только на чтение. Для действий от вашего имени и для записи нужен мост xurl с OAuth 2.0.

Быстрый старт через мост xurl

Пререквизиты:

  1. Приложение X с включённым OAuth 2.0 в X Developer Portal.
  2. Зарегистрированный redirect URI http://localhost:8080/callback (нужен для первого входа через браузер).
  3. CLIENT_ID и CLIENT_SECRET приложения.
  4. Установленный Node.js (для npx).

Рекомендуется поставить xurl заранее одним из способов:

brew install --cask xdevplatform/tap/xurl      # Homebrew
npm install -g @xdevplatform/xurl              # npm (глобально)
curl -fsSL https://raw.githubusercontent.com/xdevplatform/xurl/main/install.sh | bash
💡
Первый вход требует браузера. На headless или удалённой машине авторизуйтесь заранее командой xurl auth oauth2 --headless (флоу с ручной вставкой кода), дальше мост просто переиспользует кэшированный токен.

Grok Build

Конфиг ~/.grok/config.toml:

[mcp_servers.xapi]
command = "npx"
args = ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"]
enabled = true
startup_timeout_sec = 300          # дайте время на первый вход через браузер

[mcp_servers.xapi.env]
CLIENT_ID = "YOUR_X_APP_CLIENT_ID"
CLIENT_SECRET = "YOUR_X_APP_CLIENT_SECRET"

Проверить и посмотреть список инструментов:

grok mcp doctor xapi      # проверка: сервер стартовал, handshake прошёл, инструменты найдены
grok mcp list

Cursor

Создайте ~/.cursor/mcp.json (глобально) или .cursor/mcp.json (только для проекта):

{
  "mcpServers": {
    "xapi": {
      "command": "npx",
      "args": ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"],
      "env": {
        "CLIENT_ID": "YOUR_X_APP_CLIENT_ID",
        "CLIENT_SECRET": "YOUR_X_APP_CLIENT_SECRET"
      }
    }
  }
}

Затем откройте Cursor → Settings → MCP и убедитесь, что xapi горит зелёным и показывает инструменты.

Claude Desktop

Файл claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "xapi": {
      "command": "npx",
      "args": ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"],
      "env": { "CLIENT_ID": "YOUR_X_APP_CLIENT_ID", "CLIENT_SECRET": "YOUR_X_APP_CLIENT_SECRET" }
    }
  }
}

После перезапуска Claude Desktop инструменты X появятся в меню инструментов (🔌).

VS Code (GitHub Copilot, режим агента)

Файл .vscode/mcp.json:

{
  "servers": {
    "xapi": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"],
      "env": { "CLIENT_ID": "YOUR_X_APP_CLIENT_ID", "CLIENT_SECRET": "YOUR_X_APP_CLIENT_SECRET" }
    }
  }
}

Codex (CLI и IDE)

Codex (CLI и IDE-расширение OpenAI) хранит конфигурацию MCP в ~/.codex/config.toml; настройки уровня проекта кладут в .codex/config.toml — они подхватываются только для доверенных проектов. Codex поддерживает и stdio-серверы, и Streamable HTTP, поэтому годятся оба способа — и мост xurl, и прямое подключение по URL.

Рекомендуемый вариант — мост через ~/.codex/config.toml:

[mcp_servers.xapi]
command = "npx"
args = ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"]
startup_timeout_sec = 300          # по умолчанию всего 10 сек — поднимите под первый вход через браузер

[mcp_servers.xapi.env]
CLIENT_ID = "YOUR_X_APP_CLIENT_ID"
CLIENT_SECRET = "YOUR_X_APP_CLIENT_SECRET"

То же самое одной командой в терминале:

codex mcp add xapi \
  --env CLIENT_ID=YOUR_X_APP_CLIENT_ID \
  --env CLIENT_SECRET=YOUR_X_APP_CLIENT_SECRET \
  -- npx -y @xdevplatform/xurl mcp https://api.x.com/mcp

Проверить подключение — команда codex mcp (список серверов) или /mcp внутри сессии Codex. Дефолтный startup_timeout_sec у Codex — 10 секунд, поэтому под разовый OAuth-вход через браузер его обязательно нужно поднять. Для сценария «только чтение» Codex умеет и прямой remote-MCP: вместо command/args укажите url = "https://api.x.com/mcp" и bearer_token_env_var с именем переменной, где лежит App-only Bearer-токен.

Любой MCP-клиент

Параметры моста (stdio):

ПолеЗначение
commandnpx
args["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"]
envCLIENT_ID, CLIENT_SECRET
startup timeout≥ 300 сек (чтобы первый вход успел завершиться)

Если xurl установлен нативно, замените command / args на "command": "xurl", "args": ["mcp", "https://api.x.com/mcp"].

Простой способ: App-only Bearer

Для эндпоинтов только на чтение мост можно пропустить и указать клиенту статический App-only Bearer-токен. Подходит клиентам, которые умеют remote MCP с кастомными заголовками.

# ~/.grok/config.toml
[mcp_servers.xapi_direct]
url = "https://api.x.com/mcp"
enabled = true

[mcp_servers.xapi_direct.headers]
Authorization = "Bearer YOUR_APP_ONLY_BEARER_TOKEN"

JSON-вариант для Cursor или Claude:

{
  "mcpServers": {
    "xapi": {
      "url": "https://api.x.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_APP_ONLY_BEARER_TOKEN" }
    }
  }
}

Плата за простоту: нет авто-refresh и нет пользовательского контекста. Для полного набора функций берите мост.

Docs MCP — поиск по документации

Второй сервер, https://docs.x.com/mcp, ищет и читает документацию X API прямо из вашего клиента. Авторизация не нужна.

ИнструментЧто делает
search_xПоиск по документации X: справка по API, примеры кода, гайды
get_page_xПолучить полное содержимое страницы документации по её пути

Конфиг:

{
  "mcpServers": {
    "x-docs": {
      "url": "https://docs.x.com/mcp"
    }
  }
}

Оба сервера можно подключить одновременно — тогда ассистент и ищет справку, и вызывает API. Пример для Grok Build:

[mcp_servers.xapi]
command = "npx"
args = ["-y", "@xdevplatform/xurl", "mcp", "https://api.x.com/mcp"]
enabled = true
startup_timeout_sec = 300

[mcp_servers.xapi.env]
CLIENT_ID = "YOUR_X_APP_CLIENT_ID"
CLIENT_SECRET = "YOUR_X_APP_CLIENT_SECRET"

[mcp_servers.x-docs]
url = "https://docs.x.com/mcp"
enabled = true

Практические сценарии

  • Мониторинг трендов и новостей. Агент забирает тренды по нужной локации и новостные сюжеты, а затем сам собирает сводку по интересующей теме.
  • Ресёрч по архиву. Полноархивный поиск постов и пользователей для анализа обсуждений, конкурентов или реакции на запуск.
  • Закладки как база материалов. Модель складывает найденные посты в папки закладок и разбирает их позже — удобный вход для контент-пайплайна.
  • Черновики Articles. Агент готовит и публикует длинные материалы Articles через API под правами вашего аккаунта.

Сколько это стоит

Само подключение X MCP и мост xurl бесплатны, а Docs MCP не требует ни оплаты, ни авторизации. Платите вы только за вызовы X API — по модели pay-per-use: без подписок и абонплаты, кредиты списываются за каждый запрос. Кредиты покупаются в Developer Console, там же виден расход в реальном времени. Бесплатного тарифа для новых разработчиков больше нет, а прежние Basic ($200/мес) и Pro ($5 000/мес) в 2026 переводятся на pay-per-use.

💡
Главный нюанс расчёта: чтение тарифицируется за каждый возвращённый ресурс, а не за запрос. Поиск, вернувший 100 постов, стоит как 100 чтений. Запись и действия считаются за запрос.

Базовые ставки (актуальные всегда есть в консоли):

ОперацияСтоимость
Чтение поста$0.005 за ресурс
Чтение пользователя / подписок$0.010 за ресурс
Owned Reads — свои посты, закладки, подписчики$0.001 за ресурс
Тренды$0.010 за запрос
Публикация поста$0.015 (со ссылкой — $0.20)
Действие с закладкой$0.005 за запрос

Два фактора заметно снижают счёт:

  • Дедупликация. Один и тот же ресурс в течение суток (UTC) тарифицируется один раз — повторные чтения того же поста в этом окне бесплатны.
  • Owned Reads. Чтение своих же данных стоит $0.001 за ресурс — в 5–10 раз дешевле обычного. Это выгодно для личных дашбордов и аналитики собственного аккаунта.

Примеры расчёта

🧮
Цифры иллюстративные и зависят от объёма выдачи; точные ставки всегда в Developer Console.
  • Ежедневный дайджест трендов и новостей. За прогон: тренды ($0.010) + 40 постов по теме ($0.005 × 40 = $0.20) + 10 авторов ($0.010 × 10 = $0.10) ≈ $0.31. За месяц ежедневных прогонов — около $9.
  • Разовый ресёрч по архиву перед запуском. 500 постов ($0.005 × 500 = $2.50) + 80 авторов ($0.010 × 80 = $0.80) ≈ $3.30 за разбор.
  • Личная аналитика через Owned Reads. 3 000 своих ресурсов — постов, закладок, подписчиков — по $0.001 ≈ $3.00.
  • Публикация из агента за месяц. 30 анонсов со ссылкой ($0.20 × 30 = $6.00) + 30 постов без ссылок ($0.015 × 30 = $0.45) + 50 действий с закладками ($0.005 × 50 = $0.25) ≈ $6.70.

Как держать расходы под контролем

  • Spending limit — жёсткий потолок трат за биллинг-цикл: по достижении лимита запросы блокируются до следующего цикла.
  • Auto-recharge — автопополнение баланса (срабатывает не чаще раза в 5 минут и не работает при нулевом или отрицательном балансе).
  • Usage API (GET /2/usage/tweets) — суточный расход постов программно, удобно для алертов о приближении к бюджету.
  • Кешбэк xAI. При покупке X API-кредитов возвращается до 20% кредитами xAI API в зависимости от накопленных трат за цикл: $200+ → 10%, $500+ → 15%, $1 000+ → 20%.

Приложение и доступ

  • Нужно своё приложение в X Developer Portal с OAuth 2.0; мост кэширует токены в ~/.xurl и обновляет их сам, в том числе после ответа 401.
  • При ошибке client-not-enrolled после логина включите приложению pay-per-use и переведите его в Production в консоли.
  • Инструменты действуют в рамках scopes вашего аккаунта. Для действий от имени второго аккаунта или бота переключите нужный аккаунт в браузере до завершения логина.
  • Запись (закладки, публикация Articles) строже по rate limits, чем чтение: ждите периодических 429 и делайте backoff.

Проверка и типичные ошибки

СимптомПричина и решение
Клиент виснет на стартеПоднимите startup_timeout_sec до 300+: мост ждёт вход через браузер
Браузер не открываетсяНет дисплея (headless) → сначала xurl auth oauth2 --headless; проверьте, что npx доступен
401 / token refresh failedНеверные ключи приложения или отозван refresh-токен → повторите логин xurl auth oauth2
Ошибка redirect / callbackhttp://localhost:8080/callback не зарегистрирован на приложении (или не совпадает REDIRECT_URI)
client-not-enrolled после логинаПриложение не в том окружении → переведите в Pay-per-use и Production
npx тянет устаревшую версиюПриватный реестр по умолчанию → добавьте --registry=https://registry.npmjs.org/ в args
Пустой или битый выводНе запускайте клиент с --verbose: stdout должен оставаться чистым JSON-RPC-каналом

Безопасность

🔴
Токены — это секреты. Не вставляйте содержимое ~/.xurl и access-токены в чаты, логи и общие конфиги. Держите ключи в env-переменных вместо закоммиченных файлов.
  • Заводите отдельное приложение под MCP только с нужными scopes.
  • Предпочитайте пер-проектные .mcp.json / .grok/config.toml, которые ссылаются на env-переменные вместо сырых секретов.
  • Мост работает локально: ключи не покидают машину, наружу по TLS уходит только Bearer-токен.

Ссылки


По теме

X MCP пригодится, когда ИИ-агенту нужно работать с живыми данными X: собирать тренды, разбирать обсуждения, вести закладки и готовить публикации. Если вы собираете такой контур для себя или команды и хотите обсудить, с чего начать и как аккуратно развести права доступа и токены, — напишите.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov