X Integration — MCP-сервер для X (Twitter)
Сервер реализует протокол MCP (Model Context Protocol) и предоставляет инструменты для чтения ленты и взаимодействия с твитами. Предназначен для использования с Claude Desktop.
Возможности
- Получение твитов из домашней ленты
- Создание новых твитов
- Ответы на твиты
- Встроенная обработка лимитов бесплатного API
- Реализация на TypeScript с полной типизацией
Требования
- Node.js v16 или выше
- X (Twitter) Developer Account (бесплатный)
- Claude Desktop
Получение доступа к X API
X (Twitter) предоставляет бесплатный тариф для базового доступа к API:
- Лимиты постов: 500 постов в месяц на уровне пользователя и приложения
- Лимиты чтения: 100 чтений в месяц
- Доступ: v2 endpoints для постинга, загрузка медиа, Ads API
- Ограничение: 1 app ID
Для более высоких объёмов доступны платные тарифы: Basic ($100/мес, 50 000 твитов/мес) и Pro ($5000/мес).
Оформить бесплатный тариф: X Developer Portal — Free Tier
Установка
git clone [your-repo-url]
cd x-mcp-server
npm install
npm run build
Настройка
Получение API-ключей
- Перейдите в Twitter Developer Portal и войдите в аккаунт
- Создайте проект (например, "MCP Integration"), выберите тариф Free
- Внутри проекта создайте приложение
- В настройках приложения:
- Включите OAuth 1.0a
- Выберите тип "Web App" или "Native App"
- Укажите любой callback URL (например,
https://example.com/callback)
- Укажите website URL
- В разделе "App permissions" установите "Read and Write"
- Во вкладке "Keys and Tokens" сгенерируйте и сохраните:
- API Key (Consumer Key)
- API Key Secret (Consumer Secret)
- Access Token (с правами Read and Write)
- Access Token Secret
Важно: Никогда не публикуйте ключи и токены. Храните их в безопасности.
Настройка Claude Desktop
- Откройте
%APPDATA%/Claude (создайте папку, если её нет)
- Создайте или отредактируйте файл
claude_desktop_config.json:
{
"mcpServers": {
"x": {
"command": "node",
"args": ["%USERPROFILE%/Projects/MCP Basket/x-server/build/index.js"],
"env": {
"TWITTER_API_KEY": "ваш-api-key",
"TWITTER_API_SECRET": "ваш-api-secret",
"TWITTER_ACCESS_TOKEN": "ваш-access-token",
"TWITTER_ACCESS_SECRET": "ваш-access-token-secret"
}
}
}
}
- Сохраните файл и перезапустите Claude Desktop
Доступные инструменты
get_home_timeline
Получение последних твитов из домашней ленты.
- Параметры:
limit (опционально, по умолчанию 20, макс. 100)
- Пример:
await use_mcp_tool({
server_name: "x",
tool_name: "get_home_timeline",
arguments: { limit: 5 }
});
create_tweet
Создание нового твита.
- Параметры:
text (обязательно, макс. 280 символов)
- Пример:
await use_mcp_tool({
server_name: "x",
tool_name: "create_tweet",
arguments: { text: "Hello from MCP! 🤖" }
});
reply_to_tweet
Ответ на твит.
- Параметры:
tweet_id (обязательно), text (обязательно, макс. 280 символов)
- Пример:
await use_mcp_tool({
server_name: "x",
tool_name: "reply_to_tweet",
arguments: {
tweet_id: "1234567890",
text: "Great tweet! 👍"
}
});
Разработка
npm run build — сборка TypeScript
npm run dev — режим разработки с автопересборкой
npm start — запуск MCP-сервера
Обработка лимитов
Сервер автоматически отслеживает использование API и применяет экспоненциальную задержку при превышении лимитов. При достижении месячного лимита (500 постов, 100 чтений) выдаётся понятное сообщение об ошибке.
Лицензия
MIT
Вклад в проект
Форкните репозиторий, создайте ветку для новой функции, внесите изменения и откройте Pull Request.
Комментарии
Комментариев пока нет. Будьте первым.