How to connect Twitter MCP with VS Code

How to connect Twitter MCP with VS Code VS Code is the most popular code editor out there. With its recent AI makeover, it can do more than just help you write code. You can connect your applications to it and let LLMs automate many of the mundane tasks in your workflow. In this guide, I will explain how to connect Twitter with VS Code in the most secure and robust way possible via Composio.

Twitter logoTwitter
Oauth2

Twitter is a social media platform for sharing real-time updates, conversations, and news. Stay connected, informed, and engaged with communities worldwide.

78 Tools

How to connect Twitter MCP with VS Code

VS Code is the most popular code editor out there. With its recent AI makeover, it can do more than just help you write code. You can connect your applications to it and let LLMs automate many of the mundane tasks in your workflow.

In this guide, I will explain how to connect Twitter with VS Code in the most secure and robust way possible via Composio.

Also integrate Twitter with

Why use Composio?

Composio provides:

  • Access to 1,000+ managed apps from a single MCP endpoint. This makes it convenient for agents to run cross-app workflows.
  • Programmatic tool calling. Allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
  • Large tool response handling outside the LLM context. This minimizes context bloat from large tool responses.
  • Dynamic just-in-time access to thousands of tools across hundreds of apps. Composio loads the tools your agent needs, so LLMs are not overwhelmed by tools they do not need.

Integrate Twitter MCP with VS Code

1. Install with one click

Click the button below to add Composio to VS Code. You will be prompted to authorize. This requires VS Code 1.99+ with GitHub Copilot.

+Install in VS Code

2. Or add manually

Open or create .vscode/mcp.json in your project root and add the following configuration:

bash
{
  "servers": {
    "composio": {
      "type": "http",
      "url": "https://connect.composio.dev/mcp"
    }
  }
}

3. Authorize

Click the install button to authorize VS Code to connect to Composio. VS Code will detect OAuth and prompt you to sign in.

VS Code MCP server install screen for Composio

A browser window will open to authorize.

Composio authorization browser window

4. Authenticate Twitter and start working

Back in VS Code chat, ask the agent to connect to Twitter or give it any Twitter-related task.

For example, ask it to:

  • "Post a tweet with latest blog link"
  • "Add user to your conference list"
  • "Retrieve your most recent bookmarked tweets"

It will prompt you to authenticate and authorize access to Twitter.

That is it. Composio tools are now available in VS Code, and your Twitter account is ready to use.

Way Forward

Now that Twitter is connected, extend your setup by connecting the other apps you already use every day, so your agent can run true cross-app workflows end to end.

  • Connect Calendar to turn threads into scheduled meetings automatically.
  • Connect Slack or Teams to post summaries, approvals, and alerts where your team works.
  • Connect Notion, Linear, Jira, or Asana to convert requests into tickets, tasks, and docs.
  • Connect Drive, Dropbox, or OneDrive to fetch, file, and share attachments without manual steps.
  • Connect HubSpot or Salesforce to log customer context, update records, and draft follow-ups.

Start with one workflow you do repeatedly, then keep adding apps as you find new handoffs. With everything behind a single MCP endpoint, your agent can coordinate multiple tools safely and reliably in one conversation.

TOOLS

Supported Tools

Every Twitter action and event your agent gets out of the box.

Add a list member

Adds a user to a specified Twitter List; the list must be owned by the authenticated user.

Add post to bookmarks

Adds a specified, existing, and accessible Tweet to a user's bookmarks, with success indicated by the 'bookmarked' field in the response.

Append Media Upload

Append data chunk to an ongoing media upload session on X/Twitter.

Get bookmarks by user

Retrieves Tweets bookmarked by the authenticated user, where the provided User ID must match the authenticated user's ID.

Create activity subscription

Tool to create a subscription for an X activity event.

Create compliance job

Creates a new compliance job to check the status of Tweet or user IDs; upload IDs as a plain text file (one ID per line) to the `upload_url` received in the response.

Create group DM conversation

Creates a new group Direct Message (DM) conversation on Twitter.

Create a list

Creates a new, empty List on X (formerly Twitter), for which the provided name must be unique for the authenticated user; accounts are added separately.

Create a post

Creates a Tweet on Twitter; `text` is required unless `card_uri`, `media_media_ids`, `poll_options`, or `quote_tweet_id` is provided.

Delete direct message

Permanently deletes a specific Twitter Direct Message (DM) event using its `event_id` if the authenticated user sent it; this action is irreversible and does not delete entire conversations.

Delete list

Permanently deletes a specified Twitter List using its ID, which must be owned by the authenticated user; this action is irreversible and the list must already exist.

Get followers by user id

Retrieves a list of users who follow a specified public Twitter user ID.

Get following by user ID

Retrieves users followed by a specific Twitter user, allowing pagination and customization of returned user and tweet data fields via expansions.

Follow a list

Allows the authenticated user (`id`) to follow a specific Twitter List (`list_id`) they are permitted to access, subscribing them to the list's timeline; this does not automatically follow individual list members.

Follow a user

Allows an authenticated user (path `id`) to follow another user (`target_user_id`), which results in a pending request if the target user's tweets are protected.

Search full archive of tweets

Searches the full archive of public Tweets from March 2006 onwards; use 'start_time' and 'end_time' together for a defined time window.

Get users blocked by user ID

Retrieves the authenticated user's own block list.

Retrieve compliance job by id

Retrieves status, download/upload URLs, and other details for an existing Twitter compliance job specified by its unique ID.

Retrieve compliance jobs

Returns a list of recent compliance jobs, filtered by type (tweets or users) and optionally by status.

Get DM events for a DM conversation

Fetches Direct Message (DM) events for a one-on-one conversation with a specified participant ID, ordered chronologically newest to oldest; does not support group DMs.

Get DM events by ID

Fetches a specific Direct Message (DM) event by its unique ID, allowing optional expansion of related data like users or tweets; ensure the `event_id` refers to an existing DM event accessible to the authenticated user.

Lookup list by ID

Returns metadata for a specific Twitter List, identified by its ID; does not return list members but can expand the owner's User object via the `expansions` parameter.

Get list followers

Fetches a list of users who follow a specific Twitter List, identified by its ID; ensure the authenticated user has access if the list is private.

Fetch list members by id

Fetches members of a specific Twitter List, identified by its unique ID.

Get Media Upload Status

Get the processing status of uploaded media (videos/GIFs) on X/Twitter.

Get muted users

Returns user objects muted by the X user identified by the `id` path parameter.

Fetch OpenAPI specification

Fetches the OpenAPI specification (JSON) for Twitter's API v2, used to programmatically understand the API's structure for developing client libraries or tools.

Get Post analytics

Tool to retrieve analytics data for specified Posts within a defined time range.

Get post retweeters

Retrieves users who publicly retweeted a specified public Post ID, excluding Quote Tweets and retweets from private accounts.

Retrieve retweets of a post

Retrieves Tweets that Retweeted a specified public or authenticated-user-accessible Tweet ID, optionally customizing the response with fields and expansions.

Fetch tweet usage data

Fetches Tweet usage statistics for a Project (e.

Get recent direct message events

Returns recent Direct Message events for the authenticated user, such as new messages or changes in conversation participants.

Look up space by ID

Retrieves details for a Twitter Space by its ID, allowing for customization and expansion of related data, provided the Space ID is valid and accessible.

Retrieve posts from a space

Retrieves Tweets that were shared/posted during a Twitter Space broadcast.

Get spaces by creator IDs

Retrieves Twitter Spaces created by a list of specified User IDs, with options to customize returned data fields.

Get space information by IDs

Fetches detailed information for one or more Twitter Spaces (live, scheduled, or ended) by their unique IDs; at least one Space ID must be provided.

Fetch space ticket buyers list

Retrieves a list of users who purchased tickets for a specific, valid, and ticketed Twitter Space.

Look up user by ID

Retrieves detailed public information for a Twitter user by their ID, optionally expanding related data (e.

Get user's followed lists

Returns metadata (not Tweets) for lists a specific Twitter user follows, optionally including expanded owner details.

Get a user's list memberships

Retrieves all Twitter Lists a specified user is a member of, including public Lists and private Lists the authenticated user is authorized to view.

Get a user's owned lists

Call this action to retrieve Lists created (owned) by a specific Twitter user, not Lists they follow or are subscribed to.

Get a user's pinned lists

Retrieves the Lists a specific, existing Twitter user has pinned to their profile to highlight them.

Look up users by IDs

Retrieves detailed information for specified X (formerly Twitter) user IDs, optionally customizing returned fields and expanding related entities.

Set reply visibility

Hides or unhides an existing reply Tweet.

Initialize Media Upload

Initialize a media upload session for X/Twitter.

List post likers

Retrieves users who have liked the Post (Tweet) identified by the provided ID.

List posts timeline by list ID

Fetches the most recent Tweets posted by members of a specified Twitter List.

Mute user by ID

Mutes a target user on behalf of an authenticated user, preventing the target's Tweets and Retweets from appearing in the authenticated user's home timeline without notifying the target.

Pin a list

Pins a specified List to the authenticated user's profile, provided the List exists, the user has access rights, and the pin limit (typically 5 Lists) is not exceeded.

Delete tweet

Irreversibly deletes a specific Tweet by its ID; the Tweet may persist in third-party caches after deletion.

Look up post by id

Fetches comprehensive details for a single Tweet by its unique ID, provided the Tweet exists and is accessible.

Get tweets by IDs

Retrieves detailed information for one or more Posts (Tweets) identified by their unique IDs, allowing selection of specific fields and expansions.

Search recent tweets

Searches Tweets from the last 7 days matching a query (using X's search syntax), ideal for real-time analysis, trend monitoring, or retrieving posts from specific users (e.

Remove a list member

Removes a user from a Twitter List; the response `is_member` field will be `false` if removal was successful or the user was not a member, and the updated list of members is not returned.

Remove a bookmarked post

Removes a Tweet, specified by `tweet_id`, from the authenticated user's bookmarks; the Tweet must have been previously bookmarked by the user for the action to have an effect.

Retrieve DM conversation events

Retrieves Direct Message (DM) events for a specific conversation ID on Twitter, useful for analyzing messages and participant activities.

Retrieve posts that quote a post

Retrieves Tweets that quote a specified Tweet, requiring a valid Tweet ID.

Retrieve liked tweets by user ID

Retrieves Tweets liked by a specified Twitter user, provided their liked tweets are public or accessible.

Retweet post

Retweets a Tweet for the authenticated user.

Get full archive search counts

Returns a count of Tweets from the full archive that match a specified query, aggregated by day, hour, or minute; `start_time` must be before `end_time` if both are provided, and `since_id`/`until_id` cannot be used with `start_time`/`end_time`.

Fetch recent tweet counts

Retrieves the count of Tweets matching a specified search query within the last 7 days, aggregated by 'minute', 'hour', or 'day'.

Search for spaces

Searches for Twitter Spaces by a textual query, optionally filtering by state (live, scheduled, all) to discover audio conversations.

Send a new message to a user

Sends a new Direct Message with text and/or media (media_id for attachments must be pre-uploaded) to a specified Twitter user; this creates a new DM and does not modify existing messages.

Send a new message to a DM conversation

Sends a message, with optional text and/or media attachments (using pre-uploaded `media_id`s), to a specified Twitter Direct Message conversation.

Get tweets label stream

Stream real-time Tweet label events (apply/remove).

Unfollow a list

Enables a user (via `id`) to unfollow a specific Twitter List (via `list_id`), which removes its tweets from their timeline and stops related notifications; the action reports `following: false` on success, even if the user was not initially following the list.

Unfollow user

Allows the authenticated user to unfollow an existing Twitter user (`target_user_id`), which removes the follow relationship.

Unlike post

Allows an authenticated user (`id`) to remove their like from a specific post (`tweet_id`); the action is idempotent and completes successfully even if the post was not liked.

Unmute a user by user ID

Unmutes a target user for the authenticated user, allowing them to see Tweets and notifications from the target user again.

Unpin a list

Unpins a List (specified by list_id) from the authenticated user's profile.

Unretweet post

Removes a user's retweet of a specified Post, if the user had previously retweeted it.

Update list attributes

Updates an existing Twitter List's name, description, or privacy status, requiring the List ID and at least one mutable property.

Upload Media

Upload media (images only) to X/Twitter using the v2 API.

Get user reverse chronological timeline

Retrieves the home timeline (reverse chronological feed) for the authenticated Twitter user.

Like a tweet

Allows the authenticated user to like a specific, accessible Tweet, provided neither user has blocked the other and the authenticated user is not restricted from liking.

Look up user by username

Fetches public profile information for a valid and existing Twitter user by their username, optionally expanding related data like pinned Tweets; results may be limited for protected profiles not followed by the authenticated user.

Look up users by username

Retrieves detailed information for 1 to 100 Twitter users by their usernames (each 1-15 alphanumeric characters/underscores), allowing customizable user/tweet fields and expansion of related data like pinned tweets.

Get authenticated user

Returns profile information for the currently authenticated X user, customizable via request fields.

FAQ

Frequently asked questions

With a standalone Twitter MCP server, the agents and LLMs can only access a fixed set of Twitter tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Twitter and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. VS Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Twitter tools.

Yes, absolutely. You can configure which Twitter scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Twitter data and credentials are handled as safely as possible.

Start with Twitter.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Twitter tool your agent needs.Free to start.

Start building