reddit_user_posts
Retrieve Reddit posts by username for open-source intelligence gathering. Specify username and optional limit to analyze user activity patterns.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username | |
| limit | No | Number of posts to return |
Implementation Reference
- src/tools/reddit.ts:45-65 (handler)The getUserPosts method within the RedditApiClient handles the fetching and parsing of reddit user posts.
async getUserPosts(username: string, limit: number = 25): Promise<any[]> { try { const data = await this.fetch<any>(`user/${username}/submitted.json`, { method: "GET", headers: { "User-Agent": "OSINT-MCP-Server/1.0.0" } }, { limit: limit }); return data.data?.children?.map((p: any) => ({ title: p.data.title, subreddit: p.data.subreddit, url: `https://reddit.com${p.data.permalink}`, created: new Date(p.data.created_utc * 1000).toISOString(), score: p.data.score })) || []; } catch (error) { throw new McpError(ErrorCode.InternalError, `Reddit Posts error: ${(error as Error).message}`); } - src/index.ts:486-498 (registration)Registration of the 'reddit_user_posts' tool in the MCP server using the redditClient handler.
server.tool( "reddit_user_posts", { username: z.string().describe("Reddit username"), limit: z.number().optional().default(25).describe("Number of posts to return"), }, async ({ username, limit }) => { const result = await redditClient.getUserPosts(username, limit); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }], }; } );