get_user_recent_tweets
Retrieve a user's most recent tweets by providing their username, enabling quick access to their latest social media activity for analysis or integration.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
Implementation Reference
- server.py:8-16 (handler)The main handler function for the 'get_user_recent_tweets' tool, which fetches and cleans recent tweets for a given username using the TwitterCrawler instance.@mcp.tool() def get_user_recent_tweets(username: str) -> list: data = twitter_crawler.get_timeline(username) new_tweets = twitter_crawler.clean_tweet_data( data['timeline'], data.get('prev_cursor'), data.get('next_cursor') ) return new_tweets
- server.py:8-8 (registration)The @mcp.tool() decorator registers the get_user_recent_tweets function as an MCP tool.@mcp.tool()
- twitter_crawler.py:52-77 (helper)Helper method in TwitterCrawler class that fetches the user's timeline data from the RapidAPI Twitter endpoint.def get_timeline(self, username: str, cursor: Optional[str] = None) -> Dict: """获取用户时间线数据""" # logging.info(f'getTimeline params: {username} {cursor}') try: params = {'screenname': username} if cursor: params['cursor'] = cursor response = requests.get( 'https://twitter-api45.p.rapidapi.com/timeline.php', headers=self.headers, params=params ) data = response.json() if data.get('timeline'): timeline_info = 'empty array' if not data['timeline'] else \ [tweet.get('tweet_id') for tweet in data['timeline']] # logging.info(f'接口返回结果: {timeline_info}') return data except Exception as e: logging.error(f'获取{username}时间线数据失败: {str(e)}') return {}
- twitter_crawler.py:78-90 (helper)Helper method in TwitterCrawler class that cleans and formats the raw timeline data into a list of dictionaries with selected fields.def clean_tweet_data(self, timeline_data: List[Dict], prev_cursor: str, next_cursor: str) -> List[Dict]: """清理推文数据,提取所需字段""" return [{ 'tweet_id': tweet.get('tweet_id', ''), 'created_at': tweet.get('created_at', ''), 'favorites': tweet.get('favorites', 0), 'bookmarks': tweet.get('bookmarks', 0), 'text': tweet.get('text', ''), 'views': tweet.get('views', '0'), 'quotes': tweet.get('quotes', 0), 'prev_cursor': prev_cursor, 'next_cursor': next_cursor } for tweet in timeline_data]