Twitter MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Uses environment variables from .env files to store Twitter API credentials securely

  • Uses npm for dependency management and running build/development scripts

  • Uses TypeScript for implementation of parameter validation and error handling

Servidor MCP de Twitter

Una implementación de servidor de protocolo de contexto de modelo para la integración de API de Twitter.

Configuración

  1. Clonar el repositorio
  2. Instalar dependencias: npm install
  3. Copie .env.example a .env y complete sus credenciales de API de Twitter
  4. Construya el proyecto: npm run build
  5. Iniciar el servidor: npm start

Variables de entorno

Credenciales de API de Twitter requeridas en .env :

X_API_KEY=your_api_key X_API_SECRET=your_api_secret X_ACCESS_TOKEN=your_access_token X_ACCESS_TOKEN_SECRET=your_access_token_secret

Herramientas disponibles

Operaciones de Tweet

  • postTweet : Publicar un nuevo tweet
    { "text": "Your tweet text here" }
  • postTweetWithMedia : Publica un tweet con un archivo multimedia adjunto
    { "text": "Your tweet text", "mediaPath": "path/to/media/file", "mediaType": "image/jpeg|image/png|image/gif|video/mp4", "altText": "Optional alt text for accessibility" }
  • getTweetById : Obtener un tweet específico por ID
    { "tweetId": "tweet_id", "tweetFields": ["created_at", "public_metrics"] }
  • replyToTweet : Responder a un tweet existente
    { "tweetId": "tweet_id", "text": "Your reply text" }
  • deleteTweet : Eliminar un tweet
    { "tweetId": "tweet_id" }

Búsqueda y análisis

  • searchTweets : Buscar tweets
    { "query": "search query", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] }
  • getHashtagAnalytics : Obtén análisis de un hashtag
    { "hashtag": "hashtag", "startTime": "ISO-8601 date", "endTime": "ISO-8601 date" }

Operaciones de usuario

  • getUserInfo : Obtener información del usuario
    { "username": "twitter_username", "fields": ["description", "public_metrics"] }
  • getUserTimeline : Obtener los tweets del usuario
    { "username": "twitter_username", "maxResults": 10, "tweetFields": ["created_at", "public_metrics"] }
  • getFollowers : Obtener los seguidores del usuario
    { "username": "twitter_username", "maxResults": 100, "userFields": ["description", "public_metrics"] }
  • getFollowing : Obtener las cuentas que sigue un usuario
    { "username": "twitter_username", "maxResults": 100, "userFields": ["description", "public_metrics"] }

Compromiso

  • likeTweet : Me gusta un tweet
    { "tweetId": "tweet_id" }
  • unlikeTweet : A diferencia de un tweet
    { "tweetId": "tweet_id" }
  • retweet : retuitear un tuit
    { "tweetId": "tweet_id" }
  • undoRetweet : Deshacer un retuit
    { "tweetId": "tweet_id" }
  • getRetweets : Obtenga los usuarios que retuitearon un tweet
    { "tweetId": "tweet_id", "maxResults": 100, "userFields": ["description", "public_metrics"] }
  • getLikedTweets : Obtén tweets que le gustan a un usuario
    { "userId": "user_id", "maxResults": 100, "tweetFields": ["created_at", "public_metrics"] }

Gestión de listas

  • createList : Crea una nueva lista
    { "name": "List name", "description": "List description", "isPrivate": false }
  • addUserToList : Agregar un usuario a una lista
    { "listId": "list_id", "username": "twitter_username" }
  • removeUserFromList : Eliminar un usuario de una lista
    { "listId": "list_id", "username": "twitter_username" }
  • getListMembers : Obtener miembros de una lista
    { "listId": "list_id", "maxResults": 100, "userFields": ["description", "public_metrics"] }

Manejo de errores

Todas las herramientas devuelven respuestas de error estandarizadas:

  • Parámetros faltantes: Missing required parameter: parameter_name
  • Errores de API: Mensaje de error de la API de Twitter
  • Errores no encontrados: Mensaje de "no encontrado" apropiado para el recurso

Formato de respuesta

Todas las respuestas exitosas siguen este formato:

{ "content": [ { "type": "text", "text": "Operation result message" } ] }

Desarrollo

  • Construir: npm run build
  • Inicio: npm start
  • Modo de vigilancia: npm run dev
Here's a comprehensive status report of all Twitter tools: ## Working Tools (✓) 1. postTweet

Estado: Funciona perfectamente Respuesta: Devuelve el ID del tweet Última prueba: Éxito

2. getTweetById

Estado: Funciona perfectamente Respuesta: Devuelve datos completos del tweet Última prueba: Éxito

3. likeTweet & unlikeTweet

Estado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito

4. retweet & undoRetweet

Estado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito

5. replyToTweet

Estado: Funciona perfectamente Respuesta: Devuelve el ID del tweet de respuesta Última prueba: Éxito

6. getUserInfo

Estado: Funcionando perfectamente Respuesta: Datos de perfil de usuario completos Última prueba: Éxito

7. followUser & unfollowUser

Estado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito

8. createList

Estado: Funcionando perfectamente Respuesta: Confirmación de creación de lista Última prueba: Éxito

9. getUserLists

Estado: Funciona perfectamente Respuesta: Devuelve las listas de miembros y de propiedad. Última prueba: Éxito.

## Tools with Issues (⚠️) 1. getUserTimeline

Estado: Error 400 Error: Parámetros de solicitud no válidos Solución necesaria: Validación de parámetros

2. searchTweets

Estado: Error 400 Error: Parámetros de solicitud no válidos Solución necesaria: Formato de parámetros de consulta

3. getLikedTweets

Estado: Error 400 Error: Parámetros de solicitud no válidos Solución necesaria: Validación de parámetros

## Missing Tools (❌) - getHomeTimeline (not found in available tools) - getFollowers (not available) - getFollowing (not available) - getHashtagAnalytics (not available) ## Priority Fixes Needed 1. Parameter Validation: ```typescript // Implement for getUserTimeline, searchTweets, getLikedTweets interface TwitterParamValidator { validateTimelineParams(params: any): boolean; validateSearchParams(params: any): boolean; validateLikedTweetsParams(params: any): boolean; }
  1. Manejo de errores:
// Enhance error handling for 400 errors interface TwitterErrorHandler { handle400Error(endpoint: string, params: any): void; logErrorDetails(error: any): void; suggestParameterFixes(params: any): string[]; }
-
security - not tested
A
license - permissive license
-
quality - not tested

Permite la interacción con Twitter a través de un Protocolo de Contexto de Modelo, lo que permite que los modelos de lenguaje grandes publiquen tweets, busquen tweets y respondan a tweets.

  1. Setup
    1. Environment Variables
      1. Available Tools
        1. Tweet Operations
        2. Search & Analytics
        3. User Operations
        4. Engagement
        5. List Management
      2. Error Handling
        1. Response Format
          1. Development
            ID: qlfiuj6xn6