likeTweet
Like a tweet on Twitter using its unique ID. This tool enables users to interact with tweets by adding likes through the Twitter MCP Server.
Instructions
Like a tweet by its ID
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tweetId | Yes | The ID of the tweet to like |
Implementation Reference
- The main handler function that executes the likeTweet tool: checks for client, gets current user ID, calls Twitter API v2.like(userId, tweetId), and returns success message or formatted error.export const handleLikeTweet: TwitterHandler<TweetEngagementArgs> = async ( client: TwitterClient | null, { tweetId }: TweetEngagementArgs ): Promise<HandlerResponse> => { if (!client) { return createMissingTwitterApiKeyResponse('likeTweet'); } try { const { data: { id: userId } } = await client.v2.me(); await client.v2.like(userId, tweetId); return createResponse(`Successfully liked tweet: ${tweetId}`); } catch (error) { if (error instanceof Error) { throw new Error(formatTwitterError(error, 'liking tweet')); } throw error; } };
- src/tools.ts:35-44 (schema)Tool schema definition for likeTweet, including description and inputSchema requiring tweetId string.likeTweet: { description: 'Like a tweet by its ID', inputSchema: { type: 'object', properties: { tweetId: { type: 'string', description: 'The ID of the tweet to like' } }, required: ['tweetId'], }, },
- src/index.ts:182-185 (registration)Tool dispatch/registration in the main MCP server request handler: extracts tweetId from arguments and calls handleLikeTweet.case 'likeTweet': { const { tweetId } = request.params.arguments as { tweetId: string }; response = await handleLikeTweet(client, { tweetId }); break;
- src/types.ts:41-43 (schema)TypeScript interface defining input args for likeTweet: tweetId string.export interface LikeTweetArgs { tweetId: string; }
- src/types.ts:248-255 (helper)Runtime validation helper function to assert arguments match LikeTweetArgs interface.export function assertLikeTweetArgs(args: unknown): asserts args is LikeTweetArgs { if (typeof args !== 'object' || args === null) { throw new Error('Invalid arguments: expected object'); } if (!('tweetId' in args) || typeof (args as any).tweetId !== 'string') { throw new Error('Invalid arguments: expected tweetId string'); } }