Agent Twitter Client MCP
agente-cliente-twitter-mcp
Un servidor de Protocolo de Contexto de Modelo (MCP) que se integra con Twitter mediante el paquete agent-twitter-client , lo que permite que los modelos de IA interactúen con Twitter sin acceso directo a la API.
Características
Opciones de autenticación :
Autenticación basada en cookies (recomendada)
Autenticación de nombre de usuario/contraseña
Credenciales de la API de Twitter v2
Operaciones de Tweet :
Obtener tweets de los usuarios
Obtener tweets específicos por ID
Buscar tweets
Envía tweets con texto y multimedia
Crear encuestas
Dar me gusta, retuitear y citar tuits
Operaciones de usuario :
Obtener perfiles de usuario
Seguir a los usuarios
Consigue seguidores y listas de seguidores
Integración de Grok :
Chatea con Grok a través de la interfaz de Twitter
Continuar conversaciones con identificadores de conversación
Obtener resultados de búsqueda web y citas
Accede a los datos en tiempo real de Twitter a través de Grok
Nota : La funcionalidad de Grok requiere agent-twitter-client v0.0.19 o superior
Related MCP server: MCP Twitter
Documentación
Guía para desarrolladores : guía completa para desarrolladores
Guía de pruebas : instrucciones para probar el MCP
Guía del agente : Guía para agentes de IA sobre cómo usar el MCP de Twitter
Guía de contribución : Pautas para contribuir a este proyecto
Registro de cambios : historial de cambios en este proyecto
README de demostración : Guía para ejecutar los scripts de demostración
Ejemplos de Grok : documentación para los ejemplos de integración de Grok AI
Inicio rápido
Instalación
# Install globally
npm install -g agent-twitter-client-mcp
# Or install locally
npm install agent-twitter-client-mcpUso básico
Crea un archivo
.envcon tus credenciales de Twitter (ver Métodos de autenticación )Ejecute el servidor MCP:
# If installed globally
agent-twitter-client-mcp
# If installed locally
npx agent-twitter-client-mcpScripts de demostración
El paquete incluye un directorio demo con scripts de ejemplo que demuestran varias funciones:
# Clone the repository to access the demo scripts
git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcp/demo
# Run the interactive demo menu
./run-demo.sh
# Run a specific demo script
./run-demo.sh --script tweet-search.js
# Run Grok AI examples (requires agent-twitter-client v0.0.19)
./run-demo.sh --script simple-grok.js --use-local-agent-twitter-client
./run-demo.sh --script grok-chat.js --use-local-agent-twitter-clientConsulte el archivo README de demostración para obtener más detalles.
Configuración del puerto
De forma predeterminada, el servidor MCP se ejecuta en el puerto 3000. Si necesita cambiar esto (por ejemplo, si ya tiene una aplicación ejecutándose en el puerto 3000), tiene varias opciones:
Opción 1: Uso de variables de entorno
Establezca la variable de entorno PORT :
PORT=3001 npx agent-twitter-client-mcpOpción 2: Usar Docker Compose
Si usa Docker Compose, puede configurar los puertos del host y del contenedor en su archivo .env :
# .env file
MCP_HOST_PORT=3001 # The port on your host machine
MCP_CONTAINER_PORT=3000 # The port inside the containerLuego ejecuta:
docker-compose up -dEsto asignará el puerto 3001 de su host al puerto 3000 del contenedor, lo que le permitirá acceder al MCP en http://localhost:3001 mientras su otra aplicación continúa usando el puerto 3000.
Configuración con Claude Desktop
Configure Claude Desktop para usar este MCP agregando a su archivo de configuración:
Windows : %APPDATA%\Claude\claude_desktop_config.json macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"agent-twitter-client-mcp": {
"command": "npx",
"args": ["-y", "agent-twitter-client-mcp"],
"env": {
"AUTH_METHOD": "cookies",
"TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]"
}
}
}
}Reiniciar Claude Desktop
Métodos de autenticación
Autenticación mediante cookies (recomendada)
{
"AUTH_METHOD": "cookies",
"TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]"
}Para obtener cookies:
Inicie sesión en Twitter en su navegador
Abrir herramientas para desarrolladores (F12)
Vaya a la pestaña Aplicación > Cookies
Copiar los valores de las cookies
auth_token,ct0ytwidAsegúrese de incluir la parte
Domain=.twitter.compara cada cookie
Autenticación de nombre de usuario/contraseña
{
"AUTH_METHOD": "credentials",
"TWITTER_USERNAME": "your_username",
"TWITTER_PASSWORD": "your_password",
"TWITTER_EMAIL": "your_email@example.com", // Optional
"TWITTER_2FA_SECRET": "your_2fa_secret" // Optional, required if 2FA is enabled
}Autenticación de la API de Twitter
{
"AUTH_METHOD": "api",
"TWITTER_API_KEY": "your_api_key",
"TWITTER_API_SECRET_KEY": "your_api_secret_key",
"TWITTER_ACCESS_TOKEN": "your_access_token",
"TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret"
}Herramientas disponibles
get_user_tweets: recupera tweets de un usuario específicoget_tweet_by_id: Obtener un tweet específico por IDsearch_tweets: Buscar tweetssend_tweet: Publicar un nuevo tweetsend_tweet_with_poll: Publica un tweet con una encuestalike_tweet: Me gusta un tweetretweet: retuitear un tuitquote_tweet: Citar un tweetget_user_profile: Obtener el perfil de un usuariofollow_user: Seguir a un usuarioget_followers: Obtener los seguidores de un usuarioget_following: Obtener los usuarios que un usuario está siguiendogrok_chat: Chatea con Grok a través de Twitterhealth_check: Comprueba el estado del servidor MCP de Twitter
Interfaz de prueba
El MCP incluye una interfaz de línea de comandos interactiva para probar:
npx agent-twitter-client-mcp-test
# or if installed locally
npm run test:interfaceEsto inicia un REPL donde puedes probar varias funciones MCP:
agent-twitter-client-mcp> help
Available commands:
health Run a health check
profile <username> Get a user profile
tweets <username> [count] Get tweets from a user
tweet <id> Get a specific tweet by ID
search <query> [count] Search for tweets
post <text> Post a new tweet
like <id> Like a tweet
retweet <id> Retweet a tweet
quote <id> <text> Quote a tweet
follow <username> Follow a user
followers <userId> [count] Get a user's followers
following <userId> [count] Get users a user is following
grok <message> Chat with Grok
help Show available commands
exit Exit the test interfaceComandos de prueba de ejemplo
# Run a health check
agent-twitter-client-mcp> health
# Search for tweets
agent-twitter-client-mcp> search mcp 2
# Get a user's profile
agent-twitter-client-mcp> profile elonmusk
# Get tweets from a user
agent-twitter-client-mcp> tweets openai 5
# Chat with Grok
agent-twitter-client-mcp> grok Explain quantum computing in simple termsEjemplo de uso
Pídele a Claude que:
Busca tuits sobre IA en Twitter.
Publica un tweet que diga '¡Hola de Claude!'
Recibe los últimos tweets de @OpenAI
Charla con Grok sobre computación cuántica
Uso avanzado
Trabajar con los medios de comunicación
Para publicar un tweet con una imagen:
I want to post a tweet with an image. The tweet should say "Beautiful sunset today!" and include this image.Para publicar un tweet con un vídeo:
I want to post a tweet with a video. The tweet should say "Check out this amazing video!" and include the video file.Creación de encuestas
Para crear una encuesta:
Create a Twitter poll asking "What's your favorite programming language?" with options: Python, JavaScript, Rust, and Go. The poll should run for 24 hours.Interactuando con Grok
Para tener una conversación con Grok:
Use Grok to explain quantum computing to me. Ask it to include some real-world applications.Para continuar una conversación con Grok:
Continue the Grok conversation and ask it to elaborate on quantum entanglement.Las capacidades únicas de Grok
Grok en Twitter tiene acceso a datos de Twitter en tiempo real que ni siquiera la API independiente de Grok tiene. Esto significa que puedes preguntarle a Grok sobre:
Temas de tendencia actuales en Twitter
Análisis de tuits recientes sobre temas específicos
Información sobre los usuarios de Twitter y su contenido
Eventos en tiempo real que se discuten en la plataforma
Consultas de ejemplo:
"¿Cuáles son los temas de tendencia en Twitter en este momento?"
Analizar el sentimiento en torno a la IA en Twitter.
"¿Qué dice la gente sobre el último evento de Apple?"
Muéstrame información sobre las memecoins populares que se están discutiendo hoy.
Requisitos de autenticación de Grok
La funcionalidad de Grok requiere una autenticación adecuada. El MCP admite dos métodos:
Autenticación de cookies (recomendado):
Las cookies deben estar en formato de matriz JSON
Ejemplo:
TWITTER_COOKIES=["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com", "twid=u%3DYOUR_USER_ID; Domain=.twitter.com"]Las cookies esenciales son
auth_token,ct0ytwid
Autenticación de nombre de usuario/contraseña :
Establezca
TWITTER_USERNAMEyTWITTER_PASSWORDen su entornoEs posible que encuentre protección de Cloudflare en algunos casos
Límites de velocidad de Grok
Grok tiene límites de velocidad que pueden afectar el uso:
Cuentas no premium: 25 mensajes cada 2 horas
Cuentas Premium: Límites más altos
El MCP devolverá información sobre el límite de velocidad en la respuesta cuando se alcancen los límites.
Para obtener más detalles sobre el uso de Grok, consulte la documentación de Ejemplos de Grok .
Solución de problemas
Problemas de autenticación
Problemas de autenticación de cookies
Si tiene problemas con la autenticación de cookies:
Caducidad de las cookies : Las cookies de Twitter suelen caducar después de un tiempo determinado. Intenta actualizar tus cookies cerrando sesión y volviendo a iniciar sesión en Twitter.
Formato de las cookies : asegúrese de que sus cookies tengan el formato correcto como una matriz JSON de cadenas con el dominio correcto.
Cookies necesarias : asegúrese de haber incluido las cookies esenciales:
auth_token,ct0ytwid.
Ejemplo de cookies con formato correcto:
"TWITTER_COOKIES": "[\"auth_token=1234567890abcdef; Domain=.twitter.com\", \"ct0=abcdef1234567890; Domain=.twitter.com\", \"twid=u%3D1234567890; Domain=.twitter.com\"]"Problemas de autenticación de credenciales
Si tiene problemas con la autenticación de nombre de usuario y contraseña:
Autenticación de dos factores : si su cuenta tiene habilitada la 2FA, deberá proporcionar
TWITTER_2FA_SECRET.Bloqueos de cuenta : Si intentas iniciar sesión repetidamente, tu cuenta podría bloquearse. Revisa tu correo electrónico para ver si hay solicitudes de verificación.
Desafíos de Captcha : Twitter puede presentar desafíos de captcha que el cliente no puede manejar automáticamente.
Problemas de autenticación de API
Para problemas de autenticación de API:
Permisos de clave API : asegúrese de que sus claves API tengan los permisos necesarios para las acciones que intenta realizar.
Limitación de velocidad : la API de Twitter tiene límites de velocidad que pueden provocar fallas si se exceden.
Cambios de API : Twitter ocasionalmente cambia su API, lo que puede causar problemas de compatibilidad.
Errores de operación
Errores en la publicación de tweets
Si no puedes publicar tweets:
Restricciones de contenido : Twitter puede bloquear tweets que violen sus políticas de contenido.
Problemas de formato de medios : asegúrese de que los medios estén correctamente formateados y codificados.
Limitación de velocidad : Twitter limita la frecuencia con la que puedes publicar.
Problemas de búsqueda
Si la búsqueda no funciona:
Sintaxis de consulta : asegúrese de que su consulta de búsqueda siga la sintaxis de búsqueda de Twitter.
Limitaciones de búsqueda : algunos modos de búsqueda pueden tener restricciones o requerir permisos específicos.
Problemas de Grok
Si la funcionalidad de Grok no funciona:
Requisitos de versión :
Grok requiere agent-twitter-client v0.0.19 o superior
El paquete actual utiliza v0.0.18 para la funcionalidad básica
Para los scripts de demostración, use el indicador
--use-local-agent-twitter-clientpara instalar temporalmente la versión v0.0.19
Problemas de autenticación :
Formato de las cookies: asegúrese de que las cookies tengan el formato de matriz JSON correcto
Validez de las cookies: Las cookies de Twitter caducan después de un período determinado
Protección de Cloudflare: Cloudflare puede bloquear la autenticación de nombre de usuario y contraseña
Requisito Premium: El acceso a Grok requiere una suscripción a Twitter Premium
Límites de velocidad :
Cuentas no premium: 25 mensajes cada 2 horas
Mensaje de error: "Tarifa limitada: has alcanzado el límite..."
Solución: Espere hasta que se restablezca el límite de velocidad o actualice a una cuenta premium
Ubicación del archivo de entorno :
Para los scripts de demostración, asegúrese de que sus credenciales estén en
demo/.env, no en el archivo raíz.envUtilice el indicador
--debug-envpara comprobar qué variables de entorno se están cargando
Para obtener una solución detallada de problemas de Grok, consulte la documentación de Ejemplos de Grok .
Problemas con el servidor
Chequeo de salud
Utilice la herramienta health_check para diagnosticar problemas del servidor:
Run a health check on the agent-twitter-client-mcp server to diagnose any issues.El control de salud informará sobre:
Estado de autenticación
Conectividad API
Uso de memoria
Explotación florestal
El servidor registra tanto en la consola como en los archivos:
error.log: contiene mensajes de nivel de errorcombined.log: contiene todos los mensajes de registro
Consulte estos registros para obtener información detallada sobre los errores.
Desarrollo
Prerrequisitos
Node.js 18+
npm
Configuración
Clonar el repositorio
git clone https://github.com/ryanmac/agent-twitter-client-mcp.git
cd agent-twitter-client-mcpInstalar dependencias
npm installCree un archivo
.envcon la configuración:
AUTH_METHOD=cookies
TWITTER_COOKIES=["cookie1=value1", "cookie2=value2"]Construir el proyecto
npm run buildIniciar el servidor
npm startVariables de entorno
Además de las variables de autenticación, puede configurar:
LOG_LEVEL: establece el nivel de registro (error, advertencia, información, depuración)NODE_ENV: Establecer entorno (desarrollo, producción)
Estibador
También puedes ejecutar el servidor usando Docker:
Usando Docker directamente
# Build the Docker image
docker build -t agent-twitter-client-mcp .
# Run the container with environment variables
docker run -p 3000:3000 \
-e AUTH_METHOD=cookies \
-e TWITTER_COOKIES='["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com"]' \
agent-twitter-client-mcpUso de Docker Compose
Crea un archivo
.envcon tus credenciales de TwitterEjecutar con docker-compose:
# Start the service
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the service
docker-compose downVariables de entorno en Docker
Puede pasar variables de entorno al contenedor Docker de varias maneras:
En el archivo docker-compose.yml (ya configurado)
A través de un archivo .env (recomendado para docker-compose)
Directamente en el comando docker run (como se muestra arriba)
Registros persistentes
La configuración de docker-compose incluye un montaje de volumen para registros:
volumes:
- ./logs:/app/logsEsto almacenará registros en un directorio de logs en la carpeta de su proyecto.
Consideraciones de seguridad
Almacenamiento de credenciales : almacene las credenciales de forma segura, preferiblemente utilizando variables de entorno o una bóveda segura.
Limitación de velocidad : implemente una limitación de velocidad para evitar el abuso de la API de Twitter.
Validación de contenido : valide todo el contenido antes de publicarlo para evitar usos maliciosos.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Available Tools
14 toolsfollow_userC
Follow a Twitter user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Username to follow (without @) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Follow a Twitter user,' with no mention of idempotency (safe to call again?), effects (e.g., rate limiting, notification), or error states (e.g., user not found). Significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, but lacks structure (e.g., no paragraphs or bullet points). Given the simplicity, it is not overly wasteful, but could be improved by adding a brief note on behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple action with one parameter and no output schema, the description is minimal and lacks context about return value, error handling, and side effects. More completeness is needed to guide an AI agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'username' described as 'Username to follow (without @).' The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Follow') and resource ('a Twitter user'), making the purpose immediately understandable. However, it could be slightly more specific about the expected input (username format), though the schema already provides that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., if already following, or when to use other social actions like like_tweet). No mention of prerequisites (e.g., authentication) or context. Lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_followersC
Get a user's followers
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User ID | |
| count | No | Number of followers to fetch (1-200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only states 'Get a user's followers' without mentioning pagination, rate limits, authentication requirements, or what happens if count exceeds the allowed range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, but it is overly minimal. It could include more detail without becoming verbose, so it is adequate but not excellent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should explain return format, pagination, or handling of large follower lists. The current description is insufficient for an agent to fully understand the tool's capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (userId and count) with 100% coverage. The description 'Get a user's followers' adds no additional meaning beyond what the schema conveys, meeting the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a user's followers', indicating the verb and resource. However, it does not distinguish from the sibling tool 'get_following', which gets users the user follows. A brief note on the difference would improve clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not mention when to use this tool versus alternatives like 'get_following', nor does it specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_followingC
Get users a user is following
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User ID | |
| count | No | Number of following to fetch (1-200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, pagination behavior, or the structure of returned data. The agent receives no insight beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three words), but this brevity sacrifices essential context. While not verbose, it is not adequately structured to convey important details such as return format or usage constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description should compensate with more context. It fails to explain what the response contains (e.g., list of user objects or IDs), pagination, or error cases. The tool's purpose is simple but incomplete for an AI agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters (userId and count), so the schema already explains their meaning. The tool description adds no additional semantics beyond what the schema provides, meeting the minimum baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get users a user is following' clearly states the action (get) and resource (users a user is following). It is specific enough to convey the basic purpose, though it does not differentiate from the sibling tool 'get_followers' which retrieves the reverse relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_followers'. There is no mention of prerequisites, context, or scenarios where this tool is appropriate or when to choose another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tweet_by_idB
Fetch a specific tweet by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tweet ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must convey behavioral traits. 'Fetch' implies a read operation, but it does not disclose rate limits, authentication needs, error handling for non-existent tweets, or any side effects. The description is too brief to give full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only 6 words, highly concise. It is front-loaded with the key action and resource. However, it could be slightly improved by structuring with additional context without becoming wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimally adequate. It states the basic purpose but omits details about return format, error conditions, or any special behavior. There is room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'id' parameter described as 'Tweet ID'. The description does not add any further meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Fetch a specific tweet by ID' which clearly specifies the verb (fetch) and resource (tweet by ID). It distinguishes this tool from siblings like search_tweets or get_user_tweets that operate on multiple tweets or by different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It only implies usage when a specific tweet ID is known, but lacks explicit when-not conditions or comparisons to sibling tools like search_tweets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_profileC
Get a user's profile information
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Get', implying a read operation, but does not mention authentication, error cases, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose. However, it sacrifices detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description should hint at return values, but it only says 'profile information', which is vague. For a simple tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter clearly described in the schema. The description adds no extra meaning beyond what the schema already provides, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it gets a user's profile information, which is clear but vague. It does not differentiate from sibling tools like get_user_tweets or get_followers, which also relate to user data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_tweetsB
Fetch tweets from a specific user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Twitter username (without @) | |
| count | No | Number of tweets to fetch (1-200) | |
| includeReplies | No | Include replies in results | |
| includeRetweets | No | Include retweets in results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description only says 'Fetch tweets'. It does not disclose rate limits, pagination behavior, sorting order, or whether the tool respects privacy settings. Adds minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no excess words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description lacks details on return format, error handling, or limitations (e.g., max tweets beyond count). For a tool with 4 params and moderate complexity, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions. The tool description adds no extra info beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch tweets from a specific user', which is a specific verb-resource pair. It disambiguates from sibling tools like search_tweets (keyword search) and get_tweet_by_id (single tweet).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies fetching all tweets of a user, but does not mention exclusions or when to prefer follow_user, get_followers, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grok_chatB
Chat with Grok via Twitter
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message to send to Grok | |
| conversationId | No | Optional conversation ID for continuing a conversation | |
| returnSearchResults | No | Whether to return search results | |
| returnCitations | No | Whether to return citations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclosure behavioral traits, but it only states 'Chat with Grok via Twitter' without mentioning authentication, side effects, or the nature of the interaction (e.g., AI response).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded and efficient. While it is not verbose, it could include slightly more context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chat tool with no output schema or annotations, the description is too sparse. It does not explain how conversationId, returnSearchResults, or returnCitations work, leaving the agent with insufficient information to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already fully documented in the input schema. The description adds no additional meaning beyond what the schema provides, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Chat with Grok via Twitter' clearly specifies the action (chat) and the resource (Grok), distinguishing it from sibling tools that focus on Twitter-centric actions like sending tweets or searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., send_tweet, search_tweets). There is no mention of prerequisites or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkA
Check the health of the Twitter MCP server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'check the health' without explaining what constitutes health, whether the tool is read-only, what the response contains, or if it has any side effects. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of one short sentence. It is front-loaded and easy to parse, but could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and a simple purpose, the description is adequate but not fully complete. It does not explain what the health check entails or what the output indicates, which is important for a diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema description coverage is 100% (empty). The description adds no parameter info, but none is needed. Baseline 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check the health of the Twitter MCP server'. It uses a specific verb ('check') and resource ('health'), and is unambiguous. No sibling tool serves a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. However, given it's the only health check tool, usage is implied: use before other operations to verify server status. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
like_tweetC
Like a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tweet ID to like |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool performs a 'like' action (a write operation), but with no annotations, it fails to mention authentication needs, idempotency, side effects, or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it is too brief; it could include more information without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema or annotations, the description lacks sufficient completeness, e.g., whether liking is idempotent or requires specific permissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the only parameter (id) with a description, and the tool description adds no extra meaning. Baseline of 3 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Like a tweet' is a tautology of the tool name 'like_tweet', restating the same verb and resource without adding clarity or differentiation from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like retweet or quote_tweet, nor any exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_tweetC
Quote a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Quote content (max 280 characters) | |
| quotedTweetId | Yes | ID of tweet to quote | |
| media | No | Media attachments (optional, max 4 images or 1 video) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only states the action but does not disclose any behavioral traits such as authentication requirements, rate limits, or effects (e.g., creating a new tweet).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action. It is concise but may be too terse for an agent unfamiliar with Twitter's quoting feature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and lack of explanation about return values or error conditions, the description is incomplete. It does not address what the tool returns or how to use the parameters effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter. The description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quote a tweet' clearly states the action and the resource (tweet). It distinguishes from siblings like 'retweet' (which doesn't add text) and 'send_tweet' (new tweet), but does not elaborate on what quoting entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like retweet or send_tweet. The description does not mention any prerequisites or context for quoting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retweetB
Retweet a tweet
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tweet ID to retweet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'retweet' with no disclosure of side effects (e.g., changes to retweet count, like counts) or authentication requirements. Minimal transparency for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Front-loaded with the action and resource. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param tool without output schema or nested objects, the description is minimally adequate but lacks context on limits, side effects, or expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters (id is described as 'Tweet ID to retweet'). Description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Retweet a tweet' clearly states the verb (retweet) and resource (a tweet). It distinguishes from sibling tools like 'like_tweet' or 'quote_tweet', though it could explicitly clarify it's a simple retweet without comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use retweet vs alternatives like quote_tweet or send_tweet. No mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tweetsC
Search for tweets by keyword
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| count | No | Number of tweets to return (10-100) | |
| searchMode | No | Search mode: Top, Latest, Photos, or Videos | Top |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only states 'Search for tweets by keyword' and omits behavioral traits like rate limits, return format, pagination, or that it returns a list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information. Could be slightly more informative but remains concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is too brief. It lacks details on return structure, pagination, and default behavior beyond schema fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no extra meaning. The description merely restates 'keyword' for the query parameter, which is already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for tweets by keyword', specifying a verb and resource. It distinguishes from sibling tools like get_user_tweets and get_tweet_by_id by implying a global search scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_user_tweets for user-specific tweets, get_tweet_by_id for single tweet). No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_tweetC
Post a new tweet
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Tweet content (max 280 characters) | |
| replyToTweetId | No | ID of tweet to reply to (optional) | |
| media | No | Media attachments (optional, max 4 images or 1 video) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'post' (implying creation), but omits details like authentication needs, rate limits, or idempotency. This is insufficient for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 4 words, with no redundancy. However, it sacrifices some clarity and completeness; a single additional sentence could improve value without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is too minimal. It fails to cover return values, error conditions, or prerequisites (e.g., authentication), leaving the agent underinformed for a nontrivial operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it does not clarify parameter usage or constraints like the 280-character limit for text (already in schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Post a new tweet'), using a specific verb and resource. It distinguishes from siblings like quote_tweet, retweet, and send_tweet_with_poll by focusing on creating a new standalone tweet, but does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like send_tweet_with_poll or quote_tweet. The description lacks any context for selection, which is a significant gap given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_tweet_with_pollC
Post a tweet with a poll
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Tweet content (max 280 characters) | |
| replyToTweetId | No | ID of tweet to reply to (optional) | |
| poll | Yes | Poll configuration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, side effects, or limitations. It only repeats the basic function without adding depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence. It is front-loaded and efficient, though it could be slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the complexity of the nested poll object, and the lack of behavioral information, the description is insufficient for an agent to fully understand the tool's behavior and return value. Important context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all parameters. The description does not add any additional meaning beyond what the schema already provides. Thus, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Post a tweet' and the distinguishing feature 'with a poll'. It is specific about the resource and action, but does not explicitly contrast with the sibling tool 'send_tweet' which lacks a poll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'send_tweet' or 'quote_tweet'. There are no explicit conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- First observed
follow_user - First observed
get_followers - First observed
get_following - First observed
get_tweet_by_id - First observed
get_user_profile - First observed
get_user_tweets - First observed
grok_chat - First observed
health_check - First observed
like_tweet - First observed
quote_tweet - First observed
retweet - First observed
search_tweets - First observed
send_tweet - First observed
send_tweet_with_poll
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific Twitter action (like, retweet, quote, follow) or data retrieval operation (get followers, get tweets, search), and the descriptions make their unique functions immediately apparent. There is no overlap that would cause confusion or misselection.
The naming is mostly consistent with a clear verb_noun pattern (e.g., follow_user, get_followers, like_tweet), but there are minor deviations. For example, 'grok_chat' and 'health_check' follow the pattern but stand out as non-core Twitter actions, and 'send_tweet' and 'send_tweet_with_poll' could be more aligned (e.g., 'post_tweet'). Overall, the naming is readable and predictable.
With 14 tools, this is well-scoped for a Twitter client server, covering core social media interactions and data access. Each tool earns its place by addressing a specific need, such as posting, liking, searching, or retrieving user information, without being overly bloated or too sparse for the domain.
The tool set provides comprehensive coverage for Twitter operations, including CRUD-like actions (send, like, retweet) and data retrieval (get tweets, search, profile). Minor gaps exist, such as no tools for deleting tweets, managing lists, or handling direct messages, but agents can work around these with the available tools for core workflows.
Maintenance
Related MCP Connectors
Hosted X (Twitter) MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
X (Twitter) data for AI agents: tweets, profiles, followers, search, trends + social listening.
X (formerly Twitter) posts, profiles, and search for AI agents. Free key, self-minted, no signup.
Twitter/X read-only MCP server — 12 tools: search, users, tweets, followers, timelines, trends.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI to interact with Twitter, allowing functions like searching tweets, comparing sentiments across accounts, and retrieving timeline content.MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models and applications to interact directly with Twitter/X, providing capabilities to create posts, reply to tweets, retrieve user data, and manage account actions.7 npm11MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Twitter functionality using cookie-based authentication, allowing for timeline access, tweet management, user information retrieval, and search capabilities.16-
- AlicenseNot gradedqualityDmaintenanceModel Context Protocol server that enables programmatic interaction with Twitter API, allowing users to post tweets, search for content, and retrieve user timelines through standardized MCP tools.8 npmMIT