Twitter MCP Server
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
Clonar el repositorio
Instalar dependencias:
npm installCopie
.env.examplea.envy complete sus credenciales de API de TwitterConstruya el proyecto:
npm run buildIniciar el servidor:
npm start
Related MCP server: MCP-Twikit
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_secretHerramientas 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_nameErrores 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 buildInicio:
npm startModo de vigilancia:
npm run dev
Here's a comprehensive status report of all Twitter tools:
## Working Tools (✓)
1. postTweetEstado: Funciona perfectamente Respuesta: Devuelve el ID del tweet Última prueba: Éxito
2. getTweetByIdEstado: Funciona perfectamente Respuesta: Devuelve datos completos del tweet Última prueba: Éxito
3. likeTweet & unlikeTweetEstado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito
4. retweet & undoRetweetEstado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito
5. replyToTweetEstado: Funciona perfectamente Respuesta: Devuelve el ID del tweet de respuesta Última prueba: Éxito
6. getUserInfoEstado: Funcionando perfectamente Respuesta: Datos de perfil de usuario completos Última prueba: Éxito
7. followUser & unfollowUserEstado: Funciona perfectamente Respuesta: Confirmación de acción Última prueba: Éxito
8. createListEstado: Funcionando perfectamente Respuesta: Confirmación de creación de lista Última prueba: Éxito
9. getUserListsEstado: Funciona perfectamente Respuesta: Devuelve las listas de miembros y de propiedad. Última prueba: Éxito.
## Tools with Issues (⚠️)
1. getUserTimelineEstado: Error 400 Error: Parámetros de solicitud no válidos Solución necesaria: Validación de parámetros
2. searchTweetsEstado: Error 400 Error: Parámetros de solicitud no válidos Solución necesaria: Formato de parámetros de consulta
3. getLikedTweetsEstado: 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;
}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[];
}Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/crazyrabbitLTC/mcp-twitter-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server